@@ -13,30 +13,30 @@ discard block |
||
13 | 13 | class GetPaid_Manual_Gateway extends GetPaid_Payment_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'manual'; |
21 | 21 | |
22 | 22 | /** |
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | 27 | protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
34 | - public $order = 11; |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | + public $order = 11; |
|
35 | 35 | |
36 | 36 | /** |
37 | - * Class constructor. |
|
38 | - */ |
|
39 | - public function __construct() { |
|
37 | + * Class constructor. |
|
38 | + */ |
|
39 | + public function __construct() { |
|
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | 42 | $this->title = __( 'Test Gateway', 'invoicing' ); |
@@ -46,15 +46,15 @@ discard block |
||
46 | 46 | } |
47 | 47 | |
48 | 48 | /** |
49 | - * Process Payment. |
|
50 | - * |
|
51 | - * |
|
52 | - * @param WPInv_Invoice $invoice Invoice. |
|
53 | - * @param array $submission_data Posted checkout fields. |
|
54 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
55 | - * @return array |
|
56 | - */ |
|
57 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
49 | + * Process Payment. |
|
50 | + * |
|
51 | + * |
|
52 | + * @param WPInv_Invoice $invoice Invoice. |
|
53 | + * @param array $submission_data Posted checkout fields. |
|
54 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
55 | + * @return array |
|
56 | + */ |
|
57 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
58 | 58 | |
59 | 59 | // Mark it as paid. |
60 | 60 | $invoice->mark_paid(); |
@@ -85,12 +85,12 @@ discard block |
||
85 | 85 | } |
86 | 86 | |
87 | 87 | /** |
88 | - * (Maybe) renews a manual subscription profile. |
|
89 | - * |
|
90 | - * |
|
88 | + * (Maybe) renews a manual subscription profile. |
|
89 | + * |
|
90 | + * |
|
91 | 91 | * @param WPInv_Subscription $subscription |
92 | - */ |
|
93 | - public function maybe_renew_subscription( $subscription ) { |
|
92 | + */ |
|
93 | + public function maybe_renew_subscription( $subscription ) { |
|
94 | 94 | |
95 | 95 | // Ensure its our subscription && it's active. |
96 | 96 | if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
@@ -110,13 +110,13 @@ discard block |
||
110 | 110 | } |
111 | 111 | |
112 | 112 | /** |
113 | - * Processes invoice addons. |
|
114 | - * |
|
115 | - * @param WPInv_Invoice $invoice |
|
116 | - * @param GetPaid_Form_Item[] $items |
|
117 | - * @return WPInv_Invoice |
|
118 | - */ |
|
119 | - public function process_addons( $invoice, $items ) { |
|
113 | + * Processes invoice addons. |
|
114 | + * |
|
115 | + * @param WPInv_Invoice $invoice |
|
116 | + * @param GetPaid_Form_Item[] $items |
|
117 | + * @return WPInv_Invoice |
|
118 | + */ |
|
119 | + public function process_addons( $invoice, $items ) { |
|
120 | 120 | |
121 | 121 | foreach ( $items as $item ) { |
122 | 122 | $invoice->add_item( $item ); |
@@ -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 | * Manual Payment Gateway class. |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @var array |
26 | 26 | */ |
27 | - protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
|
27 | + protected $supports = array('subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups'); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Payment method order. |
@@ -39,10 +39,10 @@ discard block |
||
39 | 39 | public function __construct() { |
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | - $this->title = __( 'Test Gateway', 'invoicing' ); |
|
43 | - $this->method_title = __( 'Test Gateway', 'invoicing' ); |
|
42 | + $this->title = __('Test Gateway', 'invoicing'); |
|
43 | + $this->method_title = __('Test Gateway', 'invoicing'); |
|
44 | 44 | |
45 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
45 | + add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription')); |
|
46 | 46 | } |
47 | 47 | |
48 | 48 | /** |
@@ -54,25 +54,25 @@ discard block |
||
54 | 54 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
55 | 55 | * @return array |
56 | 56 | */ |
57 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
57 | + public function process_payment($invoice, $submission_data, $submission) { |
|
58 | 58 | |
59 | 59 | // Mark it as paid. |
60 | 60 | $invoice->mark_paid(); |
61 | 61 | |
62 | 62 | // (Maybe) activate subscriptions. |
63 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
63 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
64 | 64 | |
65 | - if ( ! empty( $subscriptions ) ) { |
|
66 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
65 | + if (!empty($subscriptions)) { |
|
66 | + $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions); |
|
67 | 67 | |
68 | - foreach ( $subscriptions as $subscription ) { |
|
69 | - if ( $subscription->exists() ) { |
|
70 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
71 | - $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
68 | + foreach ($subscriptions as $subscription) { |
|
69 | + if ($subscription->exists()) { |
|
70 | + $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created()); |
|
71 | + $expiry = date('Y-m-d H:i:s', (current_time('timestamp') + $duration)); |
|
72 | 72 | |
73 | - $subscription->set_next_renewal_date( $expiry ); |
|
74 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
75 | - $subscription->set_profile_id( $invoice->generate_key( 'manual_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ) ); |
|
73 | + $subscription->set_next_renewal_date($expiry); |
|
74 | + $subscription->set_date_created(current_time('mysql')); |
|
75 | + $subscription->set_profile_id($invoice->generate_key('manual_sub_' . $invoice->get_id() . '_' . $subscription->get_id())); |
|
76 | 76 | $subscription->activate(); |
77 | 77 | } |
78 | 78 | } |
@@ -80,7 +80,7 @@ discard block |
||
80 | 80 | } |
81 | 81 | |
82 | 82 | // Send to the success page. |
83 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
83 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
84 | 84 | |
85 | 85 | } |
86 | 86 | |
@@ -90,10 +90,10 @@ discard block |
||
90 | 90 | * |
91 | 91 | * @param WPInv_Subscription $subscription |
92 | 92 | */ |
93 | - public function maybe_renew_subscription( $subscription ) { |
|
93 | + public function maybe_renew_subscription($subscription) { |
|
94 | 94 | |
95 | 95 | // Ensure its our subscription && it's active. |
96 | - if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
96 | + if ($this->id == $subscription->get_gateway() && $subscription->has_status('active trialling')) { |
|
97 | 97 | |
98 | 98 | // Renew the subscription. |
99 | 99 | $subscription->add_payment( |
@@ -116,10 +116,10 @@ discard block |
||
116 | 116 | * @param GetPaid_Form_Item[] $items |
117 | 117 | * @return WPInv_Invoice |
118 | 118 | */ |
119 | - public function process_addons( $invoice, $items ) { |
|
119 | + public function process_addons($invoice, $items) { |
|
120 | 120 | |
121 | - foreach ( $items as $item ) { |
|
122 | - $invoice->add_item( $item ); |
|
121 | + foreach ($items as $item) { |
|
122 | + $invoice->add_item($item); |
|
123 | 123 | } |
124 | 124 | |
125 | 125 | $invoice->recalculate_total(); |
@@ -45,8 +45,7 @@ discard block |
||
45 | 45 | |
46 | 46 | if($section_id=='recommended_plugins'){ |
47 | 47 | $section_data->products = self::get_recommend_wp_plugins_edd_formatted(); |
48 | - } |
|
49 | - elseif ( ! empty( $section ) ) { |
|
48 | + } elseif ( ! empty( $section ) ) { |
|
50 | 49 | if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing |
51 | 50 | //if ( 1==1) { |
52 | 51 | |
@@ -119,14 +118,14 @@ discard block |
||
119 | 118 | $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>"")); |
120 | 119 | $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install'; |
121 | 120 | $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
122 | - }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
121 | + } elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
123 | 122 | include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
124 | 123 | if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
125 | 124 | $status = self::install_plugin_install_status($addon); |
126 | 125 | $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
127 | 126 | if(isset($status['status'])){$button_args['install_status'] = $status['status'];} |
128 | 127 | $button_args['update_url'] = "https://wpinvoicing.com"; |
129 | - }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
128 | + } elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
130 | 129 | if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
131 | 130 | $button_args['installed'] = self::is_theme_installed($addon); |
132 | 131 | if(!in_array($button_args['slug'],$wp_org_themes)){ |
@@ -139,7 +138,7 @@ discard block |
||
139 | 138 | if(is_object($addon->pricing)){ |
140 | 139 | $prices = (Array)$addon->pricing; |
141 | 140 | $button_args['price'] = reset($prices); |
142 | - }elseif(isset($addon->pricing)){ |
|
141 | + } elseif(isset($addon->pricing)){ |
|
143 | 142 | $button_args['price'] = $addon->pricing; |
144 | 143 | } |
145 | 144 | } |
@@ -160,7 +159,7 @@ discard block |
||
160 | 159 | if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){ |
161 | 160 | if($button_args['type'] != 'themes'){ |
162 | 161 | $button_args['active'] = is_plugin_active($button_args['file']); |
163 | - }else{ |
|
162 | + } else{ |
|
164 | 163 | $button_args['active'] = self::is_theme_active($addon); |
165 | 164 | } |
166 | 165 | } |
@@ -169,27 +168,27 @@ discard block |
||
169 | 168 | if($button_args['active']){ |
170 | 169 | $button_args['button_text'] = __('Active','invoicing'); |
171 | 170 | $button_args['class'] = ' button-secondary disabled '; |
172 | - }elseif($button_args['installed']){ |
|
171 | + } elseif($button_args['installed']){ |
|
173 | 172 | $button_args['button_text'] = __('Activate','invoicing'); |
174 | 173 | |
175 | 174 | if($button_args['type'] != 'themes'){ |
176 | 175 | if ( current_user_can( 'manage_options' ) ) { |
177 | 176 | $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']); |
178 | - }else{ |
|
177 | + } else{ |
|
179 | 178 | $button_args['url'] = '#'; |
180 | 179 | } |
181 | - }else{ |
|
180 | + } else{ |
|
182 | 181 | if ( current_user_can( 'switch_themes' ) ) { |
183 | 182 | $button_args['url'] = self::get_theme_activation_url($addon); |
184 | - }else{ |
|
183 | + } else{ |
|
185 | 184 | $button_args['url'] = '#'; |
186 | 185 | } |
187 | 186 | } |
188 | 187 | |
189 | - }else{ |
|
188 | + } else{ |
|
190 | 189 | if($button_args['type'] == 'recommended_plugins'){ |
191 | 190 | $button_args['button_text'] = __('Install','invoicing'); |
192 | - }else{ |
|
191 | + } else{ |
|
193 | 192 | $button_args['button_text'] = __('Get it','invoicing'); |
194 | 193 | |
195 | 194 | /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){ |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | * |
7 | 7 | */ |
8 | 8 | if ( ! defined( 'ABSPATH' ) ) { |
9 | - exit; |
|
9 | + exit; |
|
10 | 10 | } |
11 | 11 | |
12 | 12 | /** |
@@ -15,85 +15,85 @@ discard block |
||
15 | 15 | class WPInv_Admin_Addons extends Ayecode_Addons { |
16 | 16 | |
17 | 17 | |
18 | - /** |
|
19 | - * Get the extensions page tabs. |
|
20 | - * |
|
21 | - * @return array of tabs. |
|
22 | - */ |
|
23 | - public function get_tabs(){ |
|
24 | - $tabs = array( |
|
25 | - 'addons' => __("Addons", "invoicing"), |
|
18 | + /** |
|
19 | + * Get the extensions page tabs. |
|
20 | + * |
|
21 | + * @return array of tabs. |
|
22 | + */ |
|
23 | + public function get_tabs(){ |
|
24 | + $tabs = array( |
|
25 | + 'addons' => __("Addons", "invoicing"), |
|
26 | 26 | 'gateways' => __("Payment Gateways", "invoicing"), |
27 | 27 | 'recommended_plugins' => __("Recommended plugins", "invoicing"), |
28 | 28 | 'membership' => __("Membership", "invoicing"), |
29 | - ); |
|
30 | - |
|
31 | - return $tabs; |
|
32 | - } |
|
33 | - |
|
34 | - /** |
|
35 | - * Get section content for the addons screen. |
|
36 | - * |
|
37 | - * @param string $section_id |
|
38 | - * |
|
39 | - * @return array |
|
40 | - */ |
|
41 | - public function get_section_data( $section_id ) { |
|
42 | - $section = self::get_tab( $section_id ); |
|
43 | - $api_url = "https://wpinvoicing.com/edd-api/v2/products/"; |
|
44 | - $section_data = new stdClass(); |
|
45 | - |
|
46 | - if($section_id=='recommended_plugins'){ |
|
47 | - $section_data->products = self::get_recommend_wp_plugins_edd_formatted(); |
|
48 | - } |
|
49 | - elseif ( ! empty( $section ) ) { |
|
50 | - if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing |
|
51 | - //if ( 1==1) { |
|
52 | - |
|
53 | - $query_args = array( 'category' => $section_id, 'number' => 100); |
|
54 | - $query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id); |
|
55 | - |
|
56 | - $raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout' => 15, ) ); |
|
57 | - |
|
58 | - if ( ! is_wp_error( $raw_section ) ) { |
|
59 | - $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) ); |
|
60 | - |
|
61 | - if ( ! empty( $section_data->products ) ) { |
|
62 | - set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS ); |
|
63 | - } |
|
64 | - } |
|
65 | - } |
|
66 | - |
|
67 | - } |
|
68 | - |
|
69 | - $products = isset($section_data->products) ? $section_data->products : array(); |
|
70 | - if ( 'addons' == $section_id ) { |
|
71 | - |
|
72 | - $quotes = new stdClass(); |
|
73 | - $quotes->info = new stdClass(); |
|
74 | - $quotes->info->id = ''; |
|
75 | - $quotes->info->slug = 'invoicing-quotes'; |
|
76 | - $quotes->info->title = __( 'Quotes', 'invoicing' ); |
|
77 | - $quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' ); |
|
78 | - $quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/'; |
|
79 | - $quotes->info->thumbnail = 'https://wpgetpaid.com/wp-content/uploads/sites/13/edd/2019/11/Quotes-1-768x384.png'; |
|
80 | - |
|
81 | - $products[] = $quotes; |
|
82 | - } |
|
29 | + ); |
|
30 | + |
|
31 | + return $tabs; |
|
32 | + } |
|
33 | + |
|
34 | + /** |
|
35 | + * Get section content for the addons screen. |
|
36 | + * |
|
37 | + * @param string $section_id |
|
38 | + * |
|
39 | + * @return array |
|
40 | + */ |
|
41 | + public function get_section_data( $section_id ) { |
|
42 | + $section = self::get_tab( $section_id ); |
|
43 | + $api_url = "https://wpinvoicing.com/edd-api/v2/products/"; |
|
44 | + $section_data = new stdClass(); |
|
45 | + |
|
46 | + if($section_id=='recommended_plugins'){ |
|
47 | + $section_data->products = self::get_recommend_wp_plugins_edd_formatted(); |
|
48 | + } |
|
49 | + elseif ( ! empty( $section ) ) { |
|
50 | + if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing |
|
51 | + //if ( 1==1) { |
|
52 | + |
|
53 | + $query_args = array( 'category' => $section_id, 'number' => 100); |
|
54 | + $query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id); |
|
55 | + |
|
56 | + $raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout' => 15, ) ); |
|
57 | + |
|
58 | + if ( ! is_wp_error( $raw_section ) ) { |
|
59 | + $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) ); |
|
60 | + |
|
61 | + if ( ! empty( $section_data->products ) ) { |
|
62 | + set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS ); |
|
63 | + } |
|
64 | + } |
|
65 | + } |
|
66 | + |
|
67 | + } |
|
68 | + |
|
69 | + $products = isset($section_data->products) ? $section_data->products : array(); |
|
70 | + if ( 'addons' == $section_id ) { |
|
71 | + |
|
72 | + $quotes = new stdClass(); |
|
73 | + $quotes->info = new stdClass(); |
|
74 | + $quotes->info->id = ''; |
|
75 | + $quotes->info->slug = 'invoicing-quotes'; |
|
76 | + $quotes->info->title = __( 'Quotes', 'invoicing' ); |
|
77 | + $quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' ); |
|
78 | + $quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/'; |
|
79 | + $quotes->info->thumbnail = 'https://wpgetpaid.com/wp-content/uploads/sites/13/edd/2019/11/Quotes-1-768x384.png'; |
|
80 | + |
|
81 | + $products[] = $quotes; |
|
82 | + } |
|
83 | 83 | |
84 | - return apply_filters( 'wpi_addons_section_data', $products, $section_id ); |
|
85 | - } |
|
86 | - |
|
87 | - /** |
|
88 | - * Outputs a button. |
|
89 | - *ccc |
|
90 | - * @param string $url |
|
91 | - * @param string $text |
|
92 | - * @param string $theme |
|
93 | - * @param string $plugin |
|
94 | - */ |
|
95 | - public function output_button( $addon ) { |
|
96 | - $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
84 | + return apply_filters( 'wpi_addons_section_data', $products, $section_id ); |
|
85 | + } |
|
86 | + |
|
87 | + /** |
|
88 | + * Outputs a button. |
|
89 | + *ccc |
|
90 | + * @param string $url |
|
91 | + * @param string $text |
|
92 | + * @param string $theme |
|
93 | + * @param string $plugin |
|
94 | + */ |
|
95 | + public function output_button( $addon ) { |
|
96 | + $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
97 | 97 | // $button_text = __('Free','invoicing'); |
98 | 98 | // $licensing = false; |
99 | 99 | // $installed = false; |
@@ -105,123 +105,123 @@ discard block |
||
105 | 105 | // $install_status = 'get'; |
106 | 106 | // $onclick = ''; |
107 | 107 | |
108 | - $wp_org_themes = array('supreme-directory','directory-starter'); |
|
109 | - |
|
110 | - $button_args = array( |
|
111 | - 'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab, |
|
112 | - 'id' => isset($addon->info->id) ? absint($addon->info->id) : '', |
|
113 | - 'title' => isset($addon->info->title) ? $addon->info->title : '', |
|
114 | - 'button_text' => __('Free','invoicing'), |
|
115 | - 'price_text' => __('Free','invoicing'), |
|
116 | - 'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product |
|
117 | - 'url' => isset($addon->info->link) ? $addon->info->link : '', // button url |
|
118 | - 'class' => 'button-primary', |
|
119 | - 'install_status' => 'get', |
|
120 | - 'installed' => false, |
|
121 | - 'price' => '', |
|
122 | - 'licensing' => isset($addon->licensing->enabled) && $addon->licensing->enabled ? true : false, |
|
123 | - 'license' => isset($addon->licensing->license) && $addon->licensing->license ? $addon->licensing->license : '', |
|
124 | - 'onclick' => '', |
|
125 | - 'slug' => isset($addon->info->slug) ? $addon->info->slug : '', |
|
126 | - 'active' => false, |
|
127 | - 'file' => '', |
|
128 | - 'update_url' => '', |
|
129 | - ); |
|
130 | - |
|
131 | - if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){ |
|
132 | - include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
133 | - $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>"")); |
|
134 | - $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install'; |
|
135 | - $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
|
136 | - }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
137 | - include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
138 | - if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
139 | - $status = self::install_plugin_install_status($addon); |
|
140 | - $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
|
141 | - if(isset($status['status'])){$button_args['install_status'] = $status['status'];} |
|
142 | - $button_args['update_url'] = "https://wpinvoicing.com"; |
|
143 | - }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
144 | - if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
145 | - $button_args['installed'] = self::is_theme_installed($addon); |
|
146 | - if(!in_array($button_args['slug'],$wp_org_themes)){ |
|
147 | - $button_args['update_url'] = "https://wpinvoicing.com"; |
|
148 | - } |
|
149 | - } |
|
150 | - |
|
151 | - // set price |
|
152 | - if(isset($addon->pricing) && !empty($addon->pricing)){ |
|
153 | - if(is_object($addon->pricing)){ |
|
154 | - $prices = (Array)$addon->pricing; |
|
155 | - $button_args['price'] = reset($prices); |
|
156 | - }elseif(isset($addon->pricing)){ |
|
157 | - $button_args['price'] = $addon->pricing; |
|
158 | - } |
|
159 | - } |
|
160 | - |
|
161 | - // set price text |
|
162 | - if( $button_args['price'] && $button_args['price'] != '0.00' ){ |
|
163 | - $button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']); |
|
164 | - } |
|
165 | - |
|
166 | - |
|
167 | - // set if installed |
|
168 | - if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){ |
|
169 | - $button_args['installed'] = true; |
|
170 | - } |
|
108 | + $wp_org_themes = array('supreme-directory','directory-starter'); |
|
109 | + |
|
110 | + $button_args = array( |
|
111 | + 'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab, |
|
112 | + 'id' => isset($addon->info->id) ? absint($addon->info->id) : '', |
|
113 | + 'title' => isset($addon->info->title) ? $addon->info->title : '', |
|
114 | + 'button_text' => __('Free','invoicing'), |
|
115 | + 'price_text' => __('Free','invoicing'), |
|
116 | + 'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product |
|
117 | + 'url' => isset($addon->info->link) ? $addon->info->link : '', // button url |
|
118 | + 'class' => 'button-primary', |
|
119 | + 'install_status' => 'get', |
|
120 | + 'installed' => false, |
|
121 | + 'price' => '', |
|
122 | + 'licensing' => isset($addon->licensing->enabled) && $addon->licensing->enabled ? true : false, |
|
123 | + 'license' => isset($addon->licensing->license) && $addon->licensing->license ? $addon->licensing->license : '', |
|
124 | + 'onclick' => '', |
|
125 | + 'slug' => isset($addon->info->slug) ? $addon->info->slug : '', |
|
126 | + 'active' => false, |
|
127 | + 'file' => '', |
|
128 | + 'update_url' => '', |
|
129 | + ); |
|
130 | + |
|
131 | + if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){ |
|
132 | + include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
133 | + $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>"")); |
|
134 | + $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install'; |
|
135 | + $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
|
136 | + }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
137 | + include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
138 | + if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
139 | + $status = self::install_plugin_install_status($addon); |
|
140 | + $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
|
141 | + if(isset($status['status'])){$button_args['install_status'] = $status['status'];} |
|
142 | + $button_args['update_url'] = "https://wpinvoicing.com"; |
|
143 | + }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
144 | + if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
145 | + $button_args['installed'] = self::is_theme_installed($addon); |
|
146 | + if(!in_array($button_args['slug'],$wp_org_themes)){ |
|
147 | + $button_args['update_url'] = "https://wpinvoicing.com"; |
|
148 | + } |
|
149 | + } |
|
150 | + |
|
151 | + // set price |
|
152 | + if(isset($addon->pricing) && !empty($addon->pricing)){ |
|
153 | + if(is_object($addon->pricing)){ |
|
154 | + $prices = (Array)$addon->pricing; |
|
155 | + $button_args['price'] = reset($prices); |
|
156 | + }elseif(isset($addon->pricing)){ |
|
157 | + $button_args['price'] = $addon->pricing; |
|
158 | + } |
|
159 | + } |
|
160 | + |
|
161 | + // set price text |
|
162 | + if( $button_args['price'] && $button_args['price'] != '0.00' ){ |
|
163 | + $button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']); |
|
164 | + } |
|
165 | + |
|
166 | + |
|
167 | + // set if installed |
|
168 | + if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){ |
|
169 | + $button_args['installed'] = true; |
|
170 | + } |
|
171 | 171 | |
172 | 172 | // print_r($button_args); |
173 | - // set if active |
|
174 | - if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){ |
|
175 | - if($button_args['type'] != 'themes'){ |
|
176 | - $button_args['active'] = is_plugin_active($button_args['file']); |
|
177 | - }else{ |
|
178 | - $button_args['active'] = self::is_theme_active($addon); |
|
179 | - } |
|
180 | - } |
|
181 | - |
|
182 | - // set button text and class |
|
183 | - if($button_args['active']){ |
|
184 | - $button_args['button_text'] = __('Active','invoicing'); |
|
185 | - $button_args['class'] = ' button-secondary disabled '; |
|
186 | - }elseif($button_args['installed']){ |
|
187 | - $button_args['button_text'] = __('Activate','invoicing'); |
|
188 | - |
|
189 | - if($button_args['type'] != 'themes'){ |
|
190 | - if ( current_user_can( 'manage_options' ) ) { |
|
191 | - $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']); |
|
192 | - }else{ |
|
193 | - $button_args['url'] = '#'; |
|
194 | - } |
|
195 | - }else{ |
|
196 | - if ( current_user_can( 'switch_themes' ) ) { |
|
197 | - $button_args['url'] = self::get_theme_activation_url($addon); |
|
198 | - }else{ |
|
199 | - $button_args['url'] = '#'; |
|
200 | - } |
|
201 | - } |
|
202 | - |
|
203 | - }else{ |
|
204 | - if($button_args['type'] == 'recommended_plugins'){ |
|
205 | - $button_args['button_text'] = __('Install','invoicing'); |
|
206 | - }else{ |
|
207 | - $button_args['button_text'] = __('Get it','invoicing'); |
|
208 | - |
|
209 | - /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){ |
|
173 | + // set if active |
|
174 | + if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){ |
|
175 | + if($button_args['type'] != 'themes'){ |
|
176 | + $button_args['active'] = is_plugin_active($button_args['file']); |
|
177 | + }else{ |
|
178 | + $button_args['active'] = self::is_theme_active($addon); |
|
179 | + } |
|
180 | + } |
|
181 | + |
|
182 | + // set button text and class |
|
183 | + if($button_args['active']){ |
|
184 | + $button_args['button_text'] = __('Active','invoicing'); |
|
185 | + $button_args['class'] = ' button-secondary disabled '; |
|
186 | + }elseif($button_args['installed']){ |
|
187 | + $button_args['button_text'] = __('Activate','invoicing'); |
|
188 | + |
|
189 | + if($button_args['type'] != 'themes'){ |
|
190 | + if ( current_user_can( 'manage_options' ) ) { |
|
191 | + $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']); |
|
192 | + }else{ |
|
193 | + $button_args['url'] = '#'; |
|
194 | + } |
|
195 | + }else{ |
|
196 | + if ( current_user_can( 'switch_themes' ) ) { |
|
197 | + $button_args['url'] = self::get_theme_activation_url($addon); |
|
198 | + }else{ |
|
199 | + $button_args['url'] = '#'; |
|
200 | + } |
|
201 | + } |
|
202 | + |
|
203 | + }else{ |
|
204 | + if($button_args['type'] == 'recommended_plugins'){ |
|
205 | + $button_args['button_text'] = __('Install','invoicing'); |
|
206 | + }else{ |
|
207 | + $button_args['button_text'] = __('Get it','invoicing'); |
|
208 | + |
|
209 | + /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){ |
|
210 | 210 | $button_args['button_text'] = __('Install','invoicing'); |
211 | 211 | $button_args['url'] = self::get_theme_install_url($button_args['slug']); |
212 | 212 | $button_args['onclick'] = 'gd_set_button_installing(this);'; |
213 | 213 | }*/ |
214 | 214 | |
215 | - } |
|
216 | - } |
|
215 | + } |
|
216 | + } |
|
217 | 217 | |
218 | 218 | |
219 | - // filter the button arguments |
|
220 | - $button_args = apply_filters('edd_api_button_args',$button_args); |
|
219 | + // filter the button arguments |
|
220 | + $button_args = apply_filters('edd_api_button_args',$button_args); |
|
221 | 221 | // print_r($button_args); |
222 | - // set price text |
|
223 | - if(isset($button_args['price_text'])){ |
|
224 | - ?> |
|
222 | + // set price text |
|
223 | + if(isset($button_args['price_text'])){ |
|
224 | + ?> |
|
225 | 225 | <a |
226 | 226 | target="_blank" |
227 | 227 | class="addons-price-text" |
@@ -229,15 +229,15 @@ discard block |
||
229 | 229 | <?php echo esc_html( $button_args['price_text'] ); ?> |
230 | 230 | </a> |
231 | 231 | <?php |
232 | - } |
|
232 | + } |
|
233 | 233 | |
234 | 234 | |
235 | - $target = ''; |
|
236 | - if ( ! empty( $button_args['url'] ) ) { |
|
237 | - $target = strpos($button_args['url'], get_site_url()) !== false ? '' : ' target="_blank" '; |
|
238 | - } |
|
235 | + $target = ''; |
|
236 | + if ( ! empty( $button_args['url'] ) ) { |
|
237 | + $target = strpos($button_args['url'], get_site_url()) !== false ? '' : ' target="_blank" '; |
|
238 | + } |
|
239 | 239 | |
240 | - ?> |
|
240 | + ?> |
|
241 | 241 | <a |
242 | 242 | data-licence="<?php echo esc_attr($button_args['license']);?>" |
243 | 243 | data-licensing="<?php echo $button_args['licensing'] ? 1 : 0;?>" |
@@ -260,33 +260,33 @@ discard block |
||
260 | 260 | <?php |
261 | 261 | |
262 | 262 | |
263 | - } |
|
264 | - |
|
265 | - |
|
266 | - /** |
|
267 | - * Handles output of the addons page in admin. |
|
268 | - */ |
|
269 | - public function output() { |
|
270 | - $tabs = self::get_tabs(); |
|
271 | - $sections = self::get_sections(); |
|
272 | - $theme = wp_get_theme(); |
|
273 | - $section_keys = array_keys( $sections ); |
|
274 | - $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys ); |
|
275 | - $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
276 | - include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' ); |
|
277 | - } |
|
278 | - |
|
279 | - /** |
|
280 | - * A list of recommended wp.org plugins. |
|
281 | - * @return array |
|
282 | - */ |
|
283 | - public function get_recommend_wp_plugins(){ |
|
284 | - $plugins = array( |
|
263 | + } |
|
264 | + |
|
265 | + |
|
266 | + /** |
|
267 | + * Handles output of the addons page in admin. |
|
268 | + */ |
|
269 | + public function output() { |
|
270 | + $tabs = self::get_tabs(); |
|
271 | + $sections = self::get_sections(); |
|
272 | + $theme = wp_get_theme(); |
|
273 | + $section_keys = array_keys( $sections ); |
|
274 | + $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys ); |
|
275 | + $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
276 | + include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' ); |
|
277 | + } |
|
278 | + |
|
279 | + /** |
|
280 | + * A list of recommended wp.org plugins. |
|
281 | + * @return array |
|
282 | + */ |
|
283 | + public function get_recommend_wp_plugins(){ |
|
284 | + $plugins = array( |
|
285 | 285 | 'invoicing-quotes' => array( |
286 | 286 | 'url' => 'https://wordpress.org/plugins/invoicing-quotes/', |
287 | 287 | 'slug' => 'invoicing-quotes', |
288 | - 'name' => 'Quotes', |
|
289 | - 'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png', |
|
288 | + 'name' => 'Quotes', |
|
289 | + 'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png', |
|
290 | 290 | 'desc' => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.','invoicing'), |
291 | 291 | ), |
292 | 292 | 'geodirectory' => array( |
@@ -301,8 +301,8 @@ discard block |
||
301 | 301 | 'name' => 'UsersWP', |
302 | 302 | 'desc' => __('Allow frontend user login and registration as well as have slick profile pages.','invoicing'), |
303 | 303 | ), |
304 | - ); |
|
304 | + ); |
|
305 | 305 | |
306 | - return $plugins; |
|
307 | - } |
|
306 | + return $plugins; |
|
307 | + } |
|
308 | 308 | } |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | * All Invoicing extensions screen related functions can be found here. |
6 | 6 | * |
7 | 7 | */ |
8 | -if ( ! defined( 'ABSPATH' ) ) { |
|
8 | +if (!defined('ABSPATH')) { |
|
9 | 9 | exit; |
10 | 10 | } |
11 | 11 | |
@@ -20,7 +20,7 @@ discard block |
||
20 | 20 | * |
21 | 21 | * @return array of tabs. |
22 | 22 | */ |
23 | - public function get_tabs(){ |
|
23 | + public function get_tabs() { |
|
24 | 24 | $tabs = array( |
25 | 25 | 'addons' => __("Addons", "invoicing"), |
26 | 26 | 'gateways' => __("Payment Gateways", "invoicing"), |
@@ -38,28 +38,28 @@ discard block |
||
38 | 38 | * |
39 | 39 | * @return array |
40 | 40 | */ |
41 | - public function get_section_data( $section_id ) { |
|
42 | - $section = self::get_tab( $section_id ); |
|
41 | + public function get_section_data($section_id) { |
|
42 | + $section = self::get_tab($section_id); |
|
43 | 43 | $api_url = "https://wpinvoicing.com/edd-api/v2/products/"; |
44 | 44 | $section_data = new stdClass(); |
45 | 45 | |
46 | - if($section_id=='recommended_plugins'){ |
|
46 | + if ($section_id == 'recommended_plugins') { |
|
47 | 47 | $section_data->products = self::get_recommend_wp_plugins_edd_formatted(); |
48 | 48 | } |
49 | - elseif ( ! empty( $section ) ) { |
|
50 | - if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing |
|
49 | + elseif (!empty($section)) { |
|
50 | + if (false === ($section_data = get_transient('wpi_addons_section_' . $section_id))) { //@todo restore after testing |
|
51 | 51 | //if ( 1==1) { |
52 | 52 | |
53 | - $query_args = array( 'category' => $section_id, 'number' => 100); |
|
54 | - $query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id); |
|
53 | + $query_args = array('category' => $section_id, 'number' => 100); |
|
54 | + $query_args = apply_filters('wpeu_edd_api_query_args', $query_args, $api_url, $section_id); |
|
55 | 55 | |
56 | - $raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout' => 15, ) ); |
|
56 | + $raw_section = wp_safe_remote_get(esc_url_raw(add_query_arg($query_args, $api_url)), array('user-agent' => 'Invoicing Addons Page', 'timeout' => 15,)); |
|
57 | 57 | |
58 | - if ( ! is_wp_error( $raw_section ) ) { |
|
59 | - $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) ); |
|
58 | + if (!is_wp_error($raw_section)) { |
|
59 | + $section_data = json_decode(wp_remote_retrieve_body($raw_section)); |
|
60 | 60 | |
61 | - if ( ! empty( $section_data->products ) ) { |
|
62 | - set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS ); |
|
61 | + if (!empty($section_data->products)) { |
|
62 | + set_transient('wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS); |
|
63 | 63 | } |
64 | 64 | } |
65 | 65 | } |
@@ -67,21 +67,21 @@ discard block |
||
67 | 67 | } |
68 | 68 | |
69 | 69 | $products = isset($section_data->products) ? $section_data->products : array(); |
70 | - if ( 'addons' == $section_id ) { |
|
70 | + if ('addons' == $section_id) { |
|
71 | 71 | |
72 | 72 | $quotes = new stdClass(); |
73 | 73 | $quotes->info = new stdClass(); |
74 | 74 | $quotes->info->id = ''; |
75 | 75 | $quotes->info->slug = 'invoicing-quotes'; |
76 | - $quotes->info->title = __( 'Quotes', 'invoicing' ); |
|
77 | - $quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' ); |
|
76 | + $quotes->info->title = __('Quotes', 'invoicing'); |
|
77 | + $quotes->info->excerpt = __('Create quotes and estimates', 'invoicing'); |
|
78 | 78 | $quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/'; |
79 | 79 | $quotes->info->thumbnail = 'https://wpgetpaid.com/wp-content/uploads/sites/13/edd/2019/11/Quotes-1-768x384.png'; |
80 | 80 | |
81 | 81 | $products[] = $quotes; |
82 | 82 | } |
83 | 83 | |
84 | - return apply_filters( 'wpi_addons_section_data', $products, $section_id ); |
|
84 | + return apply_filters('wpi_addons_section_data', $products, $section_id); |
|
85 | 85 | } |
86 | 86 | |
87 | 87 | /** |
@@ -92,8 +92,8 @@ discard block |
||
92 | 92 | * @param string $theme |
93 | 93 | * @param string $plugin |
94 | 94 | */ |
95 | - public function output_button( $addon ) { |
|
96 | - $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
95 | + public function output_button($addon) { |
|
96 | + $current_tab = empty($_GET['tab']) ? 'addons' : sanitize_title($_GET['tab']); |
|
97 | 97 | // $button_text = __('Free','invoicing'); |
98 | 98 | // $licensing = false; |
99 | 99 | // $installed = false; |
@@ -105,14 +105,14 @@ discard block |
||
105 | 105 | // $install_status = 'get'; |
106 | 106 | // $onclick = ''; |
107 | 107 | |
108 | - $wp_org_themes = array('supreme-directory','directory-starter'); |
|
108 | + $wp_org_themes = array('supreme-directory', 'directory-starter'); |
|
109 | 109 | |
110 | 110 | $button_args = array( |
111 | - 'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab, |
|
111 | + 'type' => ($current_tab == 'addons' || $current_tab == 'gateways') ? 'addons' : $current_tab, |
|
112 | 112 | 'id' => isset($addon->info->id) ? absint($addon->info->id) : '', |
113 | 113 | 'title' => isset($addon->info->title) ? $addon->info->title : '', |
114 | - 'button_text' => __('Free','invoicing'), |
|
115 | - 'price_text' => __('Free','invoicing'), |
|
114 | + 'button_text' => __('Free', 'invoicing'), |
|
115 | + 'price_text' => __('Free', 'invoicing'), |
|
116 | 116 | 'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product |
117 | 117 | 'url' => isset($addon->info->link) ? $addon->info->link : '', // button url |
118 | 118 | 'class' => 'button-primary', |
@@ -128,83 +128,83 @@ discard block |
||
128 | 128 | 'update_url' => '', |
129 | 129 | ); |
130 | 130 | |
131 | - if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){ |
|
132 | - include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
133 | - $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>"")); |
|
131 | + if ('invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ($current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug)) { |
|
132 | + include_once(ABSPATH . 'wp-admin/includes/plugin-install.php'); //for plugins_api.. |
|
133 | + $status = install_plugin_install_status(array("slug"=>$button_args['slug'], "version"=>"")); |
|
134 | 134 | $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install'; |
135 | 135 | $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
136 | - }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
137 | - include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
138 | - if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
136 | + }elseif (($current_tab == 'addons' || $current_tab == 'gateways') && isset($addon->info->id) && $addon->info->id) { |
|
137 | + include_once(ABSPATH . 'wp-admin/includes/plugin-install.php'); //for plugins_api.. |
|
138 | + if (!empty($addon->licensing->edd_slug)) {$button_args['slug'] = $addon->licensing->edd_slug; } |
|
139 | 139 | $status = self::install_plugin_install_status($addon); |
140 | 140 | $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
141 | - if(isset($status['status'])){$button_args['install_status'] = $status['status'];} |
|
141 | + if (isset($status['status'])) {$button_args['install_status'] = $status['status']; } |
|
142 | 142 | $button_args['update_url'] = "https://wpinvoicing.com"; |
143 | - }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
144 | - if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
143 | + }elseif ($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
144 | + if (!empty($addon->licensing->edd_slug)) {$button_args['slug'] = $addon->licensing->edd_slug; } |
|
145 | 145 | $button_args['installed'] = self::is_theme_installed($addon); |
146 | - if(!in_array($button_args['slug'],$wp_org_themes)){ |
|
146 | + if (!in_array($button_args['slug'], $wp_org_themes)) { |
|
147 | 147 | $button_args['update_url'] = "https://wpinvoicing.com"; |
148 | 148 | } |
149 | 149 | } |
150 | 150 | |
151 | 151 | // set price |
152 | - if(isset($addon->pricing) && !empty($addon->pricing)){ |
|
153 | - if(is_object($addon->pricing)){ |
|
154 | - $prices = (Array)$addon->pricing; |
|
152 | + if (isset($addon->pricing) && !empty($addon->pricing)) { |
|
153 | + if (is_object($addon->pricing)) { |
|
154 | + $prices = (Array) $addon->pricing; |
|
155 | 155 | $button_args['price'] = reset($prices); |
156 | - }elseif(isset($addon->pricing)){ |
|
156 | + }elseif (isset($addon->pricing)) { |
|
157 | 157 | $button_args['price'] = $addon->pricing; |
158 | 158 | } |
159 | 159 | } |
160 | 160 | |
161 | 161 | // set price text |
162 | - if( $button_args['price'] && $button_args['price'] != '0.00' ){ |
|
163 | - $button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']); |
|
162 | + if ($button_args['price'] && $button_args['price'] != '0.00') { |
|
163 | + $button_args['price_text'] = sprintf(__('From: $%d', 'invoicing'), $button_args['price']); |
|
164 | 164 | } |
165 | 165 | |
166 | 166 | |
167 | 167 | // set if installed |
168 | - if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){ |
|
168 | + if (in_array($button_args['install_status'], array('installed', 'latest_installed', 'update_available', 'newer_installed'))) { |
|
169 | 169 | $button_args['installed'] = true; |
170 | 170 | } |
171 | 171 | |
172 | 172 | // print_r($button_args); |
173 | 173 | // set if active |
174 | - if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){ |
|
175 | - if($button_args['type'] != 'themes'){ |
|
174 | + if ($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')) { |
|
175 | + if ($button_args['type'] != 'themes') { |
|
176 | 176 | $button_args['active'] = is_plugin_active($button_args['file']); |
177 | - }else{ |
|
177 | + } else { |
|
178 | 178 | $button_args['active'] = self::is_theme_active($addon); |
179 | 179 | } |
180 | 180 | } |
181 | 181 | |
182 | 182 | // set button text and class |
183 | - if($button_args['active']){ |
|
184 | - $button_args['button_text'] = __('Active','invoicing'); |
|
183 | + if ($button_args['active']) { |
|
184 | + $button_args['button_text'] = __('Active', 'invoicing'); |
|
185 | 185 | $button_args['class'] = ' button-secondary disabled '; |
186 | - }elseif($button_args['installed']){ |
|
187 | - $button_args['button_text'] = __('Activate','invoicing'); |
|
186 | + }elseif ($button_args['installed']) { |
|
187 | + $button_args['button_text'] = __('Activate', 'invoicing'); |
|
188 | 188 | |
189 | - if($button_args['type'] != 'themes'){ |
|
190 | - if ( current_user_can( 'manage_options' ) ) { |
|
191 | - $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']); |
|
192 | - }else{ |
|
189 | + if ($button_args['type'] != 'themes') { |
|
190 | + if (current_user_can('manage_options')) { |
|
191 | + $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin=' . $button_args['file']), 'activate-plugin_' . $button_args['file']); |
|
192 | + } else { |
|
193 | 193 | $button_args['url'] = '#'; |
194 | 194 | } |
195 | - }else{ |
|
196 | - if ( current_user_can( 'switch_themes' ) ) { |
|
195 | + } else { |
|
196 | + if (current_user_can('switch_themes')) { |
|
197 | 197 | $button_args['url'] = self::get_theme_activation_url($addon); |
198 | - }else{ |
|
198 | + } else { |
|
199 | 199 | $button_args['url'] = '#'; |
200 | 200 | } |
201 | 201 | } |
202 | 202 | |
203 | - }else{ |
|
204 | - if($button_args['type'] == 'recommended_plugins'){ |
|
205 | - $button_args['button_text'] = __('Install','invoicing'); |
|
206 | - }else{ |
|
207 | - $button_args['button_text'] = __('Get it','invoicing'); |
|
203 | + } else { |
|
204 | + if ($button_args['type'] == 'recommended_plugins') { |
|
205 | + $button_args['button_text'] = __('Install', 'invoicing'); |
|
206 | + } else { |
|
207 | + $button_args['button_text'] = __('Get it', 'invoicing'); |
|
208 | 208 | |
209 | 209 | /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){ |
210 | 210 | $button_args['button_text'] = __('Install','invoicing'); |
@@ -217,45 +217,45 @@ discard block |
||
217 | 217 | |
218 | 218 | |
219 | 219 | // filter the button arguments |
220 | - $button_args = apply_filters('edd_api_button_args',$button_args); |
|
220 | + $button_args = apply_filters('edd_api_button_args', $button_args); |
|
221 | 221 | // print_r($button_args); |
222 | 222 | // set price text |
223 | - if(isset($button_args['price_text'])){ |
|
223 | + if (isset($button_args['price_text'])) { |
|
224 | 224 | ?> |
225 | 225 | <a |
226 | 226 | target="_blank" |
227 | 227 | class="addons-price-text" |
228 | - href="<?php echo esc_url( $button_args['link'] ); ?>"> |
|
229 | - <?php echo esc_html( $button_args['price_text'] ); ?> |
|
228 | + href="<?php echo esc_url($button_args['link']); ?>"> |
|
229 | + <?php echo esc_html($button_args['price_text']); ?> |
|
230 | 230 | </a> |
231 | 231 | <?php |
232 | 232 | } |
233 | 233 | |
234 | 234 | |
235 | 235 | $target = ''; |
236 | - if ( ! empty( $button_args['url'] ) ) { |
|
236 | + if (!empty($button_args['url'])) { |
|
237 | 237 | $target = strpos($button_args['url'], get_site_url()) !== false ? '' : ' target="_blank" '; |
238 | 238 | } |
239 | 239 | |
240 | 240 | ?> |
241 | 241 | <a |
242 | - data-licence="<?php echo esc_attr($button_args['license']);?>" |
|
243 | - data-licensing="<?php echo $button_args['licensing'] ? 1 : 0;?>" |
|
244 | - data-title="<?php echo esc_attr($button_args['title']);?>" |
|
245 | - data-type="<?php echo esc_attr($button_args['type']);?>" |
|
246 | - data-text-error-message="<?php _e('Something went wrong!','invoicing');?>" |
|
247 | - data-text-activate="<?php _e('Activate','invoicing');?>" |
|
248 | - data-text-activating="<?php _e('Activating','invoicing');?>" |
|
249 | - data-text-deactivate="<?php _e('Deactivate','invoicing');?>" |
|
250 | - data-text-installed="<?php _e('Installed','invoicing');?>" |
|
251 | - data-text-install="<?php _e('Install','invoicing');?>" |
|
252 | - data-text-installing="<?php _e('Installing','invoicing');?>" |
|
253 | - data-text-error="<?php _e('Error','invoicing');?>" |
|
254 | - <?php if(!empty($button_args['onclick'])){echo " onclick='".$button_args['onclick']."' ";}?> |
|
255 | - <?php echo $target;?> |
|
256 | - class="addons-button <?php echo esc_attr( $button_args['class'] ); ?>" |
|
257 | - href="<?php echo esc_url( $button_args['url'] ); ?>"> |
|
258 | - <?php echo esc_html( $button_args['button_text'] ); ?> |
|
242 | + data-licence="<?php echo esc_attr($button_args['license']); ?>" |
|
243 | + data-licensing="<?php echo $button_args['licensing'] ? 1 : 0; ?>" |
|
244 | + data-title="<?php echo esc_attr($button_args['title']); ?>" |
|
245 | + data-type="<?php echo esc_attr($button_args['type']); ?>" |
|
246 | + data-text-error-message="<?php _e('Something went wrong!', 'invoicing'); ?>" |
|
247 | + data-text-activate="<?php _e('Activate', 'invoicing'); ?>" |
|
248 | + data-text-activating="<?php _e('Activating', 'invoicing'); ?>" |
|
249 | + data-text-deactivate="<?php _e('Deactivate', 'invoicing'); ?>" |
|
250 | + data-text-installed="<?php _e('Installed', 'invoicing'); ?>" |
|
251 | + data-text-install="<?php _e('Install', 'invoicing'); ?>" |
|
252 | + data-text-installing="<?php _e('Installing', 'invoicing'); ?>" |
|
253 | + data-text-error="<?php _e('Error', 'invoicing'); ?>" |
|
254 | + <?php if (!empty($button_args['onclick'])) {echo " onclick='" . $button_args['onclick'] . "' "; }?> |
|
255 | + <?php echo $target; ?> |
|
256 | + class="addons-button <?php echo esc_attr($button_args['class']); ?>" |
|
257 | + href="<?php echo esc_url($button_args['url']); ?>"> |
|
258 | + <?php echo esc_html($button_args['button_text']); ?> |
|
259 | 259 | </a> |
260 | 260 | <?php |
261 | 261 | |
@@ -270,36 +270,36 @@ discard block |
||
270 | 270 | $tabs = self::get_tabs(); |
271 | 271 | $sections = self::get_sections(); |
272 | 272 | $theme = wp_get_theme(); |
273 | - $section_keys = array_keys( $sections ); |
|
274 | - $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys ); |
|
275 | - $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
276 | - include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' ); |
|
273 | + $section_keys = array_keys($sections); |
|
274 | + $current_section = isset($_GET['section']) ? sanitize_text_field($_GET['section']) : current($section_keys); |
|
275 | + $current_tab = empty($_GET['tab']) ? 'addons' : sanitize_title($_GET['tab']); |
|
276 | + include_once(WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php'); |
|
277 | 277 | } |
278 | 278 | |
279 | 279 | /** |
280 | 280 | * A list of recommended wp.org plugins. |
281 | 281 | * @return array |
282 | 282 | */ |
283 | - public function get_recommend_wp_plugins(){ |
|
283 | + public function get_recommend_wp_plugins() { |
|
284 | 284 | $plugins = array( |
285 | 285 | 'invoicing-quotes' => array( |
286 | 286 | 'url' => 'https://wordpress.org/plugins/invoicing-quotes/', |
287 | 287 | 'slug' => 'invoicing-quotes', |
288 | 288 | 'name' => 'Quotes', |
289 | 289 | 'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png', |
290 | - 'desc' => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.','invoicing'), |
|
290 | + 'desc' => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.', 'invoicing'), |
|
291 | 291 | ), |
292 | 292 | 'geodirectory' => array( |
293 | 293 | 'url' => 'https://wordpress.org/plugins/geodirectory/', |
294 | 294 | 'slug' => 'geodirectory', |
295 | 295 | 'name' => 'GeoDirectory', |
296 | - 'desc' => __('Turn any WordPress theme into a global business directory portal.','invoicing'), |
|
296 | + 'desc' => __('Turn any WordPress theme into a global business directory portal.', 'invoicing'), |
|
297 | 297 | ), |
298 | 298 | 'userswp' => array( |
299 | 299 | 'url' => 'https://wordpress.org/plugins/userswp/', |
300 | 300 | 'slug' => 'userswp', |
301 | 301 | 'name' => 'UsersWP', |
302 | - 'desc' => __('Allow frontend user login and registration as well as have slick profile pages.','invoicing'), |
|
302 | + 'desc' => __('Allow frontend user login and registration as well as have slick profile pages.', 'invoicing'), |
|
303 | 303 | ), |
304 | 304 | ); |
305 | 305 |
@@ -9,7 +9,7 @@ discard block |
||
9 | 9 | */ |
10 | 10 | |
11 | 11 | if ( ! defined( 'ABSPATH' ) ) { |
12 | - exit; |
|
12 | + exit; |
|
13 | 13 | } |
14 | 14 | |
15 | 15 | /** |
@@ -21,356 +21,356 @@ discard block |
||
21 | 21 | */ |
22 | 22 | abstract class GetPaid_Data { |
23 | 23 | |
24 | - /** |
|
25 | - * ID for this object. |
|
26 | - * |
|
27 | - * @since 1.0.19 |
|
28 | - * @var int |
|
29 | - */ |
|
30 | - protected $id = 0; |
|
31 | - |
|
32 | - /** |
|
33 | - * Core data for this object. Name value pairs (name + default value). |
|
34 | - * |
|
35 | - * @since 1.0.19 |
|
36 | - * @var array |
|
37 | - */ |
|
38 | - protected $data = array(); |
|
39 | - |
|
40 | - /** |
|
41 | - * Core data changes for this object. |
|
42 | - * |
|
43 | - * @since 1.0.19 |
|
44 | - * @var array |
|
45 | - */ |
|
46 | - protected $changes = array(); |
|
47 | - |
|
48 | - /** |
|
49 | - * This is false until the object is read from the DB. |
|
50 | - * |
|
51 | - * @since 1.0.19 |
|
52 | - * @var bool |
|
53 | - */ |
|
54 | - protected $object_read = false; |
|
55 | - |
|
56 | - /** |
|
57 | - * This is the name of this object type. |
|
58 | - * |
|
59 | - * @since 1.0.19 |
|
60 | - * @var string |
|
61 | - */ |
|
62 | - protected $object_type = 'data'; |
|
63 | - |
|
64 | - /** |
|
65 | - * Extra data for this object. Name value pairs (name + default value). |
|
66 | - * Used as a standard way for sub classes (like item types) to add |
|
67 | - * additional information to an inherited class. |
|
68 | - * |
|
69 | - * @since 1.0.19 |
|
70 | - * @var array |
|
71 | - */ |
|
72 | - protected $extra_data = array(); |
|
73 | - |
|
74 | - /** |
|
75 | - * Set to _data on construct so we can track and reset data if needed. |
|
76 | - * |
|
77 | - * @since 1.0.19 |
|
78 | - * @var array |
|
79 | - */ |
|
80 | - protected $default_data = array(); |
|
81 | - |
|
82 | - /** |
|
83 | - * Contains a reference to the data store for this class. |
|
84 | - * |
|
85 | - * @since 1.0.19 |
|
86 | - * @var GetPaid_Data_Store |
|
87 | - */ |
|
88 | - protected $data_store; |
|
89 | - |
|
90 | - /** |
|
91 | - * Stores meta in cache for future reads. |
|
92 | - * A group must be set to to enable caching. |
|
93 | - * |
|
94 | - * @since 1.0.19 |
|
95 | - * @var string |
|
96 | - */ |
|
97 | - protected $cache_group = ''; |
|
98 | - |
|
99 | - /** |
|
100 | - * Stores the last error. |
|
101 | - * |
|
102 | - * @since 1.0.19 |
|
103 | - * @var string |
|
104 | - */ |
|
105 | - public $last_error = ''; |
|
106 | - |
|
107 | - /** |
|
108 | - * Stores additional meta data. |
|
109 | - * |
|
110 | - * @since 1.0.19 |
|
111 | - * @var array |
|
112 | - */ |
|
113 | - protected $meta_data = null; |
|
114 | - |
|
115 | - /** |
|
116 | - * Default constructor. |
|
117 | - * |
|
118 | - * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
|
119 | - */ |
|
120 | - public function __construct( $read = 0 ) { |
|
121 | - $this->data = array_merge( $this->data, $this->extra_data ); |
|
122 | - $this->default_data = $this->data; |
|
123 | - } |
|
124 | - |
|
125 | - /** |
|
126 | - * Only store the object ID to avoid serializing the data object instance. |
|
127 | - * |
|
128 | - * @return array |
|
129 | - */ |
|
130 | - public function __sleep() { |
|
131 | - return array( 'id' ); |
|
132 | - } |
|
133 | - |
|
134 | - /** |
|
135 | - * Re-run the constructor with the object ID. |
|
136 | - * |
|
137 | - * If the object no longer exists, remove the ID. |
|
138 | - */ |
|
139 | - public function __wakeup() { |
|
140 | - $this->__construct( absint( $this->id ) ); |
|
141 | - |
|
142 | - if ( ! empty( $this->last_error ) ) { |
|
143 | - $this->set_id( 0 ); |
|
144 | - } |
|
145 | - |
|
146 | - } |
|
147 | - |
|
148 | - /** |
|
149 | - * When the object is cloned, make sure meta is duplicated correctly. |
|
150 | - * |
|
151 | - * @since 1.0.19 |
|
152 | - */ |
|
153 | - public function __clone() { |
|
154 | - $this->maybe_read_meta_data(); |
|
155 | - if ( ! empty( $this->meta_data ) ) { |
|
156 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | - $this->meta_data[ $array_key ] = clone $meta; |
|
158 | - if ( ! empty( $meta->id ) ) { |
|
159 | - $this->meta_data[ $array_key ]->id = null; |
|
160 | - } |
|
161 | - } |
|
162 | - } |
|
163 | - } |
|
164 | - |
|
165 | - /** |
|
166 | - * Get the data store. |
|
167 | - * |
|
168 | - * @since 1.0.19 |
|
169 | - * @return object |
|
170 | - */ |
|
171 | - public function get_data_store() { |
|
172 | - return $this->data_store; |
|
173 | - } |
|
174 | - |
|
175 | - /** |
|
176 | - * Get the object type. |
|
177 | - * |
|
178 | - * @since 1.0.19 |
|
179 | - * @return string |
|
180 | - */ |
|
181 | - public function get_object_type() { |
|
182 | - return $this->object_type; |
|
183 | - } |
|
184 | - |
|
185 | - /** |
|
186 | - * Returns the unique ID for this object. |
|
187 | - * |
|
188 | - * @since 1.0.19 |
|
189 | - * @return int |
|
190 | - */ |
|
191 | - public function get_id() { |
|
192 | - return $this->id; |
|
193 | - } |
|
194 | - |
|
195 | - /** |
|
196 | - * Get form status. |
|
197 | - * |
|
198 | - * @since 1.0.19 |
|
199 | - * @param string $context View or edit context. |
|
200 | - * @return string |
|
201 | - */ |
|
202 | - public function get_status( $context = 'view' ) { |
|
203 | - return $this->get_prop( 'status', $context ); |
|
204 | - } |
|
205 | - |
|
206 | - /** |
|
207 | - * Delete an object, set the ID to 0, and return result. |
|
208 | - * |
|
209 | - * @since 1.0.19 |
|
210 | - * @param bool $force_delete Should the data be deleted permanently. |
|
211 | - * @return bool result |
|
212 | - */ |
|
213 | - public function delete( $force_delete = false ) { |
|
214 | - if ( $this->data_store && $this->exists() ) { |
|
215 | - $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | - $this->set_id( 0 ); |
|
217 | - return true; |
|
218 | - } |
|
219 | - return false; |
|
220 | - } |
|
221 | - |
|
222 | - /** |
|
223 | - * Save should create or update based on object existence. |
|
224 | - * |
|
225 | - * @since 1.0.19 |
|
226 | - * @return int |
|
227 | - */ |
|
228 | - public function save() { |
|
229 | - if ( ! $this->data_store ) { |
|
230 | - return $this->get_id(); |
|
231 | - } |
|
232 | - |
|
233 | - /** |
|
234 | - * Trigger action before saving to the DB. Allows you to adjust object props before save. |
|
235 | - * |
|
236 | - * @param GetPaid_Data $this The object being saved. |
|
237 | - * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
238 | - */ |
|
239 | - do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
240 | - |
|
241 | - if ( $this->get_id() ) { |
|
242 | - $this->data_store->update( $this ); |
|
243 | - } else { |
|
244 | - $this->data_store->create( $this ); |
|
245 | - } |
|
246 | - |
|
247 | - /** |
|
248 | - * Trigger action after saving to the DB. |
|
249 | - * |
|
250 | - * @param GetPaid_Data $this The object being saved. |
|
251 | - * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
252 | - */ |
|
253 | - do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
254 | - |
|
255 | - return $this->get_id(); |
|
256 | - } |
|
257 | - |
|
258 | - /** |
|
259 | - * Change data to JSON format. |
|
260 | - * |
|
261 | - * @since 1.0.19 |
|
262 | - * @return string Data in JSON format. |
|
263 | - */ |
|
264 | - public function __toString() { |
|
265 | - return wp_json_encode( $this->get_data() ); |
|
266 | - } |
|
267 | - |
|
268 | - /** |
|
269 | - * Returns all data for this object. |
|
270 | - * |
|
271 | - * @since 1.0.19 |
|
272 | - * @return array |
|
273 | - */ |
|
274 | - public function get_data() { |
|
275 | - return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
276 | - } |
|
277 | - |
|
278 | - /** |
|
279 | - * Returns array of expected data keys for this object. |
|
280 | - * |
|
281 | - * @since 1.0.19 |
|
282 | - * @return array |
|
283 | - */ |
|
284 | - public function get_data_keys() { |
|
285 | - return array_keys( $this->data ); |
|
286 | - } |
|
287 | - |
|
288 | - /** |
|
289 | - * Returns all "extra" data keys for an object (for sub objects like item types). |
|
290 | - * |
|
291 | - * @since 1.0.19 |
|
292 | - * @return array |
|
293 | - */ |
|
294 | - public function get_extra_data_keys() { |
|
295 | - return array_keys( $this->extra_data ); |
|
296 | - } |
|
297 | - |
|
298 | - /** |
|
299 | - * Filter null meta values from array. |
|
300 | - * |
|
301 | - * @since 1.0.19 |
|
302 | - * @param mixed $meta Meta value to check. |
|
303 | - * @return bool |
|
304 | - */ |
|
305 | - protected function filter_null_meta( $meta ) { |
|
306 | - return ! is_null( $meta->value ); |
|
307 | - } |
|
308 | - |
|
309 | - /** |
|
310 | - * Get All Meta Data. |
|
311 | - * |
|
312 | - * @since 1.0.19 |
|
313 | - * @return array of objects. |
|
314 | - */ |
|
315 | - public function get_meta_data() { |
|
316 | - $this->maybe_read_meta_data(); |
|
317 | - return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
318 | - } |
|
319 | - |
|
320 | - /** |
|
321 | - * Check if the key is an internal one. |
|
322 | - * |
|
323 | - * @since 1.0.19 |
|
324 | - * @param string $key Key to check. |
|
325 | - * @return bool true if it's an internal key, false otherwise |
|
326 | - */ |
|
327 | - protected function is_internal_meta_key( $key ) { |
|
328 | - $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
329 | - |
|
330 | - if ( ! $internal_meta_key ) { |
|
331 | - return false; |
|
332 | - } |
|
333 | - |
|
334 | - $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
335 | - |
|
336 | - if ( ! $has_setter_or_getter ) { |
|
337 | - return false; |
|
338 | - } |
|
339 | - |
|
340 | - /* translators: %s: $key Key to check */ |
|
341 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
342 | - |
|
343 | - return true; |
|
344 | - } |
|
345 | - |
|
346 | - /** |
|
347 | - * Magic method for setting data fields. |
|
348 | - * |
|
349 | - * This method does not update custom fields in the database. |
|
350 | - * |
|
351 | - * @since 1.0.19 |
|
352 | - * @access public |
|
353 | - * |
|
354 | - */ |
|
355 | - public function __set( $key, $value ) { |
|
356 | - |
|
357 | - if ( 'id' == strtolower( $key ) ) { |
|
358 | - return $this->set_id( $value ); |
|
359 | - } |
|
360 | - |
|
361 | - if ( method_exists( $this, "set_$key") ) { |
|
362 | - |
|
363 | - /* translators: %s: $key Key to set */ |
|
364 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
365 | - |
|
366 | - call_user_func( array( $this, "set_$key" ), $value ); |
|
367 | - } else { |
|
368 | - $this->set_prop( $key, $value ); |
|
369 | - } |
|
370 | - |
|
371 | - } |
|
372 | - |
|
373 | - /** |
|
24 | + /** |
|
25 | + * ID for this object. |
|
26 | + * |
|
27 | + * @since 1.0.19 |
|
28 | + * @var int |
|
29 | + */ |
|
30 | + protected $id = 0; |
|
31 | + |
|
32 | + /** |
|
33 | + * Core data for this object. Name value pairs (name + default value). |
|
34 | + * |
|
35 | + * @since 1.0.19 |
|
36 | + * @var array |
|
37 | + */ |
|
38 | + protected $data = array(); |
|
39 | + |
|
40 | + /** |
|
41 | + * Core data changes for this object. |
|
42 | + * |
|
43 | + * @since 1.0.19 |
|
44 | + * @var array |
|
45 | + */ |
|
46 | + protected $changes = array(); |
|
47 | + |
|
48 | + /** |
|
49 | + * This is false until the object is read from the DB. |
|
50 | + * |
|
51 | + * @since 1.0.19 |
|
52 | + * @var bool |
|
53 | + */ |
|
54 | + protected $object_read = false; |
|
55 | + |
|
56 | + /** |
|
57 | + * This is the name of this object type. |
|
58 | + * |
|
59 | + * @since 1.0.19 |
|
60 | + * @var string |
|
61 | + */ |
|
62 | + protected $object_type = 'data'; |
|
63 | + |
|
64 | + /** |
|
65 | + * Extra data for this object. Name value pairs (name + default value). |
|
66 | + * Used as a standard way for sub classes (like item types) to add |
|
67 | + * additional information to an inherited class. |
|
68 | + * |
|
69 | + * @since 1.0.19 |
|
70 | + * @var array |
|
71 | + */ |
|
72 | + protected $extra_data = array(); |
|
73 | + |
|
74 | + /** |
|
75 | + * Set to _data on construct so we can track and reset data if needed. |
|
76 | + * |
|
77 | + * @since 1.0.19 |
|
78 | + * @var array |
|
79 | + */ |
|
80 | + protected $default_data = array(); |
|
81 | + |
|
82 | + /** |
|
83 | + * Contains a reference to the data store for this class. |
|
84 | + * |
|
85 | + * @since 1.0.19 |
|
86 | + * @var GetPaid_Data_Store |
|
87 | + */ |
|
88 | + protected $data_store; |
|
89 | + |
|
90 | + /** |
|
91 | + * Stores meta in cache for future reads. |
|
92 | + * A group must be set to to enable caching. |
|
93 | + * |
|
94 | + * @since 1.0.19 |
|
95 | + * @var string |
|
96 | + */ |
|
97 | + protected $cache_group = ''; |
|
98 | + |
|
99 | + /** |
|
100 | + * Stores the last error. |
|
101 | + * |
|
102 | + * @since 1.0.19 |
|
103 | + * @var string |
|
104 | + */ |
|
105 | + public $last_error = ''; |
|
106 | + |
|
107 | + /** |
|
108 | + * Stores additional meta data. |
|
109 | + * |
|
110 | + * @since 1.0.19 |
|
111 | + * @var array |
|
112 | + */ |
|
113 | + protected $meta_data = null; |
|
114 | + |
|
115 | + /** |
|
116 | + * Default constructor. |
|
117 | + * |
|
118 | + * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
|
119 | + */ |
|
120 | + public function __construct( $read = 0 ) { |
|
121 | + $this->data = array_merge( $this->data, $this->extra_data ); |
|
122 | + $this->default_data = $this->data; |
|
123 | + } |
|
124 | + |
|
125 | + /** |
|
126 | + * Only store the object ID to avoid serializing the data object instance. |
|
127 | + * |
|
128 | + * @return array |
|
129 | + */ |
|
130 | + public function __sleep() { |
|
131 | + return array( 'id' ); |
|
132 | + } |
|
133 | + |
|
134 | + /** |
|
135 | + * Re-run the constructor with the object ID. |
|
136 | + * |
|
137 | + * If the object no longer exists, remove the ID. |
|
138 | + */ |
|
139 | + public function __wakeup() { |
|
140 | + $this->__construct( absint( $this->id ) ); |
|
141 | + |
|
142 | + if ( ! empty( $this->last_error ) ) { |
|
143 | + $this->set_id( 0 ); |
|
144 | + } |
|
145 | + |
|
146 | + } |
|
147 | + |
|
148 | + /** |
|
149 | + * When the object is cloned, make sure meta is duplicated correctly. |
|
150 | + * |
|
151 | + * @since 1.0.19 |
|
152 | + */ |
|
153 | + public function __clone() { |
|
154 | + $this->maybe_read_meta_data(); |
|
155 | + if ( ! empty( $this->meta_data ) ) { |
|
156 | + foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | + $this->meta_data[ $array_key ] = clone $meta; |
|
158 | + if ( ! empty( $meta->id ) ) { |
|
159 | + $this->meta_data[ $array_key ]->id = null; |
|
160 | + } |
|
161 | + } |
|
162 | + } |
|
163 | + } |
|
164 | + |
|
165 | + /** |
|
166 | + * Get the data store. |
|
167 | + * |
|
168 | + * @since 1.0.19 |
|
169 | + * @return object |
|
170 | + */ |
|
171 | + public function get_data_store() { |
|
172 | + return $this->data_store; |
|
173 | + } |
|
174 | + |
|
175 | + /** |
|
176 | + * Get the object type. |
|
177 | + * |
|
178 | + * @since 1.0.19 |
|
179 | + * @return string |
|
180 | + */ |
|
181 | + public function get_object_type() { |
|
182 | + return $this->object_type; |
|
183 | + } |
|
184 | + |
|
185 | + /** |
|
186 | + * Returns the unique ID for this object. |
|
187 | + * |
|
188 | + * @since 1.0.19 |
|
189 | + * @return int |
|
190 | + */ |
|
191 | + public function get_id() { |
|
192 | + return $this->id; |
|
193 | + } |
|
194 | + |
|
195 | + /** |
|
196 | + * Get form status. |
|
197 | + * |
|
198 | + * @since 1.0.19 |
|
199 | + * @param string $context View or edit context. |
|
200 | + * @return string |
|
201 | + */ |
|
202 | + public function get_status( $context = 'view' ) { |
|
203 | + return $this->get_prop( 'status', $context ); |
|
204 | + } |
|
205 | + |
|
206 | + /** |
|
207 | + * Delete an object, set the ID to 0, and return result. |
|
208 | + * |
|
209 | + * @since 1.0.19 |
|
210 | + * @param bool $force_delete Should the data be deleted permanently. |
|
211 | + * @return bool result |
|
212 | + */ |
|
213 | + public function delete( $force_delete = false ) { |
|
214 | + if ( $this->data_store && $this->exists() ) { |
|
215 | + $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | + $this->set_id( 0 ); |
|
217 | + return true; |
|
218 | + } |
|
219 | + return false; |
|
220 | + } |
|
221 | + |
|
222 | + /** |
|
223 | + * Save should create or update based on object existence. |
|
224 | + * |
|
225 | + * @since 1.0.19 |
|
226 | + * @return int |
|
227 | + */ |
|
228 | + public function save() { |
|
229 | + if ( ! $this->data_store ) { |
|
230 | + return $this->get_id(); |
|
231 | + } |
|
232 | + |
|
233 | + /** |
|
234 | + * Trigger action before saving to the DB. Allows you to adjust object props before save. |
|
235 | + * |
|
236 | + * @param GetPaid_Data $this The object being saved. |
|
237 | + * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
238 | + */ |
|
239 | + do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
240 | + |
|
241 | + if ( $this->get_id() ) { |
|
242 | + $this->data_store->update( $this ); |
|
243 | + } else { |
|
244 | + $this->data_store->create( $this ); |
|
245 | + } |
|
246 | + |
|
247 | + /** |
|
248 | + * Trigger action after saving to the DB. |
|
249 | + * |
|
250 | + * @param GetPaid_Data $this The object being saved. |
|
251 | + * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
252 | + */ |
|
253 | + do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
254 | + |
|
255 | + return $this->get_id(); |
|
256 | + } |
|
257 | + |
|
258 | + /** |
|
259 | + * Change data to JSON format. |
|
260 | + * |
|
261 | + * @since 1.0.19 |
|
262 | + * @return string Data in JSON format. |
|
263 | + */ |
|
264 | + public function __toString() { |
|
265 | + return wp_json_encode( $this->get_data() ); |
|
266 | + } |
|
267 | + |
|
268 | + /** |
|
269 | + * Returns all data for this object. |
|
270 | + * |
|
271 | + * @since 1.0.19 |
|
272 | + * @return array |
|
273 | + */ |
|
274 | + public function get_data() { |
|
275 | + return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
276 | + } |
|
277 | + |
|
278 | + /** |
|
279 | + * Returns array of expected data keys for this object. |
|
280 | + * |
|
281 | + * @since 1.0.19 |
|
282 | + * @return array |
|
283 | + */ |
|
284 | + public function get_data_keys() { |
|
285 | + return array_keys( $this->data ); |
|
286 | + } |
|
287 | + |
|
288 | + /** |
|
289 | + * Returns all "extra" data keys for an object (for sub objects like item types). |
|
290 | + * |
|
291 | + * @since 1.0.19 |
|
292 | + * @return array |
|
293 | + */ |
|
294 | + public function get_extra_data_keys() { |
|
295 | + return array_keys( $this->extra_data ); |
|
296 | + } |
|
297 | + |
|
298 | + /** |
|
299 | + * Filter null meta values from array. |
|
300 | + * |
|
301 | + * @since 1.0.19 |
|
302 | + * @param mixed $meta Meta value to check. |
|
303 | + * @return bool |
|
304 | + */ |
|
305 | + protected function filter_null_meta( $meta ) { |
|
306 | + return ! is_null( $meta->value ); |
|
307 | + } |
|
308 | + |
|
309 | + /** |
|
310 | + * Get All Meta Data. |
|
311 | + * |
|
312 | + * @since 1.0.19 |
|
313 | + * @return array of objects. |
|
314 | + */ |
|
315 | + public function get_meta_data() { |
|
316 | + $this->maybe_read_meta_data(); |
|
317 | + return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
318 | + } |
|
319 | + |
|
320 | + /** |
|
321 | + * Check if the key is an internal one. |
|
322 | + * |
|
323 | + * @since 1.0.19 |
|
324 | + * @param string $key Key to check. |
|
325 | + * @return bool true if it's an internal key, false otherwise |
|
326 | + */ |
|
327 | + protected function is_internal_meta_key( $key ) { |
|
328 | + $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
329 | + |
|
330 | + if ( ! $internal_meta_key ) { |
|
331 | + return false; |
|
332 | + } |
|
333 | + |
|
334 | + $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
335 | + |
|
336 | + if ( ! $has_setter_or_getter ) { |
|
337 | + return false; |
|
338 | + } |
|
339 | + |
|
340 | + /* translators: %s: $key Key to check */ |
|
341 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
342 | + |
|
343 | + return true; |
|
344 | + } |
|
345 | + |
|
346 | + /** |
|
347 | + * Magic method for setting data fields. |
|
348 | + * |
|
349 | + * This method does not update custom fields in the database. |
|
350 | + * |
|
351 | + * @since 1.0.19 |
|
352 | + * @access public |
|
353 | + * |
|
354 | + */ |
|
355 | + public function __set( $key, $value ) { |
|
356 | + |
|
357 | + if ( 'id' == strtolower( $key ) ) { |
|
358 | + return $this->set_id( $value ); |
|
359 | + } |
|
360 | + |
|
361 | + if ( method_exists( $this, "set_$key") ) { |
|
362 | + |
|
363 | + /* translators: %s: $key Key to set */ |
|
364 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
365 | + |
|
366 | + call_user_func( array( $this, "set_$key" ), $value ); |
|
367 | + } else { |
|
368 | + $this->set_prop( $key, $value ); |
|
369 | + } |
|
370 | + |
|
371 | + } |
|
372 | + |
|
373 | + /** |
|
374 | 374 | * Margic method for retrieving a property. |
375 | 375 | */ |
376 | 376 | public function __get( $key ) { |
@@ -378,10 +378,10 @@ discard block |
||
378 | 378 | // Check if we have a helper method for that. |
379 | 379 | if ( method_exists( $this, 'get_' . $key ) ) { |
380 | 380 | |
381 | - if ( 'post_type' != $key ) { |
|
382 | - /* translators: %s: $key Key to set */ |
|
383 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
384 | - } |
|
381 | + if ( 'post_type' != $key ) { |
|
382 | + /* translators: %s: $key Key to set */ |
|
383 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
384 | + } |
|
385 | 385 | |
386 | 386 | return call_user_func( array( $this, 'get_' . $key ) ); |
387 | 387 | } |
@@ -391,515 +391,515 @@ discard block |
||
391 | 391 | return $this->post->$key; |
392 | 392 | } |
393 | 393 | |
394 | - return $this->get_prop( $key ); |
|
395 | - |
|
396 | - } |
|
397 | - |
|
398 | - /** |
|
399 | - * Get Meta Data by Key. |
|
400 | - * |
|
401 | - * @since 1.0.19 |
|
402 | - * @param string $key Meta Key. |
|
403 | - * @param bool $single return first found meta with key, or all with $key. |
|
404 | - * @param string $context What the value is for. Valid values are view and edit. |
|
405 | - * @return mixed |
|
406 | - */ |
|
407 | - public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
408 | - |
|
409 | - // Check if this is an internal meta key. |
|
410 | - $_key = str_replace( '_wpinv', '', $key ); |
|
411 | - $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
413 | - $function = 'get_' . $_key; |
|
414 | - |
|
415 | - if ( is_callable( array( $this, $function ) ) ) { |
|
416 | - return $this->{$function}(); |
|
417 | - } |
|
418 | - } |
|
419 | - |
|
420 | - // Read the meta data if not yet read. |
|
421 | - $this->maybe_read_meta_data(); |
|
422 | - $meta_data = $this->get_meta_data(); |
|
423 | - $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
424 | - $value = $single ? '' : array(); |
|
425 | - |
|
426 | - if ( ! empty( $array_keys ) ) { |
|
427 | - // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
|
428 | - if ( $single ) { |
|
429 | - $value = $meta_data[ current( $array_keys ) ]->value; |
|
430 | - } else { |
|
431 | - $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
432 | - } |
|
433 | - } |
|
434 | - |
|
435 | - if ( 'view' === $context ) { |
|
436 | - $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
437 | - } |
|
438 | - |
|
439 | - return $value; |
|
440 | - } |
|
441 | - |
|
442 | - /** |
|
443 | - * See if meta data exists, since get_meta always returns a '' or array(). |
|
444 | - * |
|
445 | - * @since 1.0.19 |
|
446 | - * @param string $key Meta Key. |
|
447 | - * @return boolean |
|
448 | - */ |
|
449 | - public function meta_exists( $key = '' ) { |
|
450 | - $this->maybe_read_meta_data(); |
|
451 | - $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | - return in_array( $key, $array_keys, true ); |
|
453 | - } |
|
454 | - |
|
455 | - /** |
|
456 | - * Set all meta data from array. |
|
457 | - * |
|
458 | - * @since 1.0.19 |
|
459 | - * @param array $data Key/Value pairs. |
|
460 | - */ |
|
461 | - public function set_meta_data( $data ) { |
|
462 | - if ( ! empty( $data ) && is_array( $data ) ) { |
|
463 | - $this->maybe_read_meta_data(); |
|
464 | - foreach ( $data as $meta ) { |
|
465 | - $meta = (array) $meta; |
|
466 | - if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
467 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
468 | - array( |
|
469 | - 'id' => $meta['id'], |
|
470 | - 'key' => $meta['key'], |
|
471 | - 'value' => $meta['value'], |
|
472 | - ) |
|
473 | - ); |
|
474 | - } |
|
475 | - } |
|
476 | - } |
|
477 | - } |
|
478 | - |
|
479 | - /** |
|
480 | - * Add meta data. |
|
481 | - * |
|
482 | - * @since 1.0.19 |
|
483 | - * |
|
484 | - * @param string $key Meta key. |
|
485 | - * @param string|array $value Meta value. |
|
486 | - * @param bool $unique Should this be a unique key?. |
|
487 | - */ |
|
488 | - public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
490 | - $function = 'set_' . $key; |
|
491 | - |
|
492 | - if ( is_callable( array( $this, $function ) ) ) { |
|
493 | - return $this->{$function}( $value ); |
|
494 | - } |
|
495 | - } |
|
496 | - |
|
497 | - $this->maybe_read_meta_data(); |
|
498 | - if ( $unique ) { |
|
499 | - $this->delete_meta_data( $key ); |
|
500 | - } |
|
501 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
502 | - array( |
|
503 | - 'key' => $key, |
|
504 | - 'value' => $value, |
|
505 | - ) |
|
506 | - ); |
|
507 | - |
|
508 | - $this->save(); |
|
509 | - } |
|
510 | - |
|
511 | - /** |
|
512 | - * Update meta data by key or ID, if provided. |
|
513 | - * |
|
514 | - * @since 1.0.19 |
|
515 | - * |
|
516 | - * @param string $key Meta key. |
|
517 | - * @param string|array $value Meta value. |
|
518 | - * @param int $meta_id Meta ID. |
|
519 | - */ |
|
520 | - public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
522 | - $function = 'set_' . $key; |
|
523 | - |
|
524 | - if ( is_callable( array( $this, $function ) ) ) { |
|
525 | - return $this->{$function}( $value ); |
|
526 | - } |
|
527 | - } |
|
528 | - |
|
529 | - $this->maybe_read_meta_data(); |
|
530 | - |
|
531 | - $array_key = false; |
|
532 | - |
|
533 | - if ( $meta_id ) { |
|
534 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | - $array_key = $array_keys ? current( $array_keys ) : false; |
|
536 | - } else { |
|
537 | - // Find matches by key. |
|
538 | - $matches = array(); |
|
539 | - foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | - if ( $meta->key === $key ) { |
|
541 | - $matches[] = $meta_data_array_key; |
|
542 | - } |
|
543 | - } |
|
544 | - |
|
545 | - if ( ! empty( $matches ) ) { |
|
546 | - // Set matches to null so only one key gets the new value. |
|
547 | - foreach ( $matches as $meta_data_array_key ) { |
|
548 | - $this->meta_data[ $meta_data_array_key ]->value = null; |
|
549 | - } |
|
550 | - $array_key = current( $matches ); |
|
551 | - } |
|
552 | - } |
|
553 | - |
|
554 | - if ( false !== $array_key ) { |
|
555 | - $meta = $this->meta_data[ $array_key ]; |
|
556 | - $meta->key = $key; |
|
557 | - $meta->value = $value; |
|
558 | - } else { |
|
559 | - $this->add_meta_data( $key, $value, true ); |
|
560 | - } |
|
561 | - } |
|
562 | - |
|
563 | - /** |
|
564 | - * Delete meta data. |
|
565 | - * |
|
566 | - * @since 1.0.19 |
|
567 | - * @param string $key Meta key. |
|
568 | - */ |
|
569 | - public function delete_meta_data( $key ) { |
|
570 | - $this->maybe_read_meta_data(); |
|
571 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
572 | - |
|
573 | - if ( $array_keys ) { |
|
574 | - foreach ( $array_keys as $array_key ) { |
|
575 | - $this->meta_data[ $array_key ]->value = null; |
|
576 | - } |
|
577 | - } |
|
578 | - } |
|
579 | - |
|
580 | - /** |
|
581 | - * Delete meta data. |
|
582 | - * |
|
583 | - * @since 1.0.19 |
|
584 | - * @param int $mid Meta ID. |
|
585 | - */ |
|
586 | - public function delete_meta_data_by_mid( $mid ) { |
|
587 | - $this->maybe_read_meta_data(); |
|
588 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
589 | - |
|
590 | - if ( $array_keys ) { |
|
591 | - foreach ( $array_keys as $array_key ) { |
|
592 | - $this->meta_data[ $array_key ]->value = null; |
|
593 | - } |
|
594 | - } |
|
595 | - } |
|
596 | - |
|
597 | - /** |
|
598 | - * Read meta data if null. |
|
599 | - * |
|
600 | - * @since 1.0.19 |
|
601 | - */ |
|
602 | - protected function maybe_read_meta_data() { |
|
603 | - if ( is_null( $this->meta_data ) ) { |
|
604 | - $this->read_meta_data(); |
|
605 | - } |
|
606 | - } |
|
607 | - |
|
608 | - /** |
|
609 | - * Read Meta Data from the database. Ignore any internal properties. |
|
610 | - * Uses it's own caches because get_metadata does not provide meta_ids. |
|
611 | - * |
|
612 | - * @since 1.0.19 |
|
613 | - * @param bool $force_read True to force a new DB read (and update cache). |
|
614 | - */ |
|
615 | - public function read_meta_data( $force_read = false ) { |
|
616 | - |
|
617 | - // Reset meta data. |
|
618 | - $this->meta_data = array(); |
|
619 | - |
|
620 | - // Maybe abort early. |
|
621 | - if ( ! $this->get_id() || ! $this->data_store ) { |
|
622 | - return; |
|
623 | - } |
|
624 | - |
|
625 | - // Only read from cache if the cache key is set. |
|
626 | - $cache_key = null; |
|
627 | - if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | - $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
630 | - } |
|
631 | - |
|
632 | - // Should we force read? |
|
633 | - if ( empty( $raw_meta_data ) ) { |
|
634 | - $raw_meta_data = $this->data_store->read_meta( $this ); |
|
635 | - |
|
636 | - if ( ! empty( $cache_key ) ) { |
|
637 | - wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
638 | - } |
|
639 | - |
|
640 | - } |
|
641 | - |
|
642 | - // Set meta data. |
|
643 | - if ( is_array( $raw_meta_data ) ) { |
|
644 | - |
|
645 | - foreach ( $raw_meta_data as $meta ) { |
|
646 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
647 | - array( |
|
648 | - 'id' => (int) $meta->meta_id, |
|
649 | - 'key' => $meta->meta_key, |
|
650 | - 'value' => maybe_unserialize( $meta->meta_value ), |
|
651 | - ) |
|
652 | - ); |
|
653 | - } |
|
654 | - |
|
655 | - } |
|
656 | - |
|
657 | - } |
|
658 | - |
|
659 | - /** |
|
660 | - * Update Meta Data in the database. |
|
661 | - * |
|
662 | - * @since 1.0.19 |
|
663 | - */ |
|
664 | - public function save_meta_data() { |
|
665 | - if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
666 | - return; |
|
667 | - } |
|
668 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
669 | - if ( is_null( $meta->value ) ) { |
|
670 | - if ( ! empty( $meta->id ) ) { |
|
671 | - $this->data_store->delete_meta( $this, $meta ); |
|
672 | - unset( $this->meta_data[ $array_key ] ); |
|
673 | - } |
|
674 | - } elseif ( empty( $meta->id ) ) { |
|
675 | - $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
676 | - $meta->apply_changes(); |
|
677 | - } else { |
|
678 | - if ( $meta->get_changes() ) { |
|
679 | - $this->data_store->update_meta( $this, $meta ); |
|
680 | - $meta->apply_changes(); |
|
681 | - } |
|
682 | - } |
|
683 | - } |
|
684 | - if ( ! empty( $this->cache_group ) ) { |
|
685 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
686 | - wp_cache_delete( $cache_key, $this->cache_group ); |
|
687 | - } |
|
688 | - } |
|
689 | - |
|
690 | - /** |
|
691 | - * Set ID. |
|
692 | - * |
|
693 | - * @since 1.0.19 |
|
694 | - * @param int $id ID. |
|
695 | - */ |
|
696 | - public function set_id( $id ) { |
|
697 | - $this->id = absint( $id ); |
|
698 | - } |
|
699 | - |
|
700 | - /** |
|
701 | - * Sets item status. |
|
702 | - * |
|
703 | - * @since 1.0.19 |
|
704 | - * @param string $status New status. |
|
705 | - * @return array details of change. |
|
706 | - */ |
|
707 | - public function set_status( $status ) { |
|
394 | + return $this->get_prop( $key ); |
|
395 | + |
|
396 | + } |
|
397 | + |
|
398 | + /** |
|
399 | + * Get Meta Data by Key. |
|
400 | + * |
|
401 | + * @since 1.0.19 |
|
402 | + * @param string $key Meta Key. |
|
403 | + * @param bool $single return first found meta with key, or all with $key. |
|
404 | + * @param string $context What the value is for. Valid values are view and edit. |
|
405 | + * @return mixed |
|
406 | + */ |
|
407 | + public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
408 | + |
|
409 | + // Check if this is an internal meta key. |
|
410 | + $_key = str_replace( '_wpinv', '', $key ); |
|
411 | + $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
413 | + $function = 'get_' . $_key; |
|
414 | + |
|
415 | + if ( is_callable( array( $this, $function ) ) ) { |
|
416 | + return $this->{$function}(); |
|
417 | + } |
|
418 | + } |
|
419 | + |
|
420 | + // Read the meta data if not yet read. |
|
421 | + $this->maybe_read_meta_data(); |
|
422 | + $meta_data = $this->get_meta_data(); |
|
423 | + $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
424 | + $value = $single ? '' : array(); |
|
425 | + |
|
426 | + if ( ! empty( $array_keys ) ) { |
|
427 | + // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
|
428 | + if ( $single ) { |
|
429 | + $value = $meta_data[ current( $array_keys ) ]->value; |
|
430 | + } else { |
|
431 | + $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
432 | + } |
|
433 | + } |
|
434 | + |
|
435 | + if ( 'view' === $context ) { |
|
436 | + $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
437 | + } |
|
438 | + |
|
439 | + return $value; |
|
440 | + } |
|
441 | + |
|
442 | + /** |
|
443 | + * See if meta data exists, since get_meta always returns a '' or array(). |
|
444 | + * |
|
445 | + * @since 1.0.19 |
|
446 | + * @param string $key Meta Key. |
|
447 | + * @return boolean |
|
448 | + */ |
|
449 | + public function meta_exists( $key = '' ) { |
|
450 | + $this->maybe_read_meta_data(); |
|
451 | + $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | + return in_array( $key, $array_keys, true ); |
|
453 | + } |
|
454 | + |
|
455 | + /** |
|
456 | + * Set all meta data from array. |
|
457 | + * |
|
458 | + * @since 1.0.19 |
|
459 | + * @param array $data Key/Value pairs. |
|
460 | + */ |
|
461 | + public function set_meta_data( $data ) { |
|
462 | + if ( ! empty( $data ) && is_array( $data ) ) { |
|
463 | + $this->maybe_read_meta_data(); |
|
464 | + foreach ( $data as $meta ) { |
|
465 | + $meta = (array) $meta; |
|
466 | + if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
467 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
468 | + array( |
|
469 | + 'id' => $meta['id'], |
|
470 | + 'key' => $meta['key'], |
|
471 | + 'value' => $meta['value'], |
|
472 | + ) |
|
473 | + ); |
|
474 | + } |
|
475 | + } |
|
476 | + } |
|
477 | + } |
|
478 | + |
|
479 | + /** |
|
480 | + * Add meta data. |
|
481 | + * |
|
482 | + * @since 1.0.19 |
|
483 | + * |
|
484 | + * @param string $key Meta key. |
|
485 | + * @param string|array $value Meta value. |
|
486 | + * @param bool $unique Should this be a unique key?. |
|
487 | + */ |
|
488 | + public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
490 | + $function = 'set_' . $key; |
|
491 | + |
|
492 | + if ( is_callable( array( $this, $function ) ) ) { |
|
493 | + return $this->{$function}( $value ); |
|
494 | + } |
|
495 | + } |
|
496 | + |
|
497 | + $this->maybe_read_meta_data(); |
|
498 | + if ( $unique ) { |
|
499 | + $this->delete_meta_data( $key ); |
|
500 | + } |
|
501 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
502 | + array( |
|
503 | + 'key' => $key, |
|
504 | + 'value' => $value, |
|
505 | + ) |
|
506 | + ); |
|
507 | + |
|
508 | + $this->save(); |
|
509 | + } |
|
510 | + |
|
511 | + /** |
|
512 | + * Update meta data by key or ID, if provided. |
|
513 | + * |
|
514 | + * @since 1.0.19 |
|
515 | + * |
|
516 | + * @param string $key Meta key. |
|
517 | + * @param string|array $value Meta value. |
|
518 | + * @param int $meta_id Meta ID. |
|
519 | + */ |
|
520 | + public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
522 | + $function = 'set_' . $key; |
|
523 | + |
|
524 | + if ( is_callable( array( $this, $function ) ) ) { |
|
525 | + return $this->{$function}( $value ); |
|
526 | + } |
|
527 | + } |
|
528 | + |
|
529 | + $this->maybe_read_meta_data(); |
|
530 | + |
|
531 | + $array_key = false; |
|
532 | + |
|
533 | + if ( $meta_id ) { |
|
534 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | + $array_key = $array_keys ? current( $array_keys ) : false; |
|
536 | + } else { |
|
537 | + // Find matches by key. |
|
538 | + $matches = array(); |
|
539 | + foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | + if ( $meta->key === $key ) { |
|
541 | + $matches[] = $meta_data_array_key; |
|
542 | + } |
|
543 | + } |
|
544 | + |
|
545 | + if ( ! empty( $matches ) ) { |
|
546 | + // Set matches to null so only one key gets the new value. |
|
547 | + foreach ( $matches as $meta_data_array_key ) { |
|
548 | + $this->meta_data[ $meta_data_array_key ]->value = null; |
|
549 | + } |
|
550 | + $array_key = current( $matches ); |
|
551 | + } |
|
552 | + } |
|
553 | + |
|
554 | + if ( false !== $array_key ) { |
|
555 | + $meta = $this->meta_data[ $array_key ]; |
|
556 | + $meta->key = $key; |
|
557 | + $meta->value = $value; |
|
558 | + } else { |
|
559 | + $this->add_meta_data( $key, $value, true ); |
|
560 | + } |
|
561 | + } |
|
562 | + |
|
563 | + /** |
|
564 | + * Delete meta data. |
|
565 | + * |
|
566 | + * @since 1.0.19 |
|
567 | + * @param string $key Meta key. |
|
568 | + */ |
|
569 | + public function delete_meta_data( $key ) { |
|
570 | + $this->maybe_read_meta_data(); |
|
571 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
572 | + |
|
573 | + if ( $array_keys ) { |
|
574 | + foreach ( $array_keys as $array_key ) { |
|
575 | + $this->meta_data[ $array_key ]->value = null; |
|
576 | + } |
|
577 | + } |
|
578 | + } |
|
579 | + |
|
580 | + /** |
|
581 | + * Delete meta data. |
|
582 | + * |
|
583 | + * @since 1.0.19 |
|
584 | + * @param int $mid Meta ID. |
|
585 | + */ |
|
586 | + public function delete_meta_data_by_mid( $mid ) { |
|
587 | + $this->maybe_read_meta_data(); |
|
588 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
589 | + |
|
590 | + if ( $array_keys ) { |
|
591 | + foreach ( $array_keys as $array_key ) { |
|
592 | + $this->meta_data[ $array_key ]->value = null; |
|
593 | + } |
|
594 | + } |
|
595 | + } |
|
596 | + |
|
597 | + /** |
|
598 | + * Read meta data if null. |
|
599 | + * |
|
600 | + * @since 1.0.19 |
|
601 | + */ |
|
602 | + protected function maybe_read_meta_data() { |
|
603 | + if ( is_null( $this->meta_data ) ) { |
|
604 | + $this->read_meta_data(); |
|
605 | + } |
|
606 | + } |
|
607 | + |
|
608 | + /** |
|
609 | + * Read Meta Data from the database. Ignore any internal properties. |
|
610 | + * Uses it's own caches because get_metadata does not provide meta_ids. |
|
611 | + * |
|
612 | + * @since 1.0.19 |
|
613 | + * @param bool $force_read True to force a new DB read (and update cache). |
|
614 | + */ |
|
615 | + public function read_meta_data( $force_read = false ) { |
|
616 | + |
|
617 | + // Reset meta data. |
|
618 | + $this->meta_data = array(); |
|
619 | + |
|
620 | + // Maybe abort early. |
|
621 | + if ( ! $this->get_id() || ! $this->data_store ) { |
|
622 | + return; |
|
623 | + } |
|
624 | + |
|
625 | + // Only read from cache if the cache key is set. |
|
626 | + $cache_key = null; |
|
627 | + if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | + $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
630 | + } |
|
631 | + |
|
632 | + // Should we force read? |
|
633 | + if ( empty( $raw_meta_data ) ) { |
|
634 | + $raw_meta_data = $this->data_store->read_meta( $this ); |
|
635 | + |
|
636 | + if ( ! empty( $cache_key ) ) { |
|
637 | + wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
638 | + } |
|
639 | + |
|
640 | + } |
|
641 | + |
|
642 | + // Set meta data. |
|
643 | + if ( is_array( $raw_meta_data ) ) { |
|
644 | + |
|
645 | + foreach ( $raw_meta_data as $meta ) { |
|
646 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
647 | + array( |
|
648 | + 'id' => (int) $meta->meta_id, |
|
649 | + 'key' => $meta->meta_key, |
|
650 | + 'value' => maybe_unserialize( $meta->meta_value ), |
|
651 | + ) |
|
652 | + ); |
|
653 | + } |
|
654 | + |
|
655 | + } |
|
656 | + |
|
657 | + } |
|
658 | + |
|
659 | + /** |
|
660 | + * Update Meta Data in the database. |
|
661 | + * |
|
662 | + * @since 1.0.19 |
|
663 | + */ |
|
664 | + public function save_meta_data() { |
|
665 | + if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
666 | + return; |
|
667 | + } |
|
668 | + foreach ( $this->meta_data as $array_key => $meta ) { |
|
669 | + if ( is_null( $meta->value ) ) { |
|
670 | + if ( ! empty( $meta->id ) ) { |
|
671 | + $this->data_store->delete_meta( $this, $meta ); |
|
672 | + unset( $this->meta_data[ $array_key ] ); |
|
673 | + } |
|
674 | + } elseif ( empty( $meta->id ) ) { |
|
675 | + $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
676 | + $meta->apply_changes(); |
|
677 | + } else { |
|
678 | + if ( $meta->get_changes() ) { |
|
679 | + $this->data_store->update_meta( $this, $meta ); |
|
680 | + $meta->apply_changes(); |
|
681 | + } |
|
682 | + } |
|
683 | + } |
|
684 | + if ( ! empty( $this->cache_group ) ) { |
|
685 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
686 | + wp_cache_delete( $cache_key, $this->cache_group ); |
|
687 | + } |
|
688 | + } |
|
689 | + |
|
690 | + /** |
|
691 | + * Set ID. |
|
692 | + * |
|
693 | + * @since 1.0.19 |
|
694 | + * @param int $id ID. |
|
695 | + */ |
|
696 | + public function set_id( $id ) { |
|
697 | + $this->id = absint( $id ); |
|
698 | + } |
|
699 | + |
|
700 | + /** |
|
701 | + * Sets item status. |
|
702 | + * |
|
703 | + * @since 1.0.19 |
|
704 | + * @param string $status New status. |
|
705 | + * @return array details of change. |
|
706 | + */ |
|
707 | + public function set_status( $status ) { |
|
708 | 708 | $old_status = $this->get_status(); |
709 | 709 | |
710 | - $this->set_prop( 'status', $status ); |
|
711 | - |
|
712 | - return array( |
|
713 | - 'from' => $old_status, |
|
714 | - 'to' => $status, |
|
715 | - ); |
|
716 | - } |
|
717 | - |
|
718 | - /** |
|
719 | - * Set all props to default values. |
|
720 | - * |
|
721 | - * @since 1.0.19 |
|
722 | - */ |
|
723 | - public function set_defaults() { |
|
724 | - $this->data = $this->default_data; |
|
725 | - $this->changes = array(); |
|
726 | - $this->set_object_read( false ); |
|
727 | - } |
|
728 | - |
|
729 | - /** |
|
730 | - * Set object read property. |
|
731 | - * |
|
732 | - * @since 1.0.19 |
|
733 | - * @param boolean $read Should read?. |
|
734 | - */ |
|
735 | - public function set_object_read( $read = true ) { |
|
736 | - $this->object_read = (bool) $read; |
|
737 | - } |
|
738 | - |
|
739 | - /** |
|
740 | - * Get object read property. |
|
741 | - * |
|
742 | - * @since 1.0.19 |
|
743 | - * @return boolean |
|
744 | - */ |
|
745 | - public function get_object_read() { |
|
746 | - return (bool) $this->object_read; |
|
747 | - } |
|
748 | - |
|
749 | - /** |
|
750 | - * Set a collection of props in one go, collect any errors, and return the result. |
|
751 | - * Only sets using public methods. |
|
752 | - * |
|
753 | - * @since 1.0.19 |
|
754 | - * |
|
755 | - * @param array $props Key value pairs to set. Key is the prop and should map to a setter function name. |
|
756 | - * @param string $context In what context to run this. |
|
757 | - * |
|
758 | - * @return bool|WP_Error |
|
759 | - */ |
|
760 | - public function set_props( $props, $context = 'set' ) { |
|
761 | - $errors = false; |
|
762 | - |
|
763 | - $props = wp_unslash( $props ); |
|
764 | - foreach ( $props as $prop => $value ) { |
|
765 | - try { |
|
766 | - /** |
|
767 | - * Checks if the prop being set is allowed, and the value is not null. |
|
768 | - */ |
|
769 | - if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
770 | - continue; |
|
771 | - } |
|
772 | - $setter = "set_$prop"; |
|
773 | - |
|
774 | - if ( is_callable( array( $this, $setter ) ) ) { |
|
775 | - $this->{$setter}( $value ); |
|
776 | - } |
|
777 | - } catch ( Exception $e ) { |
|
778 | - if ( ! $errors ) { |
|
779 | - $errors = new WP_Error(); |
|
780 | - } |
|
781 | - $errors->add( $e->getCode(), $e->getMessage() ); |
|
782 | - $this->last_error = $e->getMessage(); |
|
783 | - } |
|
784 | - } |
|
785 | - |
|
786 | - return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
787 | - } |
|
788 | - |
|
789 | - /** |
|
790 | - * Sets a prop for a setter method. |
|
791 | - * |
|
792 | - * This stores changes in a special array so we can track what needs saving |
|
793 | - * the the DB later. |
|
794 | - * |
|
795 | - * @since 1.0.19 |
|
796 | - * @param string $prop Name of prop to set. |
|
797 | - * @param mixed $value Value of the prop. |
|
798 | - */ |
|
799 | - protected function set_prop( $prop, $value ) { |
|
800 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
801 | - if ( true === $this->object_read ) { |
|
802 | - if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
803 | - $this->changes[ $prop ] = $value; |
|
804 | - } |
|
805 | - } else { |
|
806 | - $this->data[ $prop ] = $value; |
|
807 | - } |
|
808 | - } |
|
809 | - } |
|
810 | - |
|
811 | - /** |
|
812 | - * Return data changes only. |
|
813 | - * |
|
814 | - * @since 1.0.19 |
|
815 | - * @return array |
|
816 | - */ |
|
817 | - public function get_changes() { |
|
818 | - return $this->changes; |
|
819 | - } |
|
820 | - |
|
821 | - /** |
|
822 | - * Merge changes with data and clear. |
|
823 | - * |
|
824 | - * @since 1.0.19 |
|
825 | - */ |
|
826 | - public function apply_changes() { |
|
827 | - $this->data = array_replace( $this->data, $this->changes ); |
|
828 | - $this->changes = array(); |
|
829 | - } |
|
830 | - |
|
831 | - /** |
|
832 | - * Prefix for action and filter hooks on data. |
|
833 | - * |
|
834 | - * @since 1.0.19 |
|
835 | - * @return string |
|
836 | - */ |
|
837 | - protected function get_hook_prefix() { |
|
838 | - return 'wpinv_get_' . $this->object_type . '_'; |
|
839 | - } |
|
840 | - |
|
841 | - /** |
|
842 | - * Gets a prop for a getter method. |
|
843 | - * |
|
844 | - * Gets the value from either current pending changes, or the data itself. |
|
845 | - * Context controls what happens to the value before it's returned. |
|
846 | - * |
|
847 | - * @since 1.0.19 |
|
848 | - * @param string $prop Name of prop to get. |
|
849 | - * @param string $context What the value is for. Valid values are view and edit. |
|
850 | - * @return mixed |
|
851 | - */ |
|
852 | - protected function get_prop( $prop, $context = 'view' ) { |
|
853 | - $value = null; |
|
854 | - |
|
855 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
856 | - $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
857 | - |
|
858 | - if ( 'view' === $context ) { |
|
859 | - $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
860 | - } |
|
861 | - } |
|
862 | - |
|
863 | - return $value; |
|
864 | - } |
|
865 | - |
|
866 | - /** |
|
867 | - * Sets a date prop whilst handling formatting and datetime objects. |
|
868 | - * |
|
869 | - * @since 1.0.19 |
|
870 | - * @param string $prop Name of prop to set. |
|
871 | - * @param string|integer $value Value of the prop. |
|
872 | - */ |
|
873 | - protected function set_date_prop( $prop, $value ) { |
|
874 | - |
|
875 | - if ( empty( $value ) ) { |
|
876 | - $this->set_prop( $prop, null ); |
|
877 | - return; |
|
878 | - } |
|
879 | - $this->set_prop( $prop, $value ); |
|
880 | - |
|
881 | - } |
|
882 | - |
|
883 | - /** |
|
884 | - * When invalid data is found, throw an exception unless reading from the DB. |
|
885 | - * |
|
886 | - * @since 1.0.19 |
|
887 | - * @param string $code Error code. |
|
888 | - * @param string $message Error message. |
|
889 | - */ |
|
890 | - protected function error( $code, $message ) { |
|
891 | - $this->last_error = $message; |
|
892 | - } |
|
893 | - |
|
894 | - /** |
|
895 | - * Checks if the object is saved in the database |
|
896 | - * |
|
897 | - * @since 1.0.19 |
|
898 | - * @return bool |
|
899 | - */ |
|
900 | - public function exists() { |
|
901 | - $id = $this->get_id(); |
|
902 | - return ! empty( $id ); |
|
903 | - } |
|
710 | + $this->set_prop( 'status', $status ); |
|
711 | + |
|
712 | + return array( |
|
713 | + 'from' => $old_status, |
|
714 | + 'to' => $status, |
|
715 | + ); |
|
716 | + } |
|
717 | + |
|
718 | + /** |
|
719 | + * Set all props to default values. |
|
720 | + * |
|
721 | + * @since 1.0.19 |
|
722 | + */ |
|
723 | + public function set_defaults() { |
|
724 | + $this->data = $this->default_data; |
|
725 | + $this->changes = array(); |
|
726 | + $this->set_object_read( false ); |
|
727 | + } |
|
728 | + |
|
729 | + /** |
|
730 | + * Set object read property. |
|
731 | + * |
|
732 | + * @since 1.0.19 |
|
733 | + * @param boolean $read Should read?. |
|
734 | + */ |
|
735 | + public function set_object_read( $read = true ) { |
|
736 | + $this->object_read = (bool) $read; |
|
737 | + } |
|
738 | + |
|
739 | + /** |
|
740 | + * Get object read property. |
|
741 | + * |
|
742 | + * @since 1.0.19 |
|
743 | + * @return boolean |
|
744 | + */ |
|
745 | + public function get_object_read() { |
|
746 | + return (bool) $this->object_read; |
|
747 | + } |
|
748 | + |
|
749 | + /** |
|
750 | + * Set a collection of props in one go, collect any errors, and return the result. |
|
751 | + * Only sets using public methods. |
|
752 | + * |
|
753 | + * @since 1.0.19 |
|
754 | + * |
|
755 | + * @param array $props Key value pairs to set. Key is the prop and should map to a setter function name. |
|
756 | + * @param string $context In what context to run this. |
|
757 | + * |
|
758 | + * @return bool|WP_Error |
|
759 | + */ |
|
760 | + public function set_props( $props, $context = 'set' ) { |
|
761 | + $errors = false; |
|
762 | + |
|
763 | + $props = wp_unslash( $props ); |
|
764 | + foreach ( $props as $prop => $value ) { |
|
765 | + try { |
|
766 | + /** |
|
767 | + * Checks if the prop being set is allowed, and the value is not null. |
|
768 | + */ |
|
769 | + if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
770 | + continue; |
|
771 | + } |
|
772 | + $setter = "set_$prop"; |
|
773 | + |
|
774 | + if ( is_callable( array( $this, $setter ) ) ) { |
|
775 | + $this->{$setter}( $value ); |
|
776 | + } |
|
777 | + } catch ( Exception $e ) { |
|
778 | + if ( ! $errors ) { |
|
779 | + $errors = new WP_Error(); |
|
780 | + } |
|
781 | + $errors->add( $e->getCode(), $e->getMessage() ); |
|
782 | + $this->last_error = $e->getMessage(); |
|
783 | + } |
|
784 | + } |
|
785 | + |
|
786 | + return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
787 | + } |
|
788 | + |
|
789 | + /** |
|
790 | + * Sets a prop for a setter method. |
|
791 | + * |
|
792 | + * This stores changes in a special array so we can track what needs saving |
|
793 | + * the the DB later. |
|
794 | + * |
|
795 | + * @since 1.0.19 |
|
796 | + * @param string $prop Name of prop to set. |
|
797 | + * @param mixed $value Value of the prop. |
|
798 | + */ |
|
799 | + protected function set_prop( $prop, $value ) { |
|
800 | + if ( array_key_exists( $prop, $this->data ) ) { |
|
801 | + if ( true === $this->object_read ) { |
|
802 | + if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
803 | + $this->changes[ $prop ] = $value; |
|
804 | + } |
|
805 | + } else { |
|
806 | + $this->data[ $prop ] = $value; |
|
807 | + } |
|
808 | + } |
|
809 | + } |
|
810 | + |
|
811 | + /** |
|
812 | + * Return data changes only. |
|
813 | + * |
|
814 | + * @since 1.0.19 |
|
815 | + * @return array |
|
816 | + */ |
|
817 | + public function get_changes() { |
|
818 | + return $this->changes; |
|
819 | + } |
|
820 | + |
|
821 | + /** |
|
822 | + * Merge changes with data and clear. |
|
823 | + * |
|
824 | + * @since 1.0.19 |
|
825 | + */ |
|
826 | + public function apply_changes() { |
|
827 | + $this->data = array_replace( $this->data, $this->changes ); |
|
828 | + $this->changes = array(); |
|
829 | + } |
|
830 | + |
|
831 | + /** |
|
832 | + * Prefix for action and filter hooks on data. |
|
833 | + * |
|
834 | + * @since 1.0.19 |
|
835 | + * @return string |
|
836 | + */ |
|
837 | + protected function get_hook_prefix() { |
|
838 | + return 'wpinv_get_' . $this->object_type . '_'; |
|
839 | + } |
|
840 | + |
|
841 | + /** |
|
842 | + * Gets a prop for a getter method. |
|
843 | + * |
|
844 | + * Gets the value from either current pending changes, or the data itself. |
|
845 | + * Context controls what happens to the value before it's returned. |
|
846 | + * |
|
847 | + * @since 1.0.19 |
|
848 | + * @param string $prop Name of prop to get. |
|
849 | + * @param string $context What the value is for. Valid values are view and edit. |
|
850 | + * @return mixed |
|
851 | + */ |
|
852 | + protected function get_prop( $prop, $context = 'view' ) { |
|
853 | + $value = null; |
|
854 | + |
|
855 | + if ( array_key_exists( $prop, $this->data ) ) { |
|
856 | + $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
857 | + |
|
858 | + if ( 'view' === $context ) { |
|
859 | + $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
860 | + } |
|
861 | + } |
|
862 | + |
|
863 | + return $value; |
|
864 | + } |
|
865 | + |
|
866 | + /** |
|
867 | + * Sets a date prop whilst handling formatting and datetime objects. |
|
868 | + * |
|
869 | + * @since 1.0.19 |
|
870 | + * @param string $prop Name of prop to set. |
|
871 | + * @param string|integer $value Value of the prop. |
|
872 | + */ |
|
873 | + protected function set_date_prop( $prop, $value ) { |
|
874 | + |
|
875 | + if ( empty( $value ) ) { |
|
876 | + $this->set_prop( $prop, null ); |
|
877 | + return; |
|
878 | + } |
|
879 | + $this->set_prop( $prop, $value ); |
|
880 | + |
|
881 | + } |
|
882 | + |
|
883 | + /** |
|
884 | + * When invalid data is found, throw an exception unless reading from the DB. |
|
885 | + * |
|
886 | + * @since 1.0.19 |
|
887 | + * @param string $code Error code. |
|
888 | + * @param string $message Error message. |
|
889 | + */ |
|
890 | + protected function error( $code, $message ) { |
|
891 | + $this->last_error = $message; |
|
892 | + } |
|
893 | + |
|
894 | + /** |
|
895 | + * Checks if the object is saved in the database |
|
896 | + * |
|
897 | + * @since 1.0.19 |
|
898 | + * @return bool |
|
899 | + */ |
|
900 | + public function exists() { |
|
901 | + $id = $this->get_id(); |
|
902 | + return ! empty( $id ); |
|
903 | + } |
|
904 | 904 | |
905 | 905 | } |
@@ -8,7 +8,7 @@ discard block |
||
8 | 8 | * |
9 | 9 | */ |
10 | 10 | |
11 | -if ( ! defined( 'ABSPATH' ) ) { |
|
11 | +if (!defined('ABSPATH')) { |
|
12 | 12 | exit; |
13 | 13 | } |
14 | 14 | |
@@ -117,8 +117,8 @@ discard block |
||
117 | 117 | * |
118 | 118 | * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
119 | 119 | */ |
120 | - public function __construct( $read = 0 ) { |
|
121 | - $this->data = array_merge( $this->data, $this->extra_data ); |
|
120 | + public function __construct($read = 0) { |
|
121 | + $this->data = array_merge($this->data, $this->extra_data); |
|
122 | 122 | $this->default_data = $this->data; |
123 | 123 | } |
124 | 124 | |
@@ -128,7 +128,7 @@ discard block |
||
128 | 128 | * @return array |
129 | 129 | */ |
130 | 130 | public function __sleep() { |
131 | - return array( 'id' ); |
|
131 | + return array('id'); |
|
132 | 132 | } |
133 | 133 | |
134 | 134 | /** |
@@ -137,10 +137,10 @@ discard block |
||
137 | 137 | * If the object no longer exists, remove the ID. |
138 | 138 | */ |
139 | 139 | public function __wakeup() { |
140 | - $this->__construct( absint( $this->id ) ); |
|
140 | + $this->__construct(absint($this->id)); |
|
141 | 141 | |
142 | - if ( ! empty( $this->last_error ) ) { |
|
143 | - $this->set_id( 0 ); |
|
142 | + if (!empty($this->last_error)) { |
|
143 | + $this->set_id(0); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | } |
@@ -152,11 +152,11 @@ discard block |
||
152 | 152 | */ |
153 | 153 | public function __clone() { |
154 | 154 | $this->maybe_read_meta_data(); |
155 | - if ( ! empty( $this->meta_data ) ) { |
|
156 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | - $this->meta_data[ $array_key ] = clone $meta; |
|
158 | - if ( ! empty( $meta->id ) ) { |
|
159 | - $this->meta_data[ $array_key ]->id = null; |
|
155 | + if (!empty($this->meta_data)) { |
|
156 | + foreach ($this->meta_data as $array_key => $meta) { |
|
157 | + $this->meta_data[$array_key] = clone $meta; |
|
158 | + if (!empty($meta->id)) { |
|
159 | + $this->meta_data[$array_key]->id = null; |
|
160 | 160 | } |
161 | 161 | } |
162 | 162 | } |
@@ -199,8 +199,8 @@ discard block |
||
199 | 199 | * @param string $context View or edit context. |
200 | 200 | * @return string |
201 | 201 | */ |
202 | - public function get_status( $context = 'view' ) { |
|
203 | - return $this->get_prop( 'status', $context ); |
|
202 | + public function get_status($context = 'view') { |
|
203 | + return $this->get_prop('status', $context); |
|
204 | 204 | } |
205 | 205 | |
206 | 206 | /** |
@@ -210,10 +210,10 @@ discard block |
||
210 | 210 | * @param bool $force_delete Should the data be deleted permanently. |
211 | 211 | * @return bool result |
212 | 212 | */ |
213 | - public function delete( $force_delete = false ) { |
|
214 | - if ( $this->data_store && $this->exists() ) { |
|
215 | - $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | - $this->set_id( 0 ); |
|
213 | + public function delete($force_delete = false) { |
|
214 | + if ($this->data_store && $this->exists()) { |
|
215 | + $this->data_store->delete($this, array('force_delete' => $force_delete)); |
|
216 | + $this->set_id(0); |
|
217 | 217 | return true; |
218 | 218 | } |
219 | 219 | return false; |
@@ -226,7 +226,7 @@ discard block |
||
226 | 226 | * @return int |
227 | 227 | */ |
228 | 228 | public function save() { |
229 | - if ( ! $this->data_store ) { |
|
229 | + if (!$this->data_store) { |
|
230 | 230 | return $this->get_id(); |
231 | 231 | } |
232 | 232 | |
@@ -236,12 +236,12 @@ discard block |
||
236 | 236 | * @param GetPaid_Data $this The object being saved. |
237 | 237 | * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
238 | 238 | */ |
239 | - do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
239 | + do_action('getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store); |
|
240 | 240 | |
241 | - if ( $this->get_id() ) { |
|
242 | - $this->data_store->update( $this ); |
|
241 | + if ($this->get_id()) { |
|
242 | + $this->data_store->update($this); |
|
243 | 243 | } else { |
244 | - $this->data_store->create( $this ); |
|
244 | + $this->data_store->create($this); |
|
245 | 245 | } |
246 | 246 | |
247 | 247 | /** |
@@ -250,7 +250,7 @@ discard block |
||
250 | 250 | * @param GetPaid_Data $this The object being saved. |
251 | 251 | * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
252 | 252 | */ |
253 | - do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
253 | + do_action('getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store); |
|
254 | 254 | |
255 | 255 | return $this->get_id(); |
256 | 256 | } |
@@ -262,7 +262,7 @@ discard block |
||
262 | 262 | * @return string Data in JSON format. |
263 | 263 | */ |
264 | 264 | public function __toString() { |
265 | - return wp_json_encode( $this->get_data() ); |
|
265 | + return wp_json_encode($this->get_data()); |
|
266 | 266 | } |
267 | 267 | |
268 | 268 | /** |
@@ -272,7 +272,7 @@ discard block |
||
272 | 272 | * @return array |
273 | 273 | */ |
274 | 274 | public function get_data() { |
275 | - return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
275 | + return array_merge(array('id' => $this->get_id()), $this->data, array('meta_data' => $this->get_meta_data())); |
|
276 | 276 | } |
277 | 277 | |
278 | 278 | /** |
@@ -282,7 +282,7 @@ discard block |
||
282 | 282 | * @return array |
283 | 283 | */ |
284 | 284 | public function get_data_keys() { |
285 | - return array_keys( $this->data ); |
|
285 | + return array_keys($this->data); |
|
286 | 286 | } |
287 | 287 | |
288 | 288 | /** |
@@ -292,7 +292,7 @@ discard block |
||
292 | 292 | * @return array |
293 | 293 | */ |
294 | 294 | public function get_extra_data_keys() { |
295 | - return array_keys( $this->extra_data ); |
|
295 | + return array_keys($this->extra_data); |
|
296 | 296 | } |
297 | 297 | |
298 | 298 | /** |
@@ -302,8 +302,8 @@ discard block |
||
302 | 302 | * @param mixed $meta Meta value to check. |
303 | 303 | * @return bool |
304 | 304 | */ |
305 | - protected function filter_null_meta( $meta ) { |
|
306 | - return ! is_null( $meta->value ); |
|
305 | + protected function filter_null_meta($meta) { |
|
306 | + return !is_null($meta->value); |
|
307 | 307 | } |
308 | 308 | |
309 | 309 | /** |
@@ -314,7 +314,7 @@ discard block |
||
314 | 314 | */ |
315 | 315 | public function get_meta_data() { |
316 | 316 | $this->maybe_read_meta_data(); |
317 | - return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
317 | + return array_values(array_filter($this->meta_data, array($this, 'filter_null_meta'))); |
|
318 | 318 | } |
319 | 319 | |
320 | 320 | /** |
@@ -324,21 +324,21 @@ discard block |
||
324 | 324 | * @param string $key Key to check. |
325 | 325 | * @return bool true if it's an internal key, false otherwise |
326 | 326 | */ |
327 | - protected function is_internal_meta_key( $key ) { |
|
328 | - $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
327 | + protected function is_internal_meta_key($key) { |
|
328 | + $internal_meta_key = !empty($key) && $this->data_store && in_array($key, $this->data_store->get_internal_meta_keys(), true); |
|
329 | 329 | |
330 | - if ( ! $internal_meta_key ) { |
|
330 | + if (!$internal_meta_key) { |
|
331 | 331 | return false; |
332 | 332 | } |
333 | 333 | |
334 | - $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
334 | + $has_setter_or_getter = is_callable(array($this, 'set_' . $key)) || is_callable(array($this, 'get_' . $key)); |
|
335 | 335 | |
336 | - if ( ! $has_setter_or_getter ) { |
|
336 | + if (!$has_setter_or_getter) { |
|
337 | 337 | return false; |
338 | 338 | } |
339 | 339 | |
340 | 340 | /* translators: %s: $key Key to check */ |
341 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
341 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
342 | 342 | |
343 | 343 | return true; |
344 | 344 | } |
@@ -352,20 +352,20 @@ discard block |
||
352 | 352 | * @access public |
353 | 353 | * |
354 | 354 | */ |
355 | - public function __set( $key, $value ) { |
|
355 | + public function __set($key, $value) { |
|
356 | 356 | |
357 | - if ( 'id' == strtolower( $key ) ) { |
|
358 | - return $this->set_id( $value ); |
|
357 | + if ('id' == strtolower($key)) { |
|
358 | + return $this->set_id($value); |
|
359 | 359 | } |
360 | 360 | |
361 | - if ( method_exists( $this, "set_$key") ) { |
|
361 | + if (method_exists($this, "set_$key")) { |
|
362 | 362 | |
363 | 363 | /* translators: %s: $key Key to set */ |
364 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
364 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
365 | 365 | |
366 | - call_user_func( array( $this, "set_$key" ), $value ); |
|
366 | + call_user_func(array($this, "set_$key"), $value); |
|
367 | 367 | } else { |
368 | - $this->set_prop( $key, $value ); |
|
368 | + $this->set_prop($key, $value); |
|
369 | 369 | } |
370 | 370 | |
371 | 371 | } |
@@ -373,25 +373,25 @@ discard block |
||
373 | 373 | /** |
374 | 374 | * Margic method for retrieving a property. |
375 | 375 | */ |
376 | - public function __get( $key ) { |
|
376 | + public function __get($key) { |
|
377 | 377 | |
378 | 378 | // Check if we have a helper method for that. |
379 | - if ( method_exists( $this, 'get_' . $key ) ) { |
|
379 | + if (method_exists($this, 'get_' . $key)) { |
|
380 | 380 | |
381 | - if ( 'post_type' != $key ) { |
|
381 | + if ('post_type' != $key) { |
|
382 | 382 | /* translators: %s: $key Key to set */ |
383 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
383 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
384 | 384 | } |
385 | 385 | |
386 | - return call_user_func( array( $this, 'get_' . $key ) ); |
|
386 | + return call_user_func(array($this, 'get_' . $key)); |
|
387 | 387 | } |
388 | 388 | |
389 | 389 | // Check if the key is in the associated $post object. |
390 | - if ( ! empty( $this->post ) && isset( $this->post->$key ) ) { |
|
390 | + if (!empty($this->post) && isset($this->post->$key)) { |
|
391 | 391 | return $this->post->$key; |
392 | 392 | } |
393 | 393 | |
394 | - return $this->get_prop( $key ); |
|
394 | + return $this->get_prop($key); |
|
395 | 395 | |
396 | 396 | } |
397 | 397 | |
@@ -404,15 +404,15 @@ discard block |
||
404 | 404 | * @param string $context What the value is for. Valid values are view and edit. |
405 | 405 | * @return mixed |
406 | 406 | */ |
407 | - public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
407 | + public function get_meta($key = '', $single = true, $context = 'view') { |
|
408 | 408 | |
409 | 409 | // Check if this is an internal meta key. |
410 | - $_key = str_replace( '_wpinv', '', $key ); |
|
411 | - $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
410 | + $_key = str_replace('_wpinv', '', $key); |
|
411 | + $_key = str_replace('wpinv', '', $_key); |
|
412 | + if ($this->is_internal_meta_key($key)) { |
|
413 | 413 | $function = 'get_' . $_key; |
414 | 414 | |
415 | - if ( is_callable( array( $this, $function ) ) ) { |
|
415 | + if (is_callable(array($this, $function))) { |
|
416 | 416 | return $this->{$function}(); |
417 | 417 | } |
418 | 418 | } |
@@ -420,20 +420,20 @@ discard block |
||
420 | 420 | // Read the meta data if not yet read. |
421 | 421 | $this->maybe_read_meta_data(); |
422 | 422 | $meta_data = $this->get_meta_data(); |
423 | - $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
423 | + $array_keys = array_keys(wp_list_pluck($meta_data, 'key'), $key, true); |
|
424 | 424 | $value = $single ? '' : array(); |
425 | 425 | |
426 | - if ( ! empty( $array_keys ) ) { |
|
426 | + if (!empty($array_keys)) { |
|
427 | 427 | // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
428 | - if ( $single ) { |
|
429 | - $value = $meta_data[ current( $array_keys ) ]->value; |
|
428 | + if ($single) { |
|
429 | + $value = $meta_data[current($array_keys)]->value; |
|
430 | 430 | } else { |
431 | - $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
431 | + $value = array_intersect_key($meta_data, array_flip($array_keys)); |
|
432 | 432 | } |
433 | 433 | } |
434 | 434 | |
435 | - if ( 'view' === $context ) { |
|
436 | - $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
435 | + if ('view' === $context) { |
|
436 | + $value = apply_filters($this->get_hook_prefix() . $key, $value, $this); |
|
437 | 437 | } |
438 | 438 | |
439 | 439 | return $value; |
@@ -446,10 +446,10 @@ discard block |
||
446 | 446 | * @param string $key Meta Key. |
447 | 447 | * @return boolean |
448 | 448 | */ |
449 | - public function meta_exists( $key = '' ) { |
|
449 | + public function meta_exists($key = '') { |
|
450 | 450 | $this->maybe_read_meta_data(); |
451 | - $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | - return in_array( $key, $array_keys, true ); |
|
451 | + $array_keys = wp_list_pluck($this->get_meta_data(), 'key'); |
|
452 | + return in_array($key, $array_keys, true); |
|
453 | 453 | } |
454 | 454 | |
455 | 455 | /** |
@@ -458,12 +458,12 @@ discard block |
||
458 | 458 | * @since 1.0.19 |
459 | 459 | * @param array $data Key/Value pairs. |
460 | 460 | */ |
461 | - public function set_meta_data( $data ) { |
|
462 | - if ( ! empty( $data ) && is_array( $data ) ) { |
|
461 | + public function set_meta_data($data) { |
|
462 | + if (!empty($data) && is_array($data)) { |
|
463 | 463 | $this->maybe_read_meta_data(); |
464 | - foreach ( $data as $meta ) { |
|
464 | + foreach ($data as $meta) { |
|
465 | 465 | $meta = (array) $meta; |
466 | - if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
466 | + if (isset($meta['key'], $meta['value'], $meta['id'])) { |
|
467 | 467 | $this->meta_data[] = new GetPaid_Meta_Data( |
468 | 468 | array( |
469 | 469 | 'id' => $meta['id'], |
@@ -485,18 +485,18 @@ discard block |
||
485 | 485 | * @param string|array $value Meta value. |
486 | 486 | * @param bool $unique Should this be a unique key?. |
487 | 487 | */ |
488 | - public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
488 | + public function add_meta_data($key, $value, $unique = false) { |
|
489 | + if ($this->is_internal_meta_key($key)) { |
|
490 | 490 | $function = 'set_' . $key; |
491 | 491 | |
492 | - if ( is_callable( array( $this, $function ) ) ) { |
|
493 | - return $this->{$function}( $value ); |
|
492 | + if (is_callable(array($this, $function))) { |
|
493 | + return $this->{$function}($value); |
|
494 | 494 | } |
495 | 495 | } |
496 | 496 | |
497 | 497 | $this->maybe_read_meta_data(); |
498 | - if ( $unique ) { |
|
499 | - $this->delete_meta_data( $key ); |
|
498 | + if ($unique) { |
|
499 | + $this->delete_meta_data($key); |
|
500 | 500 | } |
501 | 501 | $this->meta_data[] = new GetPaid_Meta_Data( |
502 | 502 | array( |
@@ -517,12 +517,12 @@ discard block |
||
517 | 517 | * @param string|array $value Meta value. |
518 | 518 | * @param int $meta_id Meta ID. |
519 | 519 | */ |
520 | - public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
520 | + public function update_meta_data($key, $value, $meta_id = 0) { |
|
521 | + if ($this->is_internal_meta_key($key)) { |
|
522 | 522 | $function = 'set_' . $key; |
523 | 523 | |
524 | - if ( is_callable( array( $this, $function ) ) ) { |
|
525 | - return $this->{$function}( $value ); |
|
524 | + if (is_callable(array($this, $function))) { |
|
525 | + return $this->{$function}($value); |
|
526 | 526 | } |
527 | 527 | } |
528 | 528 | |
@@ -530,33 +530,33 @@ discard block |
||
530 | 530 | |
531 | 531 | $array_key = false; |
532 | 532 | |
533 | - if ( $meta_id ) { |
|
534 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | - $array_key = $array_keys ? current( $array_keys ) : false; |
|
533 | + if ($meta_id) { |
|
534 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), $meta_id, true); |
|
535 | + $array_key = $array_keys ? current($array_keys) : false; |
|
536 | 536 | } else { |
537 | 537 | // Find matches by key. |
538 | 538 | $matches = array(); |
539 | - foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | - if ( $meta->key === $key ) { |
|
539 | + foreach ($this->meta_data as $meta_data_array_key => $meta) { |
|
540 | + if ($meta->key === $key) { |
|
541 | 541 | $matches[] = $meta_data_array_key; |
542 | 542 | } |
543 | 543 | } |
544 | 544 | |
545 | - if ( ! empty( $matches ) ) { |
|
545 | + if (!empty($matches)) { |
|
546 | 546 | // Set matches to null so only one key gets the new value. |
547 | - foreach ( $matches as $meta_data_array_key ) { |
|
548 | - $this->meta_data[ $meta_data_array_key ]->value = null; |
|
547 | + foreach ($matches as $meta_data_array_key) { |
|
548 | + $this->meta_data[$meta_data_array_key]->value = null; |
|
549 | 549 | } |
550 | - $array_key = current( $matches ); |
|
550 | + $array_key = current($matches); |
|
551 | 551 | } |
552 | 552 | } |
553 | 553 | |
554 | - if ( false !== $array_key ) { |
|
555 | - $meta = $this->meta_data[ $array_key ]; |
|
554 | + if (false !== $array_key) { |
|
555 | + $meta = $this->meta_data[$array_key]; |
|
556 | 556 | $meta->key = $key; |
557 | 557 | $meta->value = $value; |
558 | 558 | } else { |
559 | - $this->add_meta_data( $key, $value, true ); |
|
559 | + $this->add_meta_data($key, $value, true); |
|
560 | 560 | } |
561 | 561 | } |
562 | 562 | |
@@ -566,13 +566,13 @@ discard block |
||
566 | 566 | * @since 1.0.19 |
567 | 567 | * @param string $key Meta key. |
568 | 568 | */ |
569 | - public function delete_meta_data( $key ) { |
|
569 | + public function delete_meta_data($key) { |
|
570 | 570 | $this->maybe_read_meta_data(); |
571 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
571 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'key'), $key, true); |
|
572 | 572 | |
573 | - if ( $array_keys ) { |
|
574 | - foreach ( $array_keys as $array_key ) { |
|
575 | - $this->meta_data[ $array_key ]->value = null; |
|
573 | + if ($array_keys) { |
|
574 | + foreach ($array_keys as $array_key) { |
|
575 | + $this->meta_data[$array_key]->value = null; |
|
576 | 576 | } |
577 | 577 | } |
578 | 578 | } |
@@ -583,13 +583,13 @@ discard block |
||
583 | 583 | * @since 1.0.19 |
584 | 584 | * @param int $mid Meta ID. |
585 | 585 | */ |
586 | - public function delete_meta_data_by_mid( $mid ) { |
|
586 | + public function delete_meta_data_by_mid($mid) { |
|
587 | 587 | $this->maybe_read_meta_data(); |
588 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
588 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), (int) $mid, true); |
|
589 | 589 | |
590 | - if ( $array_keys ) { |
|
591 | - foreach ( $array_keys as $array_key ) { |
|
592 | - $this->meta_data[ $array_key ]->value = null; |
|
590 | + if ($array_keys) { |
|
591 | + foreach ($array_keys as $array_key) { |
|
592 | + $this->meta_data[$array_key]->value = null; |
|
593 | 593 | } |
594 | 594 | } |
595 | 595 | } |
@@ -600,7 +600,7 @@ discard block |
||
600 | 600 | * @since 1.0.19 |
601 | 601 | */ |
602 | 602 | protected function maybe_read_meta_data() { |
603 | - if ( is_null( $this->meta_data ) ) { |
|
603 | + if (is_null($this->meta_data)) { |
|
604 | 604 | $this->read_meta_data(); |
605 | 605 | } |
606 | 606 | } |
@@ -612,42 +612,42 @@ discard block |
||
612 | 612 | * @since 1.0.19 |
613 | 613 | * @param bool $force_read True to force a new DB read (and update cache). |
614 | 614 | */ |
615 | - public function read_meta_data( $force_read = false ) { |
|
615 | + public function read_meta_data($force_read = false) { |
|
616 | 616 | |
617 | 617 | // Reset meta data. |
618 | 618 | $this->meta_data = array(); |
619 | 619 | |
620 | 620 | // Maybe abort early. |
621 | - if ( ! $this->get_id() || ! $this->data_store ) { |
|
621 | + if (!$this->get_id() || !$this->data_store) { |
|
622 | 622 | return; |
623 | 623 | } |
624 | 624 | |
625 | 625 | // Only read from cache if the cache key is set. |
626 | 626 | $cache_key = null; |
627 | - if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | - $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
627 | + if (!$force_read && !empty($this->cache_group)) { |
|
628 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id(); |
|
629 | + $raw_meta_data = wp_cache_get($cache_key, $this->cache_group); |
|
630 | 630 | } |
631 | 631 | |
632 | 632 | // Should we force read? |
633 | - if ( empty( $raw_meta_data ) ) { |
|
634 | - $raw_meta_data = $this->data_store->read_meta( $this ); |
|
633 | + if (empty($raw_meta_data)) { |
|
634 | + $raw_meta_data = $this->data_store->read_meta($this); |
|
635 | 635 | |
636 | - if ( ! empty( $cache_key ) ) { |
|
637 | - wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
636 | + if (!empty($cache_key)) { |
|
637 | + wp_cache_set($cache_key, $raw_meta_data, $this->cache_group); |
|
638 | 638 | } |
639 | 639 | |
640 | 640 | } |
641 | 641 | |
642 | 642 | // Set meta data. |
643 | - if ( is_array( $raw_meta_data ) ) { |
|
643 | + if (is_array($raw_meta_data)) { |
|
644 | 644 | |
645 | - foreach ( $raw_meta_data as $meta ) { |
|
645 | + foreach ($raw_meta_data as $meta) { |
|
646 | 646 | $this->meta_data[] = new GetPaid_Meta_Data( |
647 | 647 | array( |
648 | 648 | 'id' => (int) $meta->meta_id, |
649 | 649 | 'key' => $meta->meta_key, |
650 | - 'value' => maybe_unserialize( $meta->meta_value ), |
|
650 | + 'value' => maybe_unserialize($meta->meta_value), |
|
651 | 651 | ) |
652 | 652 | ); |
653 | 653 | } |
@@ -662,28 +662,28 @@ discard block |
||
662 | 662 | * @since 1.0.19 |
663 | 663 | */ |
664 | 664 | public function save_meta_data() { |
665 | - if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
665 | + if (!$this->data_store || is_null($this->meta_data)) { |
|
666 | 666 | return; |
667 | 667 | } |
668 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
669 | - if ( is_null( $meta->value ) ) { |
|
670 | - if ( ! empty( $meta->id ) ) { |
|
671 | - $this->data_store->delete_meta( $this, $meta ); |
|
672 | - unset( $this->meta_data[ $array_key ] ); |
|
668 | + foreach ($this->meta_data as $array_key => $meta) { |
|
669 | + if (is_null($meta->value)) { |
|
670 | + if (!empty($meta->id)) { |
|
671 | + $this->data_store->delete_meta($this, $meta); |
|
672 | + unset($this->meta_data[$array_key]); |
|
673 | 673 | } |
674 | - } elseif ( empty( $meta->id ) ) { |
|
675 | - $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
674 | + } elseif (empty($meta->id)) { |
|
675 | + $meta->id = $this->data_store->add_meta($this, $meta); |
|
676 | 676 | $meta->apply_changes(); |
677 | 677 | } else { |
678 | - if ( $meta->get_changes() ) { |
|
679 | - $this->data_store->update_meta( $this, $meta ); |
|
678 | + if ($meta->get_changes()) { |
|
679 | + $this->data_store->update_meta($this, $meta); |
|
680 | 680 | $meta->apply_changes(); |
681 | 681 | } |
682 | 682 | } |
683 | 683 | } |
684 | - if ( ! empty( $this->cache_group ) ) { |
|
685 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
686 | - wp_cache_delete( $cache_key, $this->cache_group ); |
|
684 | + if (!empty($this->cache_group)) { |
|
685 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id(); |
|
686 | + wp_cache_delete($cache_key, $this->cache_group); |
|
687 | 687 | } |
688 | 688 | } |
689 | 689 | |
@@ -693,8 +693,8 @@ discard block |
||
693 | 693 | * @since 1.0.19 |
694 | 694 | * @param int $id ID. |
695 | 695 | */ |
696 | - public function set_id( $id ) { |
|
697 | - $this->id = absint( $id ); |
|
696 | + public function set_id($id) { |
|
697 | + $this->id = absint($id); |
|
698 | 698 | } |
699 | 699 | |
700 | 700 | /** |
@@ -704,10 +704,10 @@ discard block |
||
704 | 704 | * @param string $status New status. |
705 | 705 | * @return array details of change. |
706 | 706 | */ |
707 | - public function set_status( $status ) { |
|
707 | + public function set_status($status) { |
|
708 | 708 | $old_status = $this->get_status(); |
709 | 709 | |
710 | - $this->set_prop( 'status', $status ); |
|
710 | + $this->set_prop('status', $status); |
|
711 | 711 | |
712 | 712 | return array( |
713 | 713 | 'from' => $old_status, |
@@ -723,7 +723,7 @@ discard block |
||
723 | 723 | public function set_defaults() { |
724 | 724 | $this->data = $this->default_data; |
725 | 725 | $this->changes = array(); |
726 | - $this->set_object_read( false ); |
|
726 | + $this->set_object_read(false); |
|
727 | 727 | } |
728 | 728 | |
729 | 729 | /** |
@@ -732,7 +732,7 @@ discard block |
||
732 | 732 | * @since 1.0.19 |
733 | 733 | * @param boolean $read Should read?. |
734 | 734 | */ |
735 | - public function set_object_read( $read = true ) { |
|
735 | + public function set_object_read($read = true) { |
|
736 | 736 | $this->object_read = (bool) $read; |
737 | 737 | } |
738 | 738 | |
@@ -757,33 +757,33 @@ discard block |
||
757 | 757 | * |
758 | 758 | * @return bool|WP_Error |
759 | 759 | */ |
760 | - public function set_props( $props, $context = 'set' ) { |
|
760 | + public function set_props($props, $context = 'set') { |
|
761 | 761 | $errors = false; |
762 | 762 | |
763 | - $props = wp_unslash( $props ); |
|
764 | - foreach ( $props as $prop => $value ) { |
|
763 | + $props = wp_unslash($props); |
|
764 | + foreach ($props as $prop => $value) { |
|
765 | 765 | try { |
766 | 766 | /** |
767 | 767 | * Checks if the prop being set is allowed, and the value is not null. |
768 | 768 | */ |
769 | - if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
769 | + if (is_null($value) || in_array($prop, array('prop', 'date_prop', 'meta_data'), true)) { |
|
770 | 770 | continue; |
771 | 771 | } |
772 | 772 | $setter = "set_$prop"; |
773 | 773 | |
774 | - if ( is_callable( array( $this, $setter ) ) ) { |
|
775 | - $this->{$setter}( $value ); |
|
774 | + if (is_callable(array($this, $setter))) { |
|
775 | + $this->{$setter}($value); |
|
776 | 776 | } |
777 | - } catch ( Exception $e ) { |
|
778 | - if ( ! $errors ) { |
|
777 | + } catch (Exception $e) { |
|
778 | + if (!$errors) { |
|
779 | 779 | $errors = new WP_Error(); |
780 | 780 | } |
781 | - $errors->add( $e->getCode(), $e->getMessage() ); |
|
781 | + $errors->add($e->getCode(), $e->getMessage()); |
|
782 | 782 | $this->last_error = $e->getMessage(); |
783 | 783 | } |
784 | 784 | } |
785 | 785 | |
786 | - return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
786 | + return $errors && count($errors->get_error_codes()) ? $errors : true; |
|
787 | 787 | } |
788 | 788 | |
789 | 789 | /** |
@@ -796,14 +796,14 @@ discard block |
||
796 | 796 | * @param string $prop Name of prop to set. |
797 | 797 | * @param mixed $value Value of the prop. |
798 | 798 | */ |
799 | - protected function set_prop( $prop, $value ) { |
|
800 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
801 | - if ( true === $this->object_read ) { |
|
802 | - if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
803 | - $this->changes[ $prop ] = $value; |
|
799 | + protected function set_prop($prop, $value) { |
|
800 | + if (array_key_exists($prop, $this->data)) { |
|
801 | + if (true === $this->object_read) { |
|
802 | + if ($value !== $this->data[$prop] || array_key_exists($prop, $this->changes)) { |
|
803 | + $this->changes[$prop] = $value; |
|
804 | 804 | } |
805 | 805 | } else { |
806 | - $this->data[ $prop ] = $value; |
|
806 | + $this->data[$prop] = $value; |
|
807 | 807 | } |
808 | 808 | } |
809 | 809 | } |
@@ -824,7 +824,7 @@ discard block |
||
824 | 824 | * @since 1.0.19 |
825 | 825 | */ |
826 | 826 | public function apply_changes() { |
827 | - $this->data = array_replace( $this->data, $this->changes ); |
|
827 | + $this->data = array_replace($this->data, $this->changes); |
|
828 | 828 | $this->changes = array(); |
829 | 829 | } |
830 | 830 | |
@@ -849,14 +849,14 @@ discard block |
||
849 | 849 | * @param string $context What the value is for. Valid values are view and edit. |
850 | 850 | * @return mixed |
851 | 851 | */ |
852 | - protected function get_prop( $prop, $context = 'view' ) { |
|
852 | + protected function get_prop($prop, $context = 'view') { |
|
853 | 853 | $value = null; |
854 | 854 | |
855 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
856 | - $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
855 | + if (array_key_exists($prop, $this->data)) { |
|
856 | + $value = array_key_exists($prop, $this->changes) ? $this->changes[$prop] : $this->data[$prop]; |
|
857 | 857 | |
858 | - if ( 'view' === $context ) { |
|
859 | - $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
858 | + if ('view' === $context) { |
|
859 | + $value = apply_filters($this->get_hook_prefix() . $prop, $value, $this); |
|
860 | 860 | } |
861 | 861 | } |
862 | 862 | |
@@ -870,13 +870,13 @@ discard block |
||
870 | 870 | * @param string $prop Name of prop to set. |
871 | 871 | * @param string|integer $value Value of the prop. |
872 | 872 | */ |
873 | - protected function set_date_prop( $prop, $value ) { |
|
873 | + protected function set_date_prop($prop, $value) { |
|
874 | 874 | |
875 | - if ( empty( $value ) ) { |
|
876 | - $this->set_prop( $prop, null ); |
|
875 | + if (empty($value)) { |
|
876 | + $this->set_prop($prop, null); |
|
877 | 877 | return; |
878 | 878 | } |
879 | - $this->set_prop( $prop, $value ); |
|
879 | + $this->set_prop($prop, $value); |
|
880 | 880 | |
881 | 881 | } |
882 | 882 | |
@@ -887,7 +887,7 @@ discard block |
||
887 | 887 | * @param string $code Error code. |
888 | 888 | * @param string $message Error message. |
889 | 889 | */ |
890 | - protected function error( $code, $message ) { |
|
890 | + protected function error($code, $message) { |
|
891 | 891 | $this->last_error = $message; |
892 | 892 | } |
893 | 893 | |
@@ -899,7 +899,7 @@ discard block |
||
899 | 899 | */ |
900 | 900 | public function exists() { |
901 | 901 | $id = $this->get_id(); |
902 | - return ! empty( $id ); |
|
902 | + return !empty($id); |
|
903 | 903 | } |
904 | 904 | |
905 | 905 | } |
@@ -108,13 +108,13 @@ discard block |
||
108 | 108 | */ |
109 | 109 | function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) { |
110 | 110 | |
111 | - $invoice_statuses = array( |
|
112 | - 'wpi-pending' => _x( 'Pending payment', 'Invoice status', 'invoicing' ), |
|
111 | + $invoice_statuses = array( |
|
112 | + 'wpi-pending' => _x( 'Pending payment', 'Invoice status', 'invoicing' ), |
|
113 | 113 | 'publish' => _x( 'Paid', 'Invoice status', 'invoicing' ), |
114 | 114 | 'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ), |
115 | - 'wpi-onhold' => _x( 'On hold', 'Invoice status', 'invoicing' ), |
|
116 | - 'wpi-cancelled' => _x( 'Cancelled', 'Invoice status', 'invoicing' ), |
|
117 | - 'wpi-refunded' => _x( 'Refunded', 'Invoice status', 'invoicing' ), |
|
115 | + 'wpi-onhold' => _x( 'On hold', 'Invoice status', 'invoicing' ), |
|
116 | + 'wpi-cancelled' => _x( 'Cancelled', 'Invoice status', 'invoicing' ), |
|
117 | + 'wpi-refunded' => _x( 'Refunded', 'Invoice status', 'invoicing' ), |
|
118 | 118 | 'wpi-failed' => _x( 'Failed', 'Invoice status', 'invoicing' ), |
119 | 119 | 'wpi-renewal' => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ), |
120 | 120 | ); |
@@ -131,7 +131,7 @@ discard block |
||
131 | 131 | $invoice = $invoice->get_post_type(); |
132 | 132 | } |
133 | 133 | |
134 | - return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice ); |
|
134 | + return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice ); |
|
135 | 135 | } |
136 | 136 | |
137 | 137 | /** |
@@ -249,25 +249,25 @@ discard block |
||
249 | 249 | * @return string |
250 | 250 | */ |
251 | 251 | function getpaid_get_price_format() { |
252 | - $currency_pos = wpinv_currency_position(); |
|
253 | - $format = '%1$s%2$s'; |
|
254 | - |
|
255 | - switch ( $currency_pos ) { |
|
256 | - case 'left': |
|
257 | - $format = '%1$s%2$s'; |
|
258 | - break; |
|
259 | - case 'right': |
|
260 | - $format = '%2$s%1$s'; |
|
261 | - break; |
|
262 | - case 'left_space': |
|
263 | - $format = '%1$s %2$s'; |
|
264 | - break; |
|
265 | - case 'right_space': |
|
266 | - $format = '%2$s %1$s'; |
|
267 | - break; |
|
268 | - } |
|
269 | - |
|
270 | - return apply_filters( 'getpaid_price_format', $format, $currency_pos ); |
|
252 | + $currency_pos = wpinv_currency_position(); |
|
253 | + $format = '%1$s%2$s'; |
|
254 | + |
|
255 | + switch ( $currency_pos ) { |
|
256 | + case 'left': |
|
257 | + $format = '%1$s%2$s'; |
|
258 | + break; |
|
259 | + case 'right': |
|
260 | + $format = '%2$s%1$s'; |
|
261 | + break; |
|
262 | + case 'left_space': |
|
263 | + $format = '%1$s %2$s'; |
|
264 | + break; |
|
265 | + case 'right_space': |
|
266 | + $format = '%2$s %1$s'; |
|
267 | + break; |
|
268 | + } |
|
269 | + |
|
270 | + return apply_filters( 'getpaid_price_format', $format, $currency_pos ); |
|
271 | 271 | } |
272 | 272 | |
273 | 273 | /** |
@@ -362,13 +362,13 @@ discard block |
||
362 | 362 | * @param mixed $value Value. |
363 | 363 | */ |
364 | 364 | function getpaid_maybe_define_constant( $name, $value ) { |
365 | - if ( ! defined( $name ) ) { |
|
366 | - define( $name, $value ); |
|
367 | - } |
|
365 | + if ( ! defined( $name ) ) { |
|
366 | + define( $name, $value ); |
|
367 | + } |
|
368 | 368 | } |
369 | 369 | |
370 | 370 | function wpinv_get_php_arg_separator_output() { |
371 | - return ini_get( 'arg_separator.output' ); |
|
371 | + return ini_get( 'arg_separator.output' ); |
|
372 | 372 | } |
373 | 373 | |
374 | 374 | function wpinv_rgb_from_hex( $color ) { |
@@ -722,11 +722,11 @@ discard block |
||
722 | 722 | $list = array(); |
723 | 723 | } |
724 | 724 | |
725 | - if ( ! is_array( $list ) ) { |
|
726 | - return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY ); |
|
727 | - } |
|
725 | + if ( ! is_array( $list ) ) { |
|
726 | + return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY ); |
|
727 | + } |
|
728 | 728 | |
729 | - return $list; |
|
729 | + return $list; |
|
730 | 730 | } |
731 | 731 | |
732 | 732 | /** |
@@ -746,9 +746,9 @@ discard block |
||
746 | 746 | } |
747 | 747 | |
748 | 748 | $data = apply_filters( "wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php" ); |
749 | - wp_cache_set( "wpinv-data-$key", $data, 'wpinv' ); |
|
749 | + wp_cache_set( "wpinv-data-$key", $data, 'wpinv' ); |
|
750 | 750 | |
751 | - return $data; |
|
751 | + return $data; |
|
752 | 752 | } |
753 | 753 | |
754 | 754 | /** |
@@ -777,17 +777,17 @@ discard block |
||
777 | 777 | */ |
778 | 778 | function wpinv_clean( $var ) { |
779 | 779 | |
780 | - if ( is_array( $var ) ) { |
|
781 | - return array_map( 'wpinv_clean', $var ); |
|
780 | + if ( is_array( $var ) ) { |
|
781 | + return array_map( 'wpinv_clean', $var ); |
|
782 | 782 | } |
783 | 783 | |
784 | 784 | if ( is_object( $var ) ) { |
785 | - $object_vars = get_object_vars( $var ); |
|
786 | - foreach ( $object_vars as $property_name => $property_value ) { |
|
787 | - $var->$property_name = wpinv_clean( $property_value ); |
|
785 | + $object_vars = get_object_vars( $var ); |
|
786 | + foreach ( $object_vars as $property_name => $property_value ) { |
|
787 | + $var->$property_name = wpinv_clean( $property_value ); |
|
788 | 788 | } |
789 | 789 | return $var; |
790 | - } |
|
790 | + } |
|
791 | 791 | |
792 | 792 | return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var; |
793 | 793 | } |
@@ -800,7 +800,7 @@ discard block |
||
800 | 800 | */ |
801 | 801 | function getpaid_convert_price_string_to_options( $str ) { |
802 | 802 | |
803 | - $raw_options = array_map( 'trim', explode( ',', $str ) ); |
|
803 | + $raw_options = array_map( 'trim', explode( ',', $str ) ); |
|
804 | 804 | $options = array(); |
805 | 805 | |
806 | 806 | foreach ( $raw_options as $option ) { |
@@ -883,7 +883,7 @@ discard block |
||
883 | 883 | * @return string |
884 | 884 | */ |
885 | 885 | function getpaid_date_format() { |
886 | - return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) ); |
|
886 | + return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) ); |
|
887 | 887 | } |
888 | 888 | |
889 | 889 | /** |
@@ -892,7 +892,7 @@ discard block |
||
892 | 892 | * @return string |
893 | 893 | */ |
894 | 894 | function getpaid_time_format() { |
895 | - return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) ); |
|
895 | + return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) ); |
|
896 | 896 | } |
897 | 897 | |
898 | 898 | /** |
@@ -905,15 +905,15 @@ discard block |
||
905 | 905 | function getpaid_limit_length( $string, $limit ) { |
906 | 906 | $str_limit = $limit - 3; |
907 | 907 | |
908 | - if ( function_exists( 'mb_strimwidth' ) ) { |
|
909 | - if ( mb_strlen( $string ) > $limit ) { |
|
910 | - $string = mb_strimwidth( $string, 0, $str_limit ) . '...'; |
|
911 | - } |
|
912 | - } else { |
|
913 | - if ( strlen( $string ) > $limit ) { |
|
914 | - $string = substr( $string, 0, $str_limit ) . '...'; |
|
915 | - } |
|
916 | - } |
|
908 | + if ( function_exists( 'mb_strimwidth' ) ) { |
|
909 | + if ( mb_strlen( $string ) > $limit ) { |
|
910 | + $string = mb_strimwidth( $string, 0, $str_limit ) . '...'; |
|
911 | + } |
|
912 | + } else { |
|
913 | + if ( strlen( $string ) > $limit ) { |
|
914 | + $string = substr( $string, 0, $str_limit ) . '...'; |
|
915 | + } |
|
916 | + } |
|
917 | 917 | return $string; |
918 | 918 | |
919 | 919 | } |
@@ -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 | * Are we supporting item quantities? |
@@ -20,35 +20,35 @@ discard block |
||
20 | 20 | */ |
21 | 21 | function wpinv_get_ip() { |
22 | 22 | |
23 | - if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) { |
|
24 | - return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_REAL_IP'] ) ); |
|
23 | + if (isset($_SERVER['HTTP_X_REAL_IP'])) { |
|
24 | + return sanitize_text_field(wp_unslash($_SERVER['HTTP_X_REAL_IP'])); |
|
25 | 25 | } |
26 | 26 | |
27 | - if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { |
|
27 | + if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { |
|
28 | 28 | // Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2 |
29 | 29 | // Make sure we always only send through the first IP in the list which should always be the client IP. |
30 | - return (string) rest_is_ip_address( trim( current( preg_split( '/,/', sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) ) ) ) ); |
|
30 | + return (string) rest_is_ip_address(trim(current(preg_split('/,/', sanitize_text_field(wp_unslash($_SERVER['HTTP_X_FORWARDED_FOR'])))))); |
|
31 | 31 | } |
32 | 32 | |
33 | - if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) { |
|
34 | - return sanitize_text_field( wp_unslash( $_SERVER['HTTP_CLIENT_IP'] ) ); |
|
33 | + if (isset($_SERVER['HTTP_CLIENT_IP'])) { |
|
34 | + return sanitize_text_field(wp_unslash($_SERVER['HTTP_CLIENT_IP'])); |
|
35 | 35 | } |
36 | 36 | |
37 | - if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { |
|
38 | - return sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ); |
|
37 | + if (isset($_SERVER['REMOTE_ADDR'])) { |
|
38 | + return sanitize_text_field(wp_unslash($_SERVER['REMOTE_ADDR'])); |
|
39 | 39 | } |
40 | 40 | |
41 | 41 | return ''; |
42 | 42 | } |
43 | 43 | |
44 | 44 | function wpinv_get_user_agent() { |
45 | - if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) { |
|
46 | - $user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] ); |
|
45 | + if (!empty($_SERVER['HTTP_USER_AGENT'])) { |
|
46 | + $user_agent = sanitize_text_field($_SERVER['HTTP_USER_AGENT']); |
|
47 | 47 | } else { |
48 | 48 | $user_agent = ''; |
49 | 49 | } |
50 | 50 | |
51 | - return apply_filters( 'wpinv_get_user_agent', $user_agent ); |
|
51 | + return apply_filters('wpinv_get_user_agent', $user_agent); |
|
52 | 52 | } |
53 | 53 | |
54 | 54 | /** |
@@ -57,16 +57,16 @@ discard block |
||
57 | 57 | * @param string $amount The amount to sanitize. |
58 | 58 | * @return float |
59 | 59 | */ |
60 | -function getpaid_standardize_amount( $amount ) { |
|
60 | +function getpaid_standardize_amount($amount) { |
|
61 | 61 | |
62 | - $amount = str_replace( wpinv_thousands_separator(), '', $amount ); |
|
63 | - $amount = str_replace( wpinv_decimal_separator(), '.', $amount ); |
|
64 | - if ( is_numeric( $amount ) ) { |
|
65 | - return floatval( $amount ); |
|
62 | + $amount = str_replace(wpinv_thousands_separator(), '', $amount); |
|
63 | + $amount = str_replace(wpinv_decimal_separator(), '.', $amount); |
|
64 | + if (is_numeric($amount)) { |
|
65 | + return floatval($amount); |
|
66 | 66 | } |
67 | 67 | |
68 | 68 | // Cast the remaining to a float. |
69 | - return wpinv_round_amount( preg_replace( '/[^0-9\.\-]/', '', $amount ) ); |
|
69 | + return wpinv_round_amount(preg_replace('/[^0-9\.\-]/', '', $amount)); |
|
70 | 70 | |
71 | 71 | } |
72 | 72 | |
@@ -75,8 +75,8 @@ discard block |
||
75 | 75 | * |
76 | 76 | * @param string $amount The amount to sanitize. |
77 | 77 | */ |
78 | -function getpaid_unstandardize_amount( $amount ) { |
|
79 | - return str_replace( '.', wpinv_decimal_separator(), $amount ); |
|
78 | +function getpaid_unstandardize_amount($amount) { |
|
79 | + return str_replace('.', wpinv_decimal_separator(), $amount); |
|
80 | 80 | } |
81 | 81 | |
82 | 82 | /** |
@@ -84,23 +84,23 @@ discard block |
||
84 | 84 | * |
85 | 85 | * @param string $amount The amount to sanitize. |
86 | 86 | */ |
87 | -function wpinv_sanitize_amount( $amount ) { |
|
87 | +function wpinv_sanitize_amount($amount) { |
|
88 | 88 | |
89 | - if ( is_numeric( $amount ) ) { |
|
90 | - return floatval( $amount ); |
|
89 | + if (is_numeric($amount)) { |
|
90 | + return floatval($amount); |
|
91 | 91 | } |
92 | 92 | |
93 | 93 | // Separate the decimals and thousands. |
94 | - $amount = explode( wpinv_decimal_separator(), $amount ); |
|
94 | + $amount = explode(wpinv_decimal_separator(), $amount); |
|
95 | 95 | |
96 | 96 | // Remove thousands. |
97 | - $amount[0] = str_replace( wpinv_thousands_separator(), '', $amount[0] ); |
|
97 | + $amount[0] = str_replace(wpinv_thousands_separator(), '', $amount[0]); |
|
98 | 98 | |
99 | 99 | // Convert back to string. |
100 | - $amount = count( $amount ) > 1 ? "{$amount[0]}.{$amount[1]}" : $amount[0]; |
|
100 | + $amount = count($amount) > 1 ? "{$amount[0]}.{$amount[1]}" : $amount[0]; |
|
101 | 101 | |
102 | 102 | // Cast the remaining to a float. |
103 | - return (float) preg_replace( '/[^0-9\.\-]/', '', $amount ); |
|
103 | + return (float) preg_replace('/[^0-9\.\-]/', '', $amount); |
|
104 | 104 | |
105 | 105 | } |
106 | 106 | |
@@ -110,19 +110,19 @@ discard block |
||
110 | 110 | * @param float $amount |
111 | 111 | * @param float|string|int|null $decimals |
112 | 112 | */ |
113 | -function wpinv_round_amount( $amount, $decimals = null, $use_sprintf = false ) { |
|
113 | +function wpinv_round_amount($amount, $decimals = null, $use_sprintf = false) { |
|
114 | 114 | |
115 | - if ( $decimals === null ) { |
|
115 | + if ($decimals === null) { |
|
116 | 116 | $decimals = wpinv_decimals(); |
117 | 117 | } |
118 | 118 | |
119 | - if ( $use_sprintf ) { |
|
120 | - $amount = sprintf( "%.{$decimals}f", (float) $amount ); |
|
119 | + if ($use_sprintf) { |
|
120 | + $amount = sprintf("%.{$decimals}f", (float) $amount); |
|
121 | 121 | } else { |
122 | - $amount = round( (float) $amount, absint( $decimals ) ); |
|
122 | + $amount = round((float) $amount, absint($decimals)); |
|
123 | 123 | } |
124 | 124 | |
125 | - return apply_filters( 'wpinv_round_amount', $amount, $decimals ); |
|
125 | + return apply_filters('wpinv_round_amount', $amount, $decimals); |
|
126 | 126 | } |
127 | 127 | |
128 | 128 | /** |
@@ -134,32 +134,32 @@ discard block |
||
134 | 134 | * @param string|WPInv_Invoice $invoice The invoice object|post type|type |
135 | 135 | * @return array |
136 | 136 | */ |
137 | -function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) { |
|
137 | +function wpinv_get_invoice_statuses($draft = false, $trashed = false, $invoice = false) { |
|
138 | 138 | |
139 | 139 | $invoice_statuses = array( |
140 | - 'wpi-pending' => _x( 'Pending payment', 'Invoice status', 'invoicing' ), |
|
141 | - 'publish' => _x( 'Paid', 'Invoice status', 'invoicing' ), |
|
142 | - 'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ), |
|
143 | - 'wpi-onhold' => _x( 'On hold', 'Invoice status', 'invoicing' ), |
|
144 | - 'wpi-cancelled' => _x( 'Cancelled', 'Invoice status', 'invoicing' ), |
|
145 | - 'wpi-refunded' => _x( 'Refunded', 'Invoice status', 'invoicing' ), |
|
146 | - 'wpi-failed' => _x( 'Failed', 'Invoice status', 'invoicing' ), |
|
147 | - 'wpi-renewal' => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ), |
|
140 | + 'wpi-pending' => _x('Pending payment', 'Invoice status', 'invoicing'), |
|
141 | + 'publish' => _x('Paid', 'Invoice status', 'invoicing'), |
|
142 | + 'wpi-processing' => _x('Processing', 'Invoice status', 'invoicing'), |
|
143 | + 'wpi-onhold' => _x('On hold', 'Invoice status', 'invoicing'), |
|
144 | + 'wpi-cancelled' => _x('Cancelled', 'Invoice status', 'invoicing'), |
|
145 | + 'wpi-refunded' => _x('Refunded', 'Invoice status', 'invoicing'), |
|
146 | + 'wpi-failed' => _x('Failed', 'Invoice status', 'invoicing'), |
|
147 | + 'wpi-renewal' => _x('Renewal Payment', 'Invoice status', 'invoicing'), |
|
148 | 148 | ); |
149 | 149 | |
150 | - if ( $draft ) { |
|
151 | - $invoice_statuses['draft'] = __( 'Draft', 'invoicing' ); |
|
150 | + if ($draft) { |
|
151 | + $invoice_statuses['draft'] = __('Draft', 'invoicing'); |
|
152 | 152 | } |
153 | 153 | |
154 | - if ( $trashed ) { |
|
155 | - $invoice_statuses['trash'] = __( 'Trash', 'invoicing' ); |
|
154 | + if ($trashed) { |
|
155 | + $invoice_statuses['trash'] = __('Trash', 'invoicing'); |
|
156 | 156 | } |
157 | 157 | |
158 | - if ( $invoice instanceof WPInv_Invoice ) { |
|
158 | + if ($invoice instanceof WPInv_Invoice) { |
|
159 | 159 | $invoice = $invoice->get_post_type(); |
160 | 160 | } |
161 | 161 | |
162 | - return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice ); |
|
162 | + return apply_filters('wpinv_statuses', $invoice_statuses, $invoice); |
|
163 | 163 | } |
164 | 164 | |
165 | 165 | /** |
@@ -168,11 +168,11 @@ discard block |
||
168 | 168 | * @param string $status The raw status |
169 | 169 | * @param string|WPInv_Invoice $invoice The invoice object|post type|type |
170 | 170 | */ |
171 | -function wpinv_status_nicename( $status, $invoice = false ) { |
|
172 | - $statuses = wpinv_get_invoice_statuses( true, true, $invoice ); |
|
173 | - $status = isset( $statuses[$status] ) ? $statuses[$status] : $status; |
|
171 | +function wpinv_status_nicename($status, $invoice = false) { |
|
172 | + $statuses = wpinv_get_invoice_statuses(true, true, $invoice); |
|
173 | + $status = isset($statuses[$status]) ? $statuses[$status] : $status; |
|
174 | 174 | |
175 | - return sanitize_text_field( $status ); |
|
175 | + return sanitize_text_field($status); |
|
176 | 176 | } |
177 | 177 | |
178 | 178 | /** |
@@ -180,13 +180,13 @@ discard block |
||
180 | 180 | * |
181 | 181 | * @param string $current |
182 | 182 | */ |
183 | -function wpinv_get_currency( $current = '' ) { |
|
183 | +function wpinv_get_currency($current = '') { |
|
184 | 184 | |
185 | - if ( empty( $current ) ) { |
|
186 | - $current = apply_filters( 'wpinv_currency', wpinv_get_option( 'currency', 'USD' ) ); |
|
185 | + if (empty($current)) { |
|
186 | + $current = apply_filters('wpinv_currency', wpinv_get_option('currency', 'USD')); |
|
187 | 187 | } |
188 | 188 | |
189 | - return trim( strtoupper( $current ) ); |
|
189 | + return trim(strtoupper($current)); |
|
190 | 190 | } |
191 | 191 | |
192 | 192 | /** |
@@ -194,25 +194,25 @@ discard block |
||
194 | 194 | * |
195 | 195 | * @param string|null $currency The currency code. Defaults to the default currency. |
196 | 196 | */ |
197 | -function wpinv_currency_symbol( $currency = null ) { |
|
197 | +function wpinv_currency_symbol($currency = null) { |
|
198 | 198 | |
199 | 199 | // Prepare the currency. |
200 | - $currency = empty( $currency ) ? wpinv_get_currency() : wpinv_clean( $currency ); |
|
200 | + $currency = empty($currency) ? wpinv_get_currency() : wpinv_clean($currency); |
|
201 | 201 | |
202 | 202 | // Fetch all symbols. |
203 | 203 | $symbols = wpinv_get_currency_symbols(); |
204 | 204 | |
205 | 205 | // Fetch this currencies symbol. |
206 | - $currency_symbol = isset( $symbols[$currency] ) ? $symbols[$currency] : $currency; |
|
206 | + $currency_symbol = isset($symbols[$currency]) ? $symbols[$currency] : $currency; |
|
207 | 207 | |
208 | 208 | // Filter the symbol. |
209 | - return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency ); |
|
209 | + return apply_filters('wpinv_currency_symbol', $currency_symbol, $currency); |
|
210 | 210 | } |
211 | 211 | |
212 | 212 | function wpinv_currency_position() { |
213 | - $position = wpinv_get_option( 'currency_position', 'left' ); |
|
213 | + $position = wpinv_get_option('currency_position', 'left'); |
|
214 | 214 | |
215 | - return apply_filters( 'wpinv_currency_position', $position ); |
|
215 | + return apply_filters('wpinv_currency_position', $position); |
|
216 | 216 | } |
217 | 217 | |
218 | 218 | /** |
@@ -220,13 +220,13 @@ discard block |
||
220 | 220 | * |
221 | 221 | * @param $string|null $current |
222 | 222 | */ |
223 | -function wpinv_thousands_separator( $current = null ) { |
|
223 | +function wpinv_thousands_separator($current = null) { |
|
224 | 224 | |
225 | - if ( null == $current ) { |
|
226 | - $current = wpinv_get_option( 'thousands_separator', ',' ); |
|
225 | + if (null == $current) { |
|
226 | + $current = wpinv_get_option('thousands_separator', ','); |
|
227 | 227 | } |
228 | 228 | |
229 | - return trim( $current ); |
|
229 | + return trim($current); |
|
230 | 230 | } |
231 | 231 | |
232 | 232 | /** |
@@ -234,13 +234,13 @@ discard block |
||
234 | 234 | * |
235 | 235 | * @param $string|null $current |
236 | 236 | */ |
237 | -function wpinv_decimal_separator( $current = null ) { |
|
237 | +function wpinv_decimal_separator($current = null) { |
|
238 | 238 | |
239 | - if ( null == $current ) { |
|
240 | - $current = wpinv_get_option( 'decimal_separator', '.' ); |
|
239 | + if (null == $current) { |
|
240 | + $current = wpinv_get_option('decimal_separator', '.'); |
|
241 | 241 | } |
242 | 242 | |
243 | - return trim( $current ); |
|
243 | + return trim($current); |
|
244 | 244 | } |
245 | 245 | |
246 | 246 | /** |
@@ -248,27 +248,27 @@ discard block |
||
248 | 248 | * |
249 | 249 | * @param $string|null $current |
250 | 250 | */ |
251 | -function wpinv_decimals( $current = null ) { |
|
251 | +function wpinv_decimals($current = null) { |
|
252 | 252 | |
253 | - if ( null == $current ) { |
|
254 | - $current = wpinv_get_option( 'decimals', 2 ); |
|
253 | + if (null == $current) { |
|
254 | + $current = wpinv_get_option('decimals', 2); |
|
255 | 255 | } |
256 | 256 | |
257 | - return absint( $current ); |
|
257 | + return absint($current); |
|
258 | 258 | } |
259 | 259 | |
260 | 260 | /** |
261 | 261 | * Retrieves a list of all supported currencies. |
262 | 262 | */ |
263 | 263 | function wpinv_get_currencies() { |
264 | - return apply_filters( 'wpinv_currencies', wpinv_get_data( 'currencies' ) ); |
|
264 | + return apply_filters('wpinv_currencies', wpinv_get_data('currencies')); |
|
265 | 265 | } |
266 | 266 | |
267 | 267 | /** |
268 | 268 | * Retrieves a list of all currency symbols. |
269 | 269 | */ |
270 | 270 | function wpinv_get_currency_symbols() { |
271 | - return apply_filters( 'wpinv_currency_symbols', wpinv_get_data( 'currency-symbols' ) ); |
|
271 | + return apply_filters('wpinv_currency_symbols', wpinv_get_data('currency-symbols')); |
|
272 | 272 | } |
273 | 273 | |
274 | 274 | /** |
@@ -280,7 +280,7 @@ discard block |
||
280 | 280 | $currency_pos = wpinv_currency_position(); |
281 | 281 | $format = '%1$s%2$s'; |
282 | 282 | |
283 | - switch ( $currency_pos ) { |
|
283 | + switch ($currency_pos) { |
|
284 | 284 | case 'left': |
285 | 285 | $format = '%1$s%2$s'; |
286 | 286 | break; |
@@ -295,7 +295,7 @@ discard block |
||
295 | 295 | break; |
296 | 296 | } |
297 | 297 | |
298 | - return apply_filters( 'getpaid_price_format', $format, $currency_pos ); |
|
298 | + return apply_filters('getpaid_price_format', $format, $currency_pos); |
|
299 | 299 | } |
300 | 300 | |
301 | 301 | /** |
@@ -305,25 +305,25 @@ discard block |
||
305 | 305 | * @param string $currency Currency. |
306 | 306 | * @return string |
307 | 307 | */ |
308 | -function wpinv_price( $amount = 0, $currency = '' ) { |
|
308 | +function wpinv_price($amount = 0, $currency = '') { |
|
309 | 309 | |
310 | 310 | // Backwards compatibility. |
311 | - $amount = wpinv_sanitize_amount( $amount ); |
|
311 | + $amount = wpinv_sanitize_amount($amount); |
|
312 | 312 | |
313 | 313 | // Prepare variables. |
314 | - $currency = wpinv_get_currency( $currency ); |
|
314 | + $currency = wpinv_get_currency($currency); |
|
315 | 315 | $amount = (float) $amount; |
316 | 316 | $unformatted_amount = $amount; |
317 | 317 | $negative = $amount < 0; |
318 | - $amount = apply_filters( 'getpaid_raw_amount', floatval( $negative ? $amount * -1 : $amount ) ); |
|
319 | - $amount = wpinv_format_amount( $amount ); |
|
318 | + $amount = apply_filters('getpaid_raw_amount', floatval($negative ? $amount * -1 : $amount)); |
|
319 | + $amount = wpinv_format_amount($amount); |
|
320 | 320 | |
321 | 321 | // Format the amount. |
322 | 322 | $format = getpaid_get_price_format(); |
323 | - $formatted_amount = ( $negative ? '-' : '' ) . sprintf( $format, '<span class="getpaid-currency__symbol">' . wpinv_currency_symbol( $currency ) . '</span>', $amount ); |
|
323 | + $formatted_amount = ($negative ? '-' : '') . sprintf($format, '<span class="getpaid-currency__symbol">' . wpinv_currency_symbol($currency) . '</span>', $amount); |
|
324 | 324 | |
325 | 325 | // Filter the formatting. |
326 | - return apply_filters( 'wpinv_price', $formatted_amount, $amount, $currency, $unformatted_amount ); |
|
326 | + return apply_filters('wpinv_price', $formatted_amount, $amount, $currency, $unformatted_amount); |
|
327 | 327 | } |
328 | 328 | |
329 | 329 | /** |
@@ -334,25 +334,25 @@ discard block |
||
334 | 334 | * @param bool $calculate Whether or not to apply separators. |
335 | 335 | * @return string |
336 | 336 | */ |
337 | -function wpinv_format_amount( $amount, $decimals = null, $calculate = false ) { |
|
337 | +function wpinv_format_amount($amount, $decimals = null, $calculate = false) { |
|
338 | 338 | $thousands_sep = wpinv_thousands_separator(); |
339 | 339 | $decimal_sep = wpinv_decimal_separator(); |
340 | - $decimals = wpinv_decimals( $decimals ); |
|
341 | - $amount = wpinv_sanitize_amount( $amount ); |
|
340 | + $decimals = wpinv_decimals($decimals); |
|
341 | + $amount = wpinv_sanitize_amount($amount); |
|
342 | 342 | |
343 | - if ( $calculate ) { |
|
343 | + if ($calculate) { |
|
344 | 344 | return $amount; |
345 | 345 | } |
346 | 346 | |
347 | 347 | // Fomart the amount. |
348 | - return number_format( $amount, $decimals, $decimal_sep, $thousands_sep ); |
|
348 | + return number_format($amount, $decimals, $decimal_sep, $thousands_sep); |
|
349 | 349 | } |
350 | 350 | |
351 | -function wpinv_sanitize_key( $key ) { |
|
351 | +function wpinv_sanitize_key($key) { |
|
352 | 352 | $raw_key = $key; |
353 | - $key = preg_replace( '/[^a-zA-Z0-9_\-\.\:\/]/', '', $key ); |
|
353 | + $key = preg_replace('/[^a-zA-Z0-9_\-\.\:\/]/', '', $key); |
|
354 | 354 | |
355 | - return apply_filters( 'wpinv_sanitize_key', $key, $raw_key ); |
|
355 | + return apply_filters('wpinv_sanitize_key', $key, $raw_key); |
|
356 | 356 | } |
357 | 357 | |
358 | 358 | /** |
@@ -360,8 +360,8 @@ discard block |
||
360 | 360 | * |
361 | 361 | * @param $str the file whose extension should be retrieved. |
362 | 362 | */ |
363 | -function wpinv_get_file_extension( $str ) { |
|
364 | - $filetype = wp_check_filetype( $str ); |
|
363 | +function wpinv_get_file_extension($str) { |
|
364 | + $filetype = wp_check_filetype($str); |
|
365 | 365 | return $filetype['ext']; |
366 | 366 | } |
367 | 367 | |
@@ -370,16 +370,16 @@ discard block |
||
370 | 370 | * |
371 | 371 | * @param string $string |
372 | 372 | */ |
373 | -function wpinv_string_is_image_url( $string ) { |
|
374 | - $extension = strtolower( wpinv_get_file_extension( $string ) ); |
|
375 | - return in_array( $extension, array( 'jpeg', 'jpg', 'png', 'gif', 'ico' ), true ); |
|
373 | +function wpinv_string_is_image_url($string) { |
|
374 | + $extension = strtolower(wpinv_get_file_extension($string)); |
|
375 | + return in_array($extension, array('jpeg', 'jpg', 'png', 'gif', 'ico'), true); |
|
376 | 376 | } |
377 | 377 | |
378 | 378 | /** |
379 | 379 | * Returns the current URL. |
380 | 380 | */ |
381 | 381 | function wpinv_get_current_page_url() { |
382 | - return ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; |
|
382 | + return (is_ssl() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; |
|
383 | 383 | } |
384 | 384 | |
385 | 385 | /** |
@@ -389,46 +389,46 @@ discard block |
||
389 | 389 | * @param string $name Constant name. |
390 | 390 | * @param mixed $value Value. |
391 | 391 | */ |
392 | -function getpaid_maybe_define_constant( $name, $value ) { |
|
393 | - if ( ! defined( $name ) ) { |
|
394 | - define( $name, $value ); |
|
392 | +function getpaid_maybe_define_constant($name, $value) { |
|
393 | + if (!defined($name)) { |
|
394 | + define($name, $value); |
|
395 | 395 | } |
396 | 396 | } |
397 | 397 | |
398 | 398 | function wpinv_get_php_arg_separator_output() { |
399 | - return ini_get( 'arg_separator.output' ); |
|
399 | + return ini_get('arg_separator.output'); |
|
400 | 400 | } |
401 | 401 | |
402 | -function wpinv_rgb_from_hex( $color ) { |
|
403 | - $color = str_replace( '#', '', $color ); |
|
402 | +function wpinv_rgb_from_hex($color) { |
|
403 | + $color = str_replace('#', '', $color); |
|
404 | 404 | |
405 | 405 | // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF" |
406 | - $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color ); |
|
407 | - if ( empty( $color ) ) { |
|
406 | + $color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color); |
|
407 | + if (empty($color)) { |
|
408 | 408 | return NULL; |
409 | 409 | } |
410 | 410 | |
411 | - $color = str_split( $color ); |
|
411 | + $color = str_split($color); |
|
412 | 412 | |
413 | 413 | $rgb = array(); |
414 | - $rgb['R'] = hexdec( $color[0] . $color[1] ); |
|
415 | - $rgb['G'] = hexdec( $color[2] . $color[3] ); |
|
416 | - $rgb['B'] = hexdec( $color[4] . $color[5] ); |
|
414 | + $rgb['R'] = hexdec($color[0] . $color[1]); |
|
415 | + $rgb['G'] = hexdec($color[2] . $color[3]); |
|
416 | + $rgb['B'] = hexdec($color[4] . $color[5]); |
|
417 | 417 | |
418 | 418 | return $rgb; |
419 | 419 | } |
420 | 420 | |
421 | -function wpinv_hex_darker( $color, $factor = 30 ) { |
|
422 | - $base = wpinv_rgb_from_hex( $color ); |
|
421 | +function wpinv_hex_darker($color, $factor = 30) { |
|
422 | + $base = wpinv_rgb_from_hex($color); |
|
423 | 423 | $color = '#'; |
424 | 424 | |
425 | - foreach ( $base as $k => $v ) { |
|
425 | + foreach ($base as $k => $v) { |
|
426 | 426 | $amount = $v / 100; |
427 | - $amount = round( $amount * $factor ); |
|
427 | + $amount = round($amount * $factor); |
|
428 | 428 | $new_decimal = $v - $amount; |
429 | 429 | |
430 | - $new_hex_component = dechex( $new_decimal ); |
|
431 | - if ( strlen( $new_hex_component ) < 2 ) { |
|
430 | + $new_hex_component = dechex($new_decimal); |
|
431 | + if (strlen($new_hex_component) < 2) { |
|
432 | 432 | $new_hex_component = "0" . $new_hex_component; |
433 | 433 | } |
434 | 434 | $color .= $new_hex_component; |
@@ -437,18 +437,18 @@ discard block |
||
437 | 437 | return $color; |
438 | 438 | } |
439 | 439 | |
440 | -function wpinv_hex_lighter( $color, $factor = 30 ) { |
|
441 | - $base = wpinv_rgb_from_hex( $color ); |
|
440 | +function wpinv_hex_lighter($color, $factor = 30) { |
|
441 | + $base = wpinv_rgb_from_hex($color); |
|
442 | 442 | $color = '#'; |
443 | 443 | |
444 | - foreach ( $base as $k => $v ) { |
|
444 | + foreach ($base as $k => $v) { |
|
445 | 445 | $amount = 255 - $v; |
446 | 446 | $amount = $amount / 100; |
447 | - $amount = round( $amount * $factor ); |
|
447 | + $amount = round($amount * $factor); |
|
448 | 448 | $new_decimal = $v + $amount; |
449 | 449 | |
450 | - $new_hex_component = dechex( $new_decimal ); |
|
451 | - if ( strlen( $new_hex_component ) < 2 ) { |
|
450 | + $new_hex_component = dechex($new_decimal); |
|
451 | + if (strlen($new_hex_component) < 2) { |
|
452 | 452 | $new_hex_component = "0" . $new_hex_component; |
453 | 453 | } |
454 | 454 | $color .= $new_hex_component; |
@@ -457,22 +457,22 @@ discard block |
||
457 | 457 | return $color; |
458 | 458 | } |
459 | 459 | |
460 | -function wpinv_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) { |
|
461 | - $hex = str_replace( '#', '', $color ); |
|
460 | +function wpinv_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') { |
|
461 | + $hex = str_replace('#', '', $color); |
|
462 | 462 | |
463 | - $c_r = hexdec( substr( $hex, 0, 2 ) ); |
|
464 | - $c_g = hexdec( substr( $hex, 2, 2 ) ); |
|
465 | - $c_b = hexdec( substr( $hex, 4, 2 ) ); |
|
463 | + $c_r = hexdec(substr($hex, 0, 2)); |
|
464 | + $c_g = hexdec(substr($hex, 2, 2)); |
|
465 | + $c_b = hexdec(substr($hex, 4, 2)); |
|
466 | 466 | |
467 | - $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000; |
|
467 | + $brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000; |
|
468 | 468 | |
469 | 469 | return $brightness > 155 ? $dark : $light; |
470 | 470 | } |
471 | 471 | |
472 | -function wpinv_format_hex( $hex ) { |
|
473 | - $hex = trim( str_replace( '#', '', $hex ) ); |
|
472 | +function wpinv_format_hex($hex) { |
|
473 | + $hex = trim(str_replace('#', '', $hex)); |
|
474 | 474 | |
475 | - if ( strlen( $hex ) == 3 ) { |
|
475 | + if (strlen($hex) == 3) { |
|
476 | 476 | $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2]; |
477 | 477 | } |
478 | 478 | |
@@ -492,12 +492,12 @@ discard block |
||
492 | 492 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
493 | 493 | * @return string |
494 | 494 | */ |
495 | -function wpinv_utf8_strimwidth( $str, $start, $width, $trimmaker = '', $encoding = 'UTF-8' ) { |
|
496 | - if ( function_exists( 'mb_strimwidth' ) ) { |
|
497 | - return mb_strimwidth( $str, $start, $width, $trimmaker, $encoding ); |
|
495 | +function wpinv_utf8_strimwidth($str, $start, $width, $trimmaker = '', $encoding = 'UTF-8') { |
|
496 | + if (function_exists('mb_strimwidth')) { |
|
497 | + return mb_strimwidth($str, $start, $width, $trimmaker, $encoding); |
|
498 | 498 | } |
499 | 499 | |
500 | - return wpinv_utf8_substr( $str, $start, $width, $encoding ) . $trimmaker; |
|
500 | + return wpinv_utf8_substr($str, $start, $width, $encoding) . $trimmaker; |
|
501 | 501 | } |
502 | 502 | |
503 | 503 | /** |
@@ -509,28 +509,28 @@ discard block |
||
509 | 509 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
510 | 510 | * @return int Returns the number of characters in string. |
511 | 511 | */ |
512 | -function wpinv_utf8_strlen( $str, $encoding = 'UTF-8' ) { |
|
513 | - if ( function_exists( 'mb_strlen' ) ) { |
|
514 | - return mb_strlen( $str, $encoding ); |
|
512 | +function wpinv_utf8_strlen($str, $encoding = 'UTF-8') { |
|
513 | + if (function_exists('mb_strlen')) { |
|
514 | + return mb_strlen($str, $encoding); |
|
515 | 515 | } |
516 | 516 | |
517 | - return strlen( $str ); |
|
517 | + return strlen($str); |
|
518 | 518 | } |
519 | 519 | |
520 | -function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) { |
|
521 | - if ( function_exists( 'mb_strtolower' ) ) { |
|
522 | - return mb_strtolower( $str, $encoding ); |
|
520 | +function wpinv_utf8_strtolower($str, $encoding = 'UTF-8') { |
|
521 | + if (function_exists('mb_strtolower')) { |
|
522 | + return mb_strtolower($str, $encoding); |
|
523 | 523 | } |
524 | 524 | |
525 | - return strtolower( $str ); |
|
525 | + return strtolower($str); |
|
526 | 526 | } |
527 | 527 | |
528 | -function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) { |
|
529 | - if ( function_exists( 'mb_strtoupper' ) ) { |
|
530 | - return mb_strtoupper( $str, $encoding ); |
|
528 | +function wpinv_utf8_strtoupper($str, $encoding = 'UTF-8') { |
|
529 | + if (function_exists('mb_strtoupper')) { |
|
530 | + return mb_strtoupper($str, $encoding); |
|
531 | 531 | } |
532 | 532 | |
533 | - return strtoupper( $str ); |
|
533 | + return strtoupper($str); |
|
534 | 534 | } |
535 | 535 | |
536 | 536 | /** |
@@ -544,12 +544,12 @@ discard block |
||
544 | 544 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
545 | 545 | * @return int Returns the position of the first occurrence of search in the string. |
546 | 546 | */ |
547 | -function wpinv_utf8_strpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) { |
|
548 | - if ( function_exists( 'mb_strpos' ) ) { |
|
549 | - return mb_strpos( $str, $find, $offset, $encoding ); |
|
547 | +function wpinv_utf8_strpos($str, $find, $offset = 0, $encoding = 'UTF-8') { |
|
548 | + if (function_exists('mb_strpos')) { |
|
549 | + return mb_strpos($str, $find, $offset, $encoding); |
|
550 | 550 | } |
551 | 551 | |
552 | - return strpos( $str, $find, $offset ); |
|
552 | + return strpos($str, $find, $offset); |
|
553 | 553 | } |
554 | 554 | |
555 | 555 | /** |
@@ -563,12 +563,12 @@ discard block |
||
563 | 563 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
564 | 564 | * @return int Returns the position of the last occurrence of search. |
565 | 565 | */ |
566 | -function wpinv_utf8_strrpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) { |
|
567 | - if ( function_exists( 'mb_strrpos' ) ) { |
|
568 | - return mb_strrpos( $str, $find, $offset, $encoding ); |
|
566 | +function wpinv_utf8_strrpos($str, $find, $offset = 0, $encoding = 'UTF-8') { |
|
567 | + if (function_exists('mb_strrpos')) { |
|
568 | + return mb_strrpos($str, $find, $offset, $encoding); |
|
569 | 569 | } |
570 | 570 | |
571 | - return strrpos( $str, $find, $offset ); |
|
571 | + return strrpos($str, $find, $offset); |
|
572 | 572 | } |
573 | 573 | |
574 | 574 | /** |
@@ -583,16 +583,16 @@ discard block |
||
583 | 583 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
584 | 584 | * @return string |
585 | 585 | */ |
586 | -function wpinv_utf8_substr( $str, $start, $length = null, $encoding = 'UTF-8' ) { |
|
587 | - if ( function_exists( 'mb_substr' ) ) { |
|
588 | - if ( $length === null ) { |
|
589 | - return mb_substr( $str, $start, wpinv_utf8_strlen( $str, $encoding ), $encoding ); |
|
586 | +function wpinv_utf8_substr($str, $start, $length = null, $encoding = 'UTF-8') { |
|
587 | + if (function_exists('mb_substr')) { |
|
588 | + if ($length === null) { |
|
589 | + return mb_substr($str, $start, wpinv_utf8_strlen($str, $encoding), $encoding); |
|
590 | 590 | } else { |
591 | - return mb_substr( $str, $start, $length, $encoding ); |
|
591 | + return mb_substr($str, $start, $length, $encoding); |
|
592 | 592 | } |
593 | 593 | } |
594 | 594 | |
595 | - return substr( $str, $start, $length ); |
|
595 | + return substr($str, $start, $length); |
|
596 | 596 | } |
597 | 597 | |
598 | 598 | /** |
@@ -604,48 +604,48 @@ discard block |
||
604 | 604 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
605 | 605 | * @return string The width of string. |
606 | 606 | */ |
607 | -function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) { |
|
608 | - if ( function_exists( 'mb_strwidth' ) ) { |
|
609 | - return mb_strwidth( $str, $encoding ); |
|
607 | +function wpinv_utf8_strwidth($str, $encoding = 'UTF-8') { |
|
608 | + if (function_exists('mb_strwidth')) { |
|
609 | + return mb_strwidth($str, $encoding); |
|
610 | 610 | } |
611 | 611 | |
612 | - return wpinv_utf8_strlen( $str, $encoding ); |
|
612 | + return wpinv_utf8_strlen($str, $encoding); |
|
613 | 613 | } |
614 | 614 | |
615 | -function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) { |
|
616 | - if ( function_exists( 'mb_strlen' ) ) { |
|
617 | - $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding ); |
|
615 | +function wpinv_utf8_ucfirst($str, $lower_str_end = false, $encoding = 'UTF-8') { |
|
616 | + if (function_exists('mb_strlen')) { |
|
617 | + $first_letter = wpinv_utf8_strtoupper(wpinv_utf8_substr($str, 0, 1, $encoding), $encoding); |
|
618 | 618 | $str_end = ""; |
619 | 619 | |
620 | - if ( $lower_str_end ) { |
|
621 | - $str_end = wpinv_utf8_strtolower( wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ), $encoding ); |
|
620 | + if ($lower_str_end) { |
|
621 | + $str_end = wpinv_utf8_strtolower(wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding), $encoding); |
|
622 | 622 | } else { |
623 | - $str_end = wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ); |
|
623 | + $str_end = wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding); |
|
624 | 624 | } |
625 | 625 | |
626 | 626 | return $first_letter . $str_end; |
627 | 627 | } |
628 | 628 | |
629 | - return ucfirst( $str ); |
|
629 | + return ucfirst($str); |
|
630 | 630 | } |
631 | 631 | |
632 | -function wpinv_utf8_ucwords( $str, $encoding = 'UTF-8' ) { |
|
633 | - if ( function_exists( 'mb_convert_case' ) ) { |
|
634 | - return mb_convert_case( $str, MB_CASE_TITLE, $encoding ); |
|
632 | +function wpinv_utf8_ucwords($str, $encoding = 'UTF-8') { |
|
633 | + if (function_exists('mb_convert_case')) { |
|
634 | + return mb_convert_case($str, MB_CASE_TITLE, $encoding); |
|
635 | 635 | } |
636 | 636 | |
637 | - return ucwords( $str ); |
|
637 | + return ucwords($str); |
|
638 | 638 | } |
639 | 639 | |
640 | -function wpinv_period_in_days( $period, $unit ) { |
|
641 | - $period = absint( $period ); |
|
640 | +function wpinv_period_in_days($period, $unit) { |
|
641 | + $period = absint($period); |
|
642 | 642 | |
643 | - if ( $period > 0 ) { |
|
644 | - if ( in_array( strtolower( $unit ), array( 'w', 'week', 'weeks' ) ) ) { |
|
643 | + if ($period > 0) { |
|
644 | + if (in_array(strtolower($unit), array('w', 'week', 'weeks'))) { |
|
645 | 645 | $period = $period * 7; |
646 | - } else if ( in_array( strtolower( $unit ), array( 'm', 'month', 'months' ) ) ) { |
|
646 | + } else if (in_array(strtolower($unit), array('m', 'month', 'months'))) { |
|
647 | 647 | $period = $period * 30; |
648 | - } else if ( in_array( strtolower( $unit ), array( 'y', 'year', 'years' ) ) ) { |
|
648 | + } else if (in_array(strtolower($unit), array('y', 'year', 'years'))) { |
|
649 | 649 | $period = $period * 365; |
650 | 650 | } |
651 | 651 | } |
@@ -653,14 +653,14 @@ discard block |
||
653 | 653 | return $period; |
654 | 654 | } |
655 | 655 | |
656 | -function wpinv_cal_days_in_month( $calendar, $month, $year ) { |
|
657 | - if ( function_exists( 'cal_days_in_month' ) ) { |
|
658 | - return cal_days_in_month( $calendar, $month, $year ); |
|
656 | +function wpinv_cal_days_in_month($calendar, $month, $year) { |
|
657 | + if (function_exists('cal_days_in_month')) { |
|
658 | + return cal_days_in_month($calendar, $month, $year); |
|
659 | 659 | } |
660 | 660 | |
661 | 661 | // Fallback in case the calendar extension is not loaded in PHP |
662 | 662 | // Only supports Gregorian calendar |
663 | - return date( 't', mktime( 0, 0, 0, $month, 1, $year ) ); |
|
663 | + return date('t', mktime(0, 0, 0, $month, 1, $year)); |
|
664 | 664 | } |
665 | 665 | |
666 | 666 | /** |
@@ -671,12 +671,12 @@ discard block |
||
671 | 671 | * |
672 | 672 | * @return string |
673 | 673 | */ |
674 | -function wpi_help_tip( $tip, $allow_html = false ) { |
|
674 | +function wpi_help_tip($tip, $allow_html = false) { |
|
675 | 675 | |
676 | - if ( $allow_html ) { |
|
677 | - $tip = wpi_sanitize_tooltip( $tip ); |
|
676 | + if ($allow_html) { |
|
677 | + $tip = wpi_sanitize_tooltip($tip); |
|
678 | 678 | } else { |
679 | - $tip = esc_attr( $tip ); |
|
679 | + $tip = esc_attr($tip); |
|
680 | 680 | } |
681 | 681 | |
682 | 682 | return '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>'; |
@@ -690,8 +690,8 @@ discard block |
||
690 | 690 | * @param string $var |
691 | 691 | * @return string |
692 | 692 | */ |
693 | -function wpi_sanitize_tooltip( $var ) { |
|
694 | - return wp_kses( html_entity_decode( $var ), array( |
|
693 | +function wpi_sanitize_tooltip($var) { |
|
694 | + return wp_kses(html_entity_decode($var), array( |
|
695 | 695 | 'br' => array(), |
696 | 696 | 'em' => array(), |
697 | 697 | 'strong' => array(), |
@@ -702,7 +702,7 @@ discard block |
||
702 | 702 | 'li' => array(), |
703 | 703 | 'ol' => array(), |
704 | 704 | 'p' => array(), |
705 | - ) ); |
|
705 | + )); |
|
706 | 706 | } |
707 | 707 | |
708 | 708 | /** |
@@ -712,7 +712,7 @@ discard block |
||
712 | 712 | */ |
713 | 713 | function wpinv_get_screen_ids() { |
714 | 714 | |
715 | - $screen_id = sanitize_title( __( 'Invoicing', 'invoicing' ) ); |
|
715 | + $screen_id = sanitize_title(__('Invoicing', 'invoicing')); |
|
716 | 716 | |
717 | 717 | $screen_ids = array( |
718 | 718 | 'toplevel_page_' . $screen_id, |
@@ -731,10 +731,10 @@ discard block |
||
731 | 731 | 'getpaid_page_wpinv-reports', |
732 | 732 | 'getpaid_page_wpi-addons', |
733 | 733 | 'getpaid_page_wpinv-customers', |
734 | - 'gp-setup',// setup wizard |
|
734 | + 'gp-setup', // setup wizard |
|
735 | 735 | ); |
736 | 736 | |
737 | - return apply_filters( 'wpinv_screen_ids', $screen_ids ); |
|
737 | + return apply_filters('wpinv_screen_ids', $screen_ids); |
|
738 | 738 | } |
739 | 739 | |
740 | 740 | /** |
@@ -745,14 +745,14 @@ discard block |
||
745 | 745 | * @param array|string $list List of values. |
746 | 746 | * @return array Sanitized array of values. |
747 | 747 | */ |
748 | -function wpinv_parse_list( $list ) { |
|
748 | +function wpinv_parse_list($list) { |
|
749 | 749 | |
750 | - if ( empty( $list ) ) { |
|
750 | + if (empty($list)) { |
|
751 | 751 | $list = array(); |
752 | 752 | } |
753 | 753 | |
754 | - if ( ! is_array( $list ) ) { |
|
755 | - return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY ); |
|
754 | + if (!is_array($list)) { |
|
755 | + return preg_split('/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY); |
|
756 | 756 | } |
757 | 757 | |
758 | 758 | return $list; |
@@ -766,16 +766,16 @@ discard block |
||
766 | 766 | * @param string $key Type of data to fetch. |
767 | 767 | * @return mixed Fetched data. |
768 | 768 | */ |
769 | -function wpinv_get_data( $key ) { |
|
769 | +function wpinv_get_data($key) { |
|
770 | 770 | |
771 | 771 | // Try fetching it from the cache. |
772 | - $data = wp_cache_get( "wpinv-data-$key", 'wpinv' ); |
|
773 | - if( $data ) { |
|
772 | + $data = wp_cache_get("wpinv-data-$key", 'wpinv'); |
|
773 | + if ($data) { |
|
774 | 774 | return $data; |
775 | 775 | } |
776 | 776 | |
777 | - $data = apply_filters( "wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php" ); |
|
778 | - wp_cache_set( "wpinv-data-$key", $data, 'wpinv' ); |
|
777 | + $data = apply_filters("wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php"); |
|
778 | + wp_cache_set("wpinv-data-$key", $data, 'wpinv'); |
|
779 | 779 | |
780 | 780 | return $data; |
781 | 781 | } |
@@ -789,10 +789,10 @@ discard block |
||
789 | 789 | * @param bool $first_empty Whether or not the first item in the list should be empty |
790 | 790 | * @return mixed Fetched data. |
791 | 791 | */ |
792 | -function wpinv_maybe_add_empty_option( $options, $first_empty ) { |
|
792 | +function wpinv_maybe_add_empty_option($options, $first_empty) { |
|
793 | 793 | |
794 | - if ( ! empty( $options ) && $first_empty ) { |
|
795 | - return array_merge( array( '' => '' ), $options ); |
|
794 | + if (!empty($options) && $first_empty) { |
|
795 | + return array_merge(array('' => ''), $options); |
|
796 | 796 | } |
797 | 797 | return $options; |
798 | 798 | |
@@ -804,21 +804,21 @@ discard block |
||
804 | 804 | * @param mixed $var Data to sanitize. |
805 | 805 | * @return string|array |
806 | 806 | */ |
807 | -function wpinv_clean( $var ) { |
|
807 | +function wpinv_clean($var) { |
|
808 | 808 | |
809 | - if ( is_array( $var ) ) { |
|
810 | - return array_map( 'wpinv_clean', $var ); |
|
809 | + if (is_array($var)) { |
|
810 | + return array_map('wpinv_clean', $var); |
|
811 | 811 | } |
812 | 812 | |
813 | - if ( is_object( $var ) ) { |
|
814 | - $object_vars = get_object_vars( $var ); |
|
815 | - foreach ( $object_vars as $property_name => $property_value ) { |
|
816 | - $var->$property_name = wpinv_clean( $property_value ); |
|
813 | + if (is_object($var)) { |
|
814 | + $object_vars = get_object_vars($var); |
|
815 | + foreach ($object_vars as $property_name => $property_value) { |
|
816 | + $var->$property_name = wpinv_clean($property_value); |
|
817 | 817 | } |
818 | 818 | return $var; |
819 | 819 | } |
820 | 820 | |
821 | - return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var; |
|
821 | + return is_string($var) ? sanitize_text_field(stripslashes($var)) : $var; |
|
822 | 822 | } |
823 | 823 | |
824 | 824 | /** |
@@ -827,43 +827,43 @@ discard block |
||
827 | 827 | * @param string $str Data to convert. |
828 | 828 | * @return string|array |
829 | 829 | */ |
830 | -function getpaid_convert_price_string_to_options( $str ) { |
|
830 | +function getpaid_convert_price_string_to_options($str) { |
|
831 | 831 | |
832 | - $raw_options = array_map( 'trim', explode( ',', $str ) ); |
|
833 | - $options = array(); |
|
832 | + $raw_options = array_map('trim', explode(',', $str)); |
|
833 | + $options = array(); |
|
834 | 834 | |
835 | - foreach ( $raw_options as $option ) { |
|
835 | + foreach ($raw_options as $option) { |
|
836 | 836 | |
837 | - if ( '' == $option ) { |
|
837 | + if ('' == $option) { |
|
838 | 838 | continue; |
839 | 839 | } |
840 | 840 | |
841 | - $option = array_map( 'trim', explode( '|', $option ) ); |
|
841 | + $option = array_map('trim', explode('|', $option)); |
|
842 | 842 | |
843 | 843 | $price = null; |
844 | 844 | $label = null; |
845 | 845 | |
846 | - if ( isset( $option[0] ) && '' != $option[0] ) { |
|
847 | - $label = $option[0]; |
|
846 | + if (isset($option[0]) && '' != $option[0]) { |
|
847 | + $label = $option[0]; |
|
848 | 848 | } |
849 | 849 | |
850 | - if ( isset( $option[1] ) && '' != $option[1] ) { |
|
850 | + if (isset($option[1]) && '' != $option[1]) { |
|
851 | 851 | $price = $option[1]; |
852 | 852 | } |
853 | 853 | |
854 | - if ( ! isset( $price ) ) { |
|
854 | + if (!isset($price)) { |
|
855 | 855 | $price = $label; |
856 | 856 | } |
857 | 857 | |
858 | - if ( ! isset( $price ) || ! is_numeric( $price ) ) { |
|
858 | + if (!isset($price) || !is_numeric($price)) { |
|
859 | 859 | continue; |
860 | 860 | } |
861 | 861 | |
862 | - if ( ! isset( $label ) ) { |
|
862 | + if (!isset($label)) { |
|
863 | 863 | $label = $price; |
864 | 864 | } |
865 | 865 | |
866 | - $options[ "$label|$price" ] = $label; |
|
866 | + $options["$label|$price"] = $label; |
|
867 | 867 | } |
868 | 868 | |
869 | 869 | return $options; |
@@ -872,27 +872,27 @@ discard block |
||
872 | 872 | /** |
873 | 873 | * Returns the help tip. |
874 | 874 | */ |
875 | -function getpaid_get_help_tip( $tip, $additional_classes = '' ) { |
|
876 | - $additional_classes = sanitize_html_class( $additional_classes ); |
|
877 | - $tip = esc_attr__( $tip ); |
|
875 | +function getpaid_get_help_tip($tip, $additional_classes = '') { |
|
876 | + $additional_classes = sanitize_html_class($additional_classes); |
|
877 | + $tip = esc_attr__($tip); |
|
878 | 878 | return "<span class='wpi-help-tip dashicons dashicons-editor-help $additional_classes' title='$tip'></span>"; |
879 | 879 | } |
880 | 880 | |
881 | 881 | /** |
882 | 882 | * Formats a date |
883 | 883 | */ |
884 | -function getpaid_format_date( $date, $with_time = false ) { |
|
884 | +function getpaid_format_date($date, $with_time = false) { |
|
885 | 885 | |
886 | - if ( empty( $date ) || $date == '0000-00-00 00:00:00' ) { |
|
886 | + if (empty($date) || $date == '0000-00-00 00:00:00') { |
|
887 | 887 | return ''; |
888 | 888 | } |
889 | 889 | |
890 | 890 | $format = getpaid_date_format(); |
891 | 891 | |
892 | - if ( $with_time ) { |
|
892 | + if ($with_time) { |
|
893 | 893 | $format .= ' ' . getpaid_time_format(); |
894 | 894 | } |
895 | - return date_i18n( $format, strtotime( $date ) ); |
|
895 | + return date_i18n($format, strtotime($date)); |
|
896 | 896 | |
897 | 897 | } |
898 | 898 | |
@@ -901,9 +901,9 @@ discard block |
||
901 | 901 | * |
902 | 902 | * @return string |
903 | 903 | */ |
904 | -function getpaid_format_date_value( $date, $default = "—", $with_time = false ) { |
|
905 | - $date = getpaid_format_date( $date, $with_time ); |
|
906 | - return empty( $date ) ? $default : $date; |
|
904 | +function getpaid_format_date_value($date, $default = "—", $with_time = false) { |
|
905 | + $date = getpaid_format_date($date, $with_time); |
|
906 | + return empty($date) ? $default : $date; |
|
907 | 907 | } |
908 | 908 | |
909 | 909 | /** |
@@ -912,7 +912,7 @@ discard block |
||
912 | 912 | * @return string |
913 | 913 | */ |
914 | 914 | function getpaid_date_format() { |
915 | - return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) ); |
|
915 | + return apply_filters('getpaid_date_format', get_option('date_format')); |
|
916 | 916 | } |
917 | 917 | |
918 | 918 | /** |
@@ -921,7 +921,7 @@ discard block |
||
921 | 921 | * @return string |
922 | 922 | */ |
923 | 923 | function getpaid_time_format() { |
924 | - return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) ); |
|
924 | + return apply_filters('getpaid_time_format', get_option('time_format')); |
|
925 | 925 | } |
926 | 926 | |
927 | 927 | /** |
@@ -931,16 +931,16 @@ discard block |
||
931 | 931 | * @param integer $limit Limit size in characters. |
932 | 932 | * @return string |
933 | 933 | */ |
934 | -function getpaid_limit_length( $string, $limit ) { |
|
934 | +function getpaid_limit_length($string, $limit) { |
|
935 | 935 | $str_limit = $limit - 3; |
936 | 936 | |
937 | - if ( function_exists( 'mb_strimwidth' ) ) { |
|
938 | - if ( mb_strlen( $string ) > $limit ) { |
|
939 | - $string = mb_strimwidth( $string, 0, $str_limit ) . '...'; |
|
937 | + if (function_exists('mb_strimwidth')) { |
|
938 | + if (mb_strlen($string) > $limit) { |
|
939 | + $string = mb_strimwidth($string, 0, $str_limit) . '...'; |
|
940 | 940 | } |
941 | 941 | } else { |
942 | - if ( strlen( $string ) > $limit ) { |
|
943 | - $string = substr( $string, 0, $str_limit ) . '...'; |
|
942 | + if (strlen($string) > $limit) { |
|
943 | + $string = substr($string, 0, $str_limit) . '...'; |
|
944 | 944 | } |
945 | 945 | } |
946 | 946 | return $string; |
@@ -954,7 +954,7 @@ discard block |
||
954 | 954 | * @since 1.0.19 |
955 | 955 | */ |
956 | 956 | function getpaid_api() { |
957 | - return getpaid()->get( 'api' ); |
|
957 | + return getpaid()->get('api'); |
|
958 | 958 | } |
959 | 959 | |
960 | 960 | /** |
@@ -964,7 +964,7 @@ discard block |
||
964 | 964 | * @since 1.0.19 |
965 | 965 | */ |
966 | 966 | function getpaid_post_types() { |
967 | - return getpaid()->get( 'post_types' ); |
|
967 | + return getpaid()->get('post_types'); |
|
968 | 968 | } |
969 | 969 | |
970 | 970 | /** |
@@ -974,7 +974,7 @@ discard block |
||
974 | 974 | * @since 1.0.19 |
975 | 975 | */ |
976 | 976 | function getpaid_session() { |
977 | - return getpaid()->get( 'session' ); |
|
977 | + return getpaid()->get('session'); |
|
978 | 978 | } |
979 | 979 | |
980 | 980 | /** |
@@ -984,7 +984,7 @@ discard block |
||
984 | 984 | * @since 1.0.19 |
985 | 985 | */ |
986 | 986 | function getpaid_notes() { |
987 | - return getpaid()->get( 'notes' ); |
|
987 | + return getpaid()->get('notes'); |
|
988 | 988 | } |
989 | 989 | |
990 | 990 | /** |
@@ -993,7 +993,7 @@ discard block |
||
993 | 993 | * @return GetPaid_Admin |
994 | 994 | */ |
995 | 995 | function getpaid_admin() { |
996 | - return getpaid()->get( 'admin' ); |
|
996 | + return getpaid()->get('admin'); |
|
997 | 997 | } |
998 | 998 | |
999 | 999 | /** |
@@ -1003,8 +1003,8 @@ discard block |
||
1003 | 1003 | * @param string $base the base url |
1004 | 1004 | * @return string |
1005 | 1005 | */ |
1006 | -function getpaid_get_authenticated_action_url( $action, $base = false ) { |
|
1007 | - return wp_nonce_url( add_query_arg( 'getpaid-action', $action, $base ), 'getpaid-nonce', 'getpaid-nonce' ); |
|
1006 | +function getpaid_get_authenticated_action_url($action, $base = false) { |
|
1007 | + return wp_nonce_url(add_query_arg('getpaid-action', $action, $base), 'getpaid-nonce', 'getpaid-nonce'); |
|
1008 | 1008 | } |
1009 | 1009 | |
1010 | 1010 | /** |
@@ -1012,11 +1012,11 @@ discard block |
||
1012 | 1012 | * |
1013 | 1013 | * @return string |
1014 | 1014 | */ |
1015 | -function getpaid_get_post_type_label( $post_type, $plural = true ) { |
|
1015 | +function getpaid_get_post_type_label($post_type, $plural = true) { |
|
1016 | 1016 | |
1017 | - $post_type = get_post_type_object( $post_type ); |
|
1017 | + $post_type = get_post_type_object($post_type); |
|
1018 | 1018 | |
1019 | - if ( ! is_object( $post_type ) ) { |
|
1019 | + if (!is_object($post_type)) { |
|
1020 | 1020 | return null; |
1021 | 1021 | } |
1022 | 1022 | |
@@ -1029,18 +1029,18 @@ discard block |
||
1029 | 1029 | * |
1030 | 1030 | * @return mixed|null |
1031 | 1031 | */ |
1032 | -function getpaid_get_array_field( $array, $key, $secondary_key = null ) { |
|
1032 | +function getpaid_get_array_field($array, $key, $secondary_key = null) { |
|
1033 | 1033 | |
1034 | - if ( ! is_array( $array ) ) { |
|
1034 | + if (!is_array($array)) { |
|
1035 | 1035 | return null; |
1036 | 1036 | } |
1037 | 1037 | |
1038 | - if ( ! empty( $secondary_key ) ) { |
|
1039 | - $array = isset( $array[ $secondary_key ] ) ? $array[ $secondary_key ] : array(); |
|
1040 | - return getpaid_get_array_field( $array, $key ); |
|
1038 | + if (!empty($secondary_key)) { |
|
1039 | + $array = isset($array[$secondary_key]) ? $array[$secondary_key] : array(); |
|
1040 | + return getpaid_get_array_field($array, $key); |
|
1041 | 1041 | } |
1042 | 1042 | |
1043 | - return isset( $array[ $key ] ) ? $array[ $key ] : null; |
|
1043 | + return isset($array[$key]) ? $array[$key] : null; |
|
1044 | 1044 | |
1045 | 1045 | } |
1046 | 1046 | |
@@ -1049,12 +1049,12 @@ discard block |
||
1049 | 1049 | * |
1050 | 1050 | * @return array |
1051 | 1051 | */ |
1052 | -function getpaid_array_merge_if_empty( $args, $defaults ) { |
|
1052 | +function getpaid_array_merge_if_empty($args, $defaults) { |
|
1053 | 1053 | |
1054 | - foreach ( $defaults as $key => $value ) { |
|
1054 | + foreach ($defaults as $key => $value) { |
|
1055 | 1055 | |
1056 | - if ( array_key_exists( $key, $args ) && empty( $args[ $key ] ) ) { |
|
1057 | - $args[ $key ] = $value; |
|
1056 | + if (array_key_exists($key, $args) && empty($args[$key])) { |
|
1057 | + $args[$key] = $value; |
|
1058 | 1058 | } |
1059 | 1059 | |
1060 | 1060 | } |
@@ -13,300 +13,300 @@ |
||
13 | 13 | class GetPaid_Subscription_Notification_Emails { |
14 | 14 | |
15 | 15 | /** |
16 | - * The array of subscription email actions. |
|
17 | - * |
|
18 | - * @param array |
|
19 | - */ |
|
20 | - public $subscription_actions; |
|
16 | + * The array of subscription email actions. |
|
17 | + * |
|
18 | + * @param array |
|
19 | + */ |
|
20 | + public $subscription_actions; |
|
21 | 21 | |
22 | 22 | /** |
23 | - * Class constructor |
|
23 | + * Class constructor |
|
24 | 24 | * |
25 | - */ |
|
26 | - public function __construct() { |
|
27 | - |
|
28 | - $this->subscription_actions = apply_filters( |
|
29 | - 'getpaid_notification_email_subscription_triggers', |
|
30 | - array( |
|
31 | - 'getpaid_subscription_trialling' => 'subscription_trial', |
|
32 | - 'getpaid_subscription_cancelled' => 'subscription_cancelled', |
|
33 | - 'getpaid_subscription_expired' => 'subscription_expired', |
|
34 | - 'getpaid_subscription_completed' => 'subscription_complete', |
|
35 | - 'getpaid_daily_maintenance' => 'renewal_reminder', |
|
36 | - ) |
|
37 | - ); |
|
38 | - |
|
39 | - $this->init_hooks(); |
|
25 | + */ |
|
26 | + public function __construct() { |
|
27 | + |
|
28 | + $this->subscription_actions = apply_filters( |
|
29 | + 'getpaid_notification_email_subscription_triggers', |
|
30 | + array( |
|
31 | + 'getpaid_subscription_trialling' => 'subscription_trial', |
|
32 | + 'getpaid_subscription_cancelled' => 'subscription_cancelled', |
|
33 | + 'getpaid_subscription_expired' => 'subscription_expired', |
|
34 | + 'getpaid_subscription_completed' => 'subscription_complete', |
|
35 | + 'getpaid_daily_maintenance' => 'renewal_reminder', |
|
36 | + ) |
|
37 | + ); |
|
38 | + |
|
39 | + $this->init_hooks(); |
|
40 | 40 | |
41 | 41 | } |
42 | 42 | |
43 | 43 | /** |
44 | - * Registers email hooks. |
|
45 | - */ |
|
46 | - public function init_hooks() { |
|
47 | - |
|
48 | - add_filter( 'getpaid_get_email_merge_tags', array( $this, 'subscription_merge_tags' ), 10, 2 ); |
|
49 | - foreach ( $this->subscription_actions as $hook => $email_type ) { |
|
50 | - |
|
51 | - $email = new GetPaid_Notification_Email( $email_type ); |
|
52 | - |
|
53 | - if ( ! $email->is_active() ) { |
|
54 | - continue; |
|
55 | - } |
|
56 | - |
|
57 | - if ( method_exists( $this, $email_type ) ) { |
|
58 | - add_action( $hook, array( $this, $email_type ), 100, 2 ); |
|
59 | - continue; |
|
60 | - } |
|
61 | - |
|
62 | - do_action( 'getpaid_subscription_notification_email_register_hook', $email_type, $hook ); |
|
63 | - |
|
64 | - } |
|
65 | - |
|
66 | - } |
|
67 | - |
|
68 | - /** |
|
69 | - * Filters subscription merge tags. |
|
70 | - * |
|
71 | - * @param array $merge_tags |
|
72 | - * @param mixed|WPInv_Invoice|WPInv_Subscription $object |
|
73 | - */ |
|
74 | - public function subscription_merge_tags( $merge_tags, $object ) { |
|
75 | - |
|
76 | - if ( is_a( $object, 'WPInv_Subscription' ) ) { |
|
77 | - $merge_tags = array_merge( |
|
78 | - $merge_tags, |
|
79 | - $this->get_subscription_merge_tags( $object ) |
|
80 | - ); |
|
81 | - } |
|
82 | - |
|
83 | - return $merge_tags; |
|
84 | - |
|
85 | - } |
|
86 | - |
|
87 | - /** |
|
88 | - * Generates subscription merge tags. |
|
89 | - * |
|
90 | - * @param WPInv_Subscription $subscription |
|
91 | - * @return array |
|
92 | - */ |
|
93 | - public function get_subscription_merge_tags( $subscription ) { |
|
94 | - |
|
95 | - // Abort if it does not exist. |
|
96 | - if ( ! $subscription->get_id() ) { |
|
97 | - return array(); |
|
98 | - } |
|
99 | - |
|
100 | - $invoice = $subscription->get_parent_invoice(); |
|
101 | - return array( |
|
102 | - '{subscription_renewal_date}' => getpaid_format_date_value( $subscription->get_next_renewal_date(), __( 'Never', 'invoicing' ) ), |
|
103 | - '{subscription_created}' => getpaid_format_date_value( $subscription->get_date_created() ), |
|
104 | - '{subscription_status}' => sanitize_text_field( $subscription->get_status_label() ), |
|
105 | - '{subscription_profile_id}' => sanitize_text_field( $subscription->get_profile_id() ), |
|
106 | - '{subscription_id}' => absint( $subscription->get_id() ), |
|
107 | - '{subscription_recurring_amount}' => sanitize_text_field( wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ) ), |
|
108 | - '{subscription_initial_amount}' => sanitize_text_field( wpinv_price( $subscription->get_initial_amount(), $invoice->get_currency() ) ), |
|
109 | - '{subscription_recurring_period}' => getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ), |
|
110 | - '{subscription_bill_times}' => $subscription->get_bill_times(), |
|
111 | - '{subscription_url}' => esc_url( $subscription->get_view_url() ), |
|
112 | - ); |
|
113 | - |
|
114 | - } |
|
115 | - |
|
116 | - /** |
|
117 | - * Checks if we should send a notification for a subscription. |
|
118 | - * |
|
119 | - * @param WPInv_Invoice $invoice |
|
120 | - * @return bool |
|
121 | - */ |
|
122 | - public function should_send_notification( $invoice ) { |
|
123 | - return 0 != $invoice->get_id(); |
|
124 | - } |
|
125 | - |
|
126 | - /** |
|
127 | - * Returns notification recipients. |
|
128 | - * |
|
129 | - * @param WPInv_Invoice $invoice |
|
130 | - * @return array |
|
131 | - */ |
|
132 | - public function get_recipients( $invoice ) { |
|
133 | - $recipients = array( $invoice->get_email() ); |
|
134 | - |
|
135 | - $cc = $invoice->get_email_cc(); |
|
136 | - |
|
137 | - if ( ! empty( $cc ) ) { |
|
138 | - $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) ); |
|
139 | - $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) ); |
|
140 | - } |
|
141 | - |
|
142 | - return $recipients; |
|
143 | - } |
|
144 | - |
|
145 | - /** |
|
146 | - * Helper function to send an email. |
|
147 | - * |
|
148 | - * @param WPInv_Subscription $subscription |
|
149 | - * @param GetPaid_Notification_Email $email |
|
150 | - * @param string $type |
|
151 | - * @param array $extra_args Extra template args. |
|
152 | - */ |
|
153 | - public function send_email( $subscription, $email, $type, $extra_args = array() ) { |
|
154 | - |
|
155 | - // Abort in case the parent invoice does not exist. |
|
156 | - $invoice = $subscription->get_parent_invoice(); |
|
157 | - if ( ! $this->should_send_notification( $invoice ) ) { |
|
158 | - return; |
|
159 | - } |
|
160 | - |
|
161 | - if ( apply_filters( 'getpaid_skip_subscription_email', false, $type, $subscription ) ) { |
|
162 | - return; |
|
163 | - } |
|
164 | - |
|
165 | - do_action( 'getpaid_before_send_subscription_notification', $type, $subscription, $email ); |
|
166 | - |
|
167 | - $recipients = $this->get_recipients( $invoice ); |
|
168 | - $mailer = new GetPaid_Notification_Email_Sender(); |
|
169 | - $merge_tags = $email->get_merge_tags(); |
|
170 | - $content = $email->get_content( $merge_tags, $extra_args ); |
|
171 | - $subject = $email->add_merge_tags( $email->get_subject(), $merge_tags ); |
|
172 | - $attachments = $email->get_attachments(); |
|
173 | - |
|
174 | - $result = $mailer->send( |
|
175 | - apply_filters( 'getpaid_subscription_email_recipients', wpinv_parse_list( $recipients ), $email ), |
|
176 | - $subject, |
|
177 | - $content, |
|
178 | - $attachments |
|
179 | - ); |
|
180 | - |
|
181 | - // Maybe send a copy to the admin. |
|
182 | - if ( $email->include_admin_bcc() ) { |
|
183 | - $mailer->send( |
|
184 | - wpinv_get_admin_email(), |
|
185 | - $subject . __( ' - ADMIN BCC COPY', 'invoicing' ), |
|
186 | - $content, |
|
187 | - $attachments |
|
188 | - ); |
|
189 | - } |
|
190 | - |
|
191 | - if ( $result ) { |
|
192 | - $invoice->add_system_note( |
|
193 | - sprintf( |
|
194 | - __( 'Successfully sent %s notification email to %s.', 'invoicing' ), |
|
195 | - sanitize_key( $type ), |
|
196 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
197 | - ) |
|
198 | - ); |
|
199 | - } else { |
|
200 | - $invoice->add_system_note( |
|
201 | - sprintf( |
|
202 | - __( 'Failed sending %s notification email to %s.', 'invoicing' ), |
|
203 | - sanitize_key( $type ), |
|
204 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
205 | - ) |
|
206 | - ); |
|
207 | - } |
|
208 | - |
|
209 | - do_action( 'getpaid_after_send_subscription_notification', $type, $subscription, $email ); |
|
210 | - |
|
211 | - } |
|
44 | + * Registers email hooks. |
|
45 | + */ |
|
46 | + public function init_hooks() { |
|
47 | + |
|
48 | + add_filter( 'getpaid_get_email_merge_tags', array( $this, 'subscription_merge_tags' ), 10, 2 ); |
|
49 | + foreach ( $this->subscription_actions as $hook => $email_type ) { |
|
50 | + |
|
51 | + $email = new GetPaid_Notification_Email( $email_type ); |
|
52 | + |
|
53 | + if ( ! $email->is_active() ) { |
|
54 | + continue; |
|
55 | + } |
|
56 | + |
|
57 | + if ( method_exists( $this, $email_type ) ) { |
|
58 | + add_action( $hook, array( $this, $email_type ), 100, 2 ); |
|
59 | + continue; |
|
60 | + } |
|
61 | + |
|
62 | + do_action( 'getpaid_subscription_notification_email_register_hook', $email_type, $hook ); |
|
63 | + |
|
64 | + } |
|
65 | + |
|
66 | + } |
|
212 | 67 | |
213 | 68 | /** |
214 | - * Sends a new trial notification. |
|
215 | - * |
|
216 | - * @param WPInv_Subscription $subscription |
|
217 | - */ |
|
218 | - public function subscription_trial( $subscription ) { |
|
69 | + * Filters subscription merge tags. |
|
70 | + * |
|
71 | + * @param array $merge_tags |
|
72 | + * @param mixed|WPInv_Invoice|WPInv_Subscription $object |
|
73 | + */ |
|
74 | + public function subscription_merge_tags( $merge_tags, $object ) { |
|
219 | 75 | |
220 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
221 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
76 | + if ( is_a( $object, 'WPInv_Subscription' ) ) { |
|
77 | + $merge_tags = array_merge( |
|
78 | + $merge_tags, |
|
79 | + $this->get_subscription_merge_tags( $object ) |
|
80 | + ); |
|
81 | + } |
|
222 | 82 | |
223 | - } |
|
83 | + return $merge_tags; |
|
224 | 84 | |
225 | - /** |
|
226 | - * Sends a cancelled subscription notification. |
|
227 | - * |
|
228 | - * @param WPInv_Subscription $subscription |
|
229 | - */ |
|
230 | - public function subscription_cancelled( $subscription ) { |
|
85 | + } |
|
231 | 86 | |
232 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
233 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
87 | + /** |
|
88 | + * Generates subscription merge tags. |
|
89 | + * |
|
90 | + * @param WPInv_Subscription $subscription |
|
91 | + * @return array |
|
92 | + */ |
|
93 | + public function get_subscription_merge_tags( $subscription ) { |
|
94 | + |
|
95 | + // Abort if it does not exist. |
|
96 | + if ( ! $subscription->get_id() ) { |
|
97 | + return array(); |
|
98 | + } |
|
99 | + |
|
100 | + $invoice = $subscription->get_parent_invoice(); |
|
101 | + return array( |
|
102 | + '{subscription_renewal_date}' => getpaid_format_date_value( $subscription->get_next_renewal_date(), __( 'Never', 'invoicing' ) ), |
|
103 | + '{subscription_created}' => getpaid_format_date_value( $subscription->get_date_created() ), |
|
104 | + '{subscription_status}' => sanitize_text_field( $subscription->get_status_label() ), |
|
105 | + '{subscription_profile_id}' => sanitize_text_field( $subscription->get_profile_id() ), |
|
106 | + '{subscription_id}' => absint( $subscription->get_id() ), |
|
107 | + '{subscription_recurring_amount}' => sanitize_text_field( wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ) ), |
|
108 | + '{subscription_initial_amount}' => sanitize_text_field( wpinv_price( $subscription->get_initial_amount(), $invoice->get_currency() ) ), |
|
109 | + '{subscription_recurring_period}' => getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ), |
|
110 | + '{subscription_bill_times}' => $subscription->get_bill_times(), |
|
111 | + '{subscription_url}' => esc_url( $subscription->get_view_url() ), |
|
112 | + ); |
|
234 | 113 | |
235 | - } |
|
114 | + } |
|
236 | 115 | |
237 | - /** |
|
238 | - * Sends a subscription expired notification. |
|
239 | - * |
|
240 | - * @param WPInv_Subscription $subscription |
|
241 | - */ |
|
242 | - public function subscription_expired( $subscription ) { |
|
116 | + /** |
|
117 | + * Checks if we should send a notification for a subscription. |
|
118 | + * |
|
119 | + * @param WPInv_Invoice $invoice |
|
120 | + * @return bool |
|
121 | + */ |
|
122 | + public function should_send_notification( $invoice ) { |
|
123 | + return 0 != $invoice->get_id(); |
|
124 | + } |
|
243 | 125 | |
244 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
245 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
126 | + /** |
|
127 | + * Returns notification recipients. |
|
128 | + * |
|
129 | + * @param WPInv_Invoice $invoice |
|
130 | + * @return array |
|
131 | + */ |
|
132 | + public function get_recipients( $invoice ) { |
|
133 | + $recipients = array( $invoice->get_email() ); |
|
246 | 134 | |
247 | - } |
|
135 | + $cc = $invoice->get_email_cc(); |
|
248 | 136 | |
249 | - /** |
|
250 | - * Sends a completed subscription notification. |
|
251 | - * |
|
252 | - * @param WPInv_Subscription $subscription |
|
253 | - */ |
|
254 | - public function subscription_complete( $subscription ) { |
|
137 | + if ( ! empty( $cc ) ) { |
|
138 | + $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) ); |
|
139 | + $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) ); |
|
140 | + } |
|
255 | 141 | |
256 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
257 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
142 | + return $recipients; |
|
143 | + } |
|
258 | 144 | |
259 | - } |
|
145 | + /** |
|
146 | + * Helper function to send an email. |
|
147 | + * |
|
148 | + * @param WPInv_Subscription $subscription |
|
149 | + * @param GetPaid_Notification_Email $email |
|
150 | + * @param string $type |
|
151 | + * @param array $extra_args Extra template args. |
|
152 | + */ |
|
153 | + public function send_email( $subscription, $email, $type, $extra_args = array() ) { |
|
154 | + |
|
155 | + // Abort in case the parent invoice does not exist. |
|
156 | + $invoice = $subscription->get_parent_invoice(); |
|
157 | + if ( ! $this->should_send_notification( $invoice ) ) { |
|
158 | + return; |
|
159 | + } |
|
160 | + |
|
161 | + if ( apply_filters( 'getpaid_skip_subscription_email', false, $type, $subscription ) ) { |
|
162 | + return; |
|
163 | + } |
|
164 | + |
|
165 | + do_action( 'getpaid_before_send_subscription_notification', $type, $subscription, $email ); |
|
166 | + |
|
167 | + $recipients = $this->get_recipients( $invoice ); |
|
168 | + $mailer = new GetPaid_Notification_Email_Sender(); |
|
169 | + $merge_tags = $email->get_merge_tags(); |
|
170 | + $content = $email->get_content( $merge_tags, $extra_args ); |
|
171 | + $subject = $email->add_merge_tags( $email->get_subject(), $merge_tags ); |
|
172 | + $attachments = $email->get_attachments(); |
|
173 | + |
|
174 | + $result = $mailer->send( |
|
175 | + apply_filters( 'getpaid_subscription_email_recipients', wpinv_parse_list( $recipients ), $email ), |
|
176 | + $subject, |
|
177 | + $content, |
|
178 | + $attachments |
|
179 | + ); |
|
180 | + |
|
181 | + // Maybe send a copy to the admin. |
|
182 | + if ( $email->include_admin_bcc() ) { |
|
183 | + $mailer->send( |
|
184 | + wpinv_get_admin_email(), |
|
185 | + $subject . __( ' - ADMIN BCC COPY', 'invoicing' ), |
|
186 | + $content, |
|
187 | + $attachments |
|
188 | + ); |
|
189 | + } |
|
190 | + |
|
191 | + if ( $result ) { |
|
192 | + $invoice->add_system_note( |
|
193 | + sprintf( |
|
194 | + __( 'Successfully sent %s notification email to %s.', 'invoicing' ), |
|
195 | + sanitize_key( $type ), |
|
196 | + $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
197 | + ) |
|
198 | + ); |
|
199 | + } else { |
|
200 | + $invoice->add_system_note( |
|
201 | + sprintf( |
|
202 | + __( 'Failed sending %s notification email to %s.', 'invoicing' ), |
|
203 | + sanitize_key( $type ), |
|
204 | + $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
205 | + ) |
|
206 | + ); |
|
207 | + } |
|
208 | + |
|
209 | + do_action( 'getpaid_after_send_subscription_notification', $type, $subscription, $email ); |
|
260 | 210 | |
261 | - /** |
|
262 | - * Sends a subscription renewal reminder notification. |
|
263 | - * |
|
264 | - */ |
|
265 | - public function renewal_reminder() { |
|
211 | + } |
|
266 | 212 | |
267 | - $email = new GetPaid_Notification_Email( __FUNCTION__ ); |
|
213 | + /** |
|
214 | + * Sends a new trial notification. |
|
215 | + * |
|
216 | + * @param WPInv_Subscription $subscription |
|
217 | + */ |
|
218 | + public function subscription_trial( $subscription ) { |
|
268 | 219 | |
269 | - // Fetch reminder days. |
|
270 | - $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) ); |
|
220 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
221 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
271 | 222 | |
272 | - // Abort if non is set. |
|
273 | - if ( empty( $reminder_days ) ) { |
|
274 | - return; |
|
275 | - } |
|
223 | + } |
|
276 | 224 | |
277 | - // Fetch matching subscriptions. |
|
225 | + /** |
|
226 | + * Sends a cancelled subscription notification. |
|
227 | + * |
|
228 | + * @param WPInv_Subscription $subscription |
|
229 | + */ |
|
230 | + public function subscription_cancelled( $subscription ) { |
|
231 | + |
|
232 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
233 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
234 | + |
|
235 | + } |
|
236 | + |
|
237 | + /** |
|
238 | + * Sends a subscription expired notification. |
|
239 | + * |
|
240 | + * @param WPInv_Subscription $subscription |
|
241 | + */ |
|
242 | + public function subscription_expired( $subscription ) { |
|
243 | + |
|
244 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
245 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
246 | + |
|
247 | + } |
|
248 | + |
|
249 | + /** |
|
250 | + * Sends a completed subscription notification. |
|
251 | + * |
|
252 | + * @param WPInv_Subscription $subscription |
|
253 | + */ |
|
254 | + public function subscription_complete( $subscription ) { |
|
255 | + |
|
256 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
257 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
258 | + |
|
259 | + } |
|
260 | + |
|
261 | + /** |
|
262 | + * Sends a subscription renewal reminder notification. |
|
263 | + * |
|
264 | + */ |
|
265 | + public function renewal_reminder() { |
|
266 | + |
|
267 | + $email = new GetPaid_Notification_Email( __FUNCTION__ ); |
|
268 | + |
|
269 | + // Fetch reminder days. |
|
270 | + $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) ); |
|
271 | + |
|
272 | + // Abort if non is set. |
|
273 | + if ( empty( $reminder_days ) ) { |
|
274 | + return; |
|
275 | + } |
|
276 | + |
|
277 | + // Fetch matching subscriptions. |
|
278 | 278 | $args = array( |
279 | 279 | 'number' => -1, |
280 | - 'count_total' => false, |
|
281 | - 'status' => 'trialling active', |
|
280 | + 'count_total' => false, |
|
281 | + 'status' => 'trialling active', |
|
282 | 282 | 'date_expires_query' => array( |
283 | - 'relation' => 'OR' |
|
283 | + 'relation' => 'OR' |
|
284 | 284 | ), |
285 | - ); |
|
285 | + ); |
|
286 | 286 | |
287 | - foreach ( $reminder_days as $days ) { |
|
288 | - $date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) ); |
|
287 | + foreach ( $reminder_days as $days ) { |
|
288 | + $date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) ); |
|
289 | 289 | |
290 | - $args['date_expires_query'][] = array( |
|
291 | - 'year' => $date['year'], |
|
292 | - 'month' => $date['month'], |
|
293 | - 'day' => $date['day'], |
|
294 | - ); |
|
290 | + $args['date_expires_query'][] = array( |
|
291 | + 'year' => $date['year'], |
|
292 | + 'month' => $date['month'], |
|
293 | + 'day' => $date['day'], |
|
294 | + ); |
|
295 | 295 | |
296 | - } |
|
296 | + } |
|
297 | 297 | |
298 | - $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
298 | + $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
299 | 299 | |
300 | 300 | foreach ( $subscriptions as $subscription ) { |
301 | 301 | |
302 | - // Skip packages. |
|
303 | - if ( get_post_meta( $subscription->get_product_id(), '_wpinv_type', true ) != 'package' ) { |
|
304 | - $email->object = $subscription; |
|
305 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
306 | - } |
|
302 | + // Skip packages. |
|
303 | + if ( get_post_meta( $subscription->get_product_id(), '_wpinv_type', true ) != 'package' ) { |
|
304 | + $email->object = $subscription; |
|
305 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
306 | + } |
|
307 | 307 | |
308 | - } |
|
308 | + } |
|
309 | 309 | |
310 | - } |
|
310 | + } |
|
311 | 311 | |
312 | 312 | } |
@@ -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 | * This class handles subscription notificaiton emails. |
@@ -45,21 +45,21 @@ discard block |
||
45 | 45 | */ |
46 | 46 | public function init_hooks() { |
47 | 47 | |
48 | - add_filter( 'getpaid_get_email_merge_tags', array( $this, 'subscription_merge_tags' ), 10, 2 ); |
|
49 | - foreach ( $this->subscription_actions as $hook => $email_type ) { |
|
48 | + add_filter('getpaid_get_email_merge_tags', array($this, 'subscription_merge_tags'), 10, 2); |
|
49 | + foreach ($this->subscription_actions as $hook => $email_type) { |
|
50 | 50 | |
51 | - $email = new GetPaid_Notification_Email( $email_type ); |
|
51 | + $email = new GetPaid_Notification_Email($email_type); |
|
52 | 52 | |
53 | - if ( ! $email->is_active() ) { |
|
53 | + if (!$email->is_active()) { |
|
54 | 54 | continue; |
55 | 55 | } |
56 | 56 | |
57 | - if ( method_exists( $this, $email_type ) ) { |
|
58 | - add_action( $hook, array( $this, $email_type ), 100, 2 ); |
|
57 | + if (method_exists($this, $email_type)) { |
|
58 | + add_action($hook, array($this, $email_type), 100, 2); |
|
59 | 59 | continue; |
60 | 60 | } |
61 | 61 | |
62 | - do_action( 'getpaid_subscription_notification_email_register_hook', $email_type, $hook ); |
|
62 | + do_action('getpaid_subscription_notification_email_register_hook', $email_type, $hook); |
|
63 | 63 | |
64 | 64 | } |
65 | 65 | |
@@ -71,12 +71,12 @@ discard block |
||
71 | 71 | * @param array $merge_tags |
72 | 72 | * @param mixed|WPInv_Invoice|WPInv_Subscription $object |
73 | 73 | */ |
74 | - public function subscription_merge_tags( $merge_tags, $object ) { |
|
74 | + public function subscription_merge_tags($merge_tags, $object) { |
|
75 | 75 | |
76 | - if ( is_a( $object, 'WPInv_Subscription' ) ) { |
|
76 | + if (is_a($object, 'WPInv_Subscription')) { |
|
77 | 77 | $merge_tags = array_merge( |
78 | 78 | $merge_tags, |
79 | - $this->get_subscription_merge_tags( $object ) |
|
79 | + $this->get_subscription_merge_tags($object) |
|
80 | 80 | ); |
81 | 81 | } |
82 | 82 | |
@@ -90,25 +90,25 @@ discard block |
||
90 | 90 | * @param WPInv_Subscription $subscription |
91 | 91 | * @return array |
92 | 92 | */ |
93 | - public function get_subscription_merge_tags( $subscription ) { |
|
93 | + public function get_subscription_merge_tags($subscription) { |
|
94 | 94 | |
95 | 95 | // Abort if it does not exist. |
96 | - if ( ! $subscription->get_id() ) { |
|
96 | + if (!$subscription->get_id()) { |
|
97 | 97 | return array(); |
98 | 98 | } |
99 | 99 | |
100 | - $invoice = $subscription->get_parent_invoice(); |
|
100 | + $invoice = $subscription->get_parent_invoice(); |
|
101 | 101 | return array( |
102 | - '{subscription_renewal_date}' => getpaid_format_date_value( $subscription->get_next_renewal_date(), __( 'Never', 'invoicing' ) ), |
|
103 | - '{subscription_created}' => getpaid_format_date_value( $subscription->get_date_created() ), |
|
104 | - '{subscription_status}' => sanitize_text_field( $subscription->get_status_label() ), |
|
105 | - '{subscription_profile_id}' => sanitize_text_field( $subscription->get_profile_id() ), |
|
106 | - '{subscription_id}' => absint( $subscription->get_id() ), |
|
107 | - '{subscription_recurring_amount}' => sanitize_text_field( wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ) ), |
|
108 | - '{subscription_initial_amount}' => sanitize_text_field( wpinv_price( $subscription->get_initial_amount(), $invoice->get_currency() ) ), |
|
109 | - '{subscription_recurring_period}' => getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ), |
|
102 | + '{subscription_renewal_date}' => getpaid_format_date_value($subscription->get_next_renewal_date(), __('Never', 'invoicing')), |
|
103 | + '{subscription_created}' => getpaid_format_date_value($subscription->get_date_created()), |
|
104 | + '{subscription_status}' => sanitize_text_field($subscription->get_status_label()), |
|
105 | + '{subscription_profile_id}' => sanitize_text_field($subscription->get_profile_id()), |
|
106 | + '{subscription_id}' => absint($subscription->get_id()), |
|
107 | + '{subscription_recurring_amount}' => sanitize_text_field(wpinv_price($subscription->get_recurring_amount(), $invoice->get_currency())), |
|
108 | + '{subscription_initial_amount}' => sanitize_text_field(wpinv_price($subscription->get_initial_amount(), $invoice->get_currency())), |
|
109 | + '{subscription_recurring_period}' => getpaid_get_subscription_period_label($subscription->get_period(), $subscription->get_frequency(), ''), |
|
110 | 110 | '{subscription_bill_times}' => $subscription->get_bill_times(), |
111 | - '{subscription_url}' => esc_url( $subscription->get_view_url() ), |
|
111 | + '{subscription_url}' => esc_url($subscription->get_view_url()), |
|
112 | 112 | ); |
113 | 113 | |
114 | 114 | } |
@@ -119,7 +119,7 @@ discard block |
||
119 | 119 | * @param WPInv_Invoice $invoice |
120 | 120 | * @return bool |
121 | 121 | */ |
122 | - public function should_send_notification( $invoice ) { |
|
122 | + public function should_send_notification($invoice) { |
|
123 | 123 | return 0 != $invoice->get_id(); |
124 | 124 | } |
125 | 125 | |
@@ -129,14 +129,14 @@ discard block |
||
129 | 129 | * @param WPInv_Invoice $invoice |
130 | 130 | * @return array |
131 | 131 | */ |
132 | - public function get_recipients( $invoice ) { |
|
133 | - $recipients = array( $invoice->get_email() ); |
|
132 | + public function get_recipients($invoice) { |
|
133 | + $recipients = array($invoice->get_email()); |
|
134 | 134 | |
135 | 135 | $cc = $invoice->get_email_cc(); |
136 | 136 | |
137 | - if ( ! empty( $cc ) ) { |
|
138 | - $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) ); |
|
139 | - $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) ); |
|
137 | + if (!empty($cc)) { |
|
138 | + $cc = array_map('sanitize_email', wpinv_parse_list($cc)); |
|
139 | + $recipients = array_filter(array_unique(array_merge($recipients, $cc))); |
|
140 | 140 | } |
141 | 141 | |
142 | 142 | return $recipients; |
@@ -150,63 +150,63 @@ discard block |
||
150 | 150 | * @param string $type |
151 | 151 | * @param array $extra_args Extra template args. |
152 | 152 | */ |
153 | - public function send_email( $subscription, $email, $type, $extra_args = array() ) { |
|
153 | + public function send_email($subscription, $email, $type, $extra_args = array()) { |
|
154 | 154 | |
155 | 155 | // Abort in case the parent invoice does not exist. |
156 | 156 | $invoice = $subscription->get_parent_invoice(); |
157 | - if ( ! $this->should_send_notification( $invoice ) ) { |
|
157 | + if (!$this->should_send_notification($invoice)) { |
|
158 | 158 | return; |
159 | 159 | } |
160 | 160 | |
161 | - if ( apply_filters( 'getpaid_skip_subscription_email', false, $type, $subscription ) ) { |
|
161 | + if (apply_filters('getpaid_skip_subscription_email', false, $type, $subscription)) { |
|
162 | 162 | return; |
163 | 163 | } |
164 | 164 | |
165 | - do_action( 'getpaid_before_send_subscription_notification', $type, $subscription, $email ); |
|
165 | + do_action('getpaid_before_send_subscription_notification', $type, $subscription, $email); |
|
166 | 166 | |
167 | - $recipients = $this->get_recipients( $invoice ); |
|
167 | + $recipients = $this->get_recipients($invoice); |
|
168 | 168 | $mailer = new GetPaid_Notification_Email_Sender(); |
169 | 169 | $merge_tags = $email->get_merge_tags(); |
170 | - $content = $email->get_content( $merge_tags, $extra_args ); |
|
171 | - $subject = $email->add_merge_tags( $email->get_subject(), $merge_tags ); |
|
170 | + $content = $email->get_content($merge_tags, $extra_args); |
|
171 | + $subject = $email->add_merge_tags($email->get_subject(), $merge_tags); |
|
172 | 172 | $attachments = $email->get_attachments(); |
173 | 173 | |
174 | 174 | $result = $mailer->send( |
175 | - apply_filters( 'getpaid_subscription_email_recipients', wpinv_parse_list( $recipients ), $email ), |
|
175 | + apply_filters('getpaid_subscription_email_recipients', wpinv_parse_list($recipients), $email), |
|
176 | 176 | $subject, |
177 | 177 | $content, |
178 | 178 | $attachments |
179 | 179 | ); |
180 | 180 | |
181 | 181 | // Maybe send a copy to the admin. |
182 | - if ( $email->include_admin_bcc() ) { |
|
182 | + if ($email->include_admin_bcc()) { |
|
183 | 183 | $mailer->send( |
184 | 184 | wpinv_get_admin_email(), |
185 | - $subject . __( ' - ADMIN BCC COPY', 'invoicing' ), |
|
185 | + $subject . __(' - ADMIN BCC COPY', 'invoicing'), |
|
186 | 186 | $content, |
187 | 187 | $attachments |
188 | 188 | ); |
189 | 189 | } |
190 | 190 | |
191 | - if ( $result ) { |
|
191 | + if ($result) { |
|
192 | 192 | $invoice->add_system_note( |
193 | 193 | sprintf( |
194 | - __( 'Successfully sent %s notification email to %s.', 'invoicing' ), |
|
195 | - sanitize_key( $type ), |
|
196 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
194 | + __('Successfully sent %s notification email to %s.', 'invoicing'), |
|
195 | + sanitize_key($type), |
|
196 | + $email->is_admin_email() ? __('admin') : __('the customer') |
|
197 | 197 | ) |
198 | 198 | ); |
199 | 199 | } else { |
200 | 200 | $invoice->add_system_note( |
201 | 201 | sprintf( |
202 | - __( 'Failed sending %s notification email to %s.', 'invoicing' ), |
|
203 | - sanitize_key( $type ), |
|
204 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
202 | + __('Failed sending %s notification email to %s.', 'invoicing'), |
|
203 | + sanitize_key($type), |
|
204 | + $email->is_admin_email() ? __('admin') : __('the customer') |
|
205 | 205 | ) |
206 | 206 | ); |
207 | 207 | } |
208 | 208 | |
209 | - do_action( 'getpaid_after_send_subscription_notification', $type, $subscription, $email ); |
|
209 | + do_action('getpaid_after_send_subscription_notification', $type, $subscription, $email); |
|
210 | 210 | |
211 | 211 | } |
212 | 212 | |
@@ -215,10 +215,10 @@ discard block |
||
215 | 215 | * |
216 | 216 | * @param WPInv_Subscription $subscription |
217 | 217 | */ |
218 | - public function subscription_trial( $subscription ) { |
|
218 | + public function subscription_trial($subscription) { |
|
219 | 219 | |
220 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
221 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
220 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $subscription); |
|
221 | + $this->send_email($subscription, $email, __FUNCTION__); |
|
222 | 222 | |
223 | 223 | } |
224 | 224 | |
@@ -227,10 +227,10 @@ discard block |
||
227 | 227 | * |
228 | 228 | * @param WPInv_Subscription $subscription |
229 | 229 | */ |
230 | - public function subscription_cancelled( $subscription ) { |
|
230 | + public function subscription_cancelled($subscription) { |
|
231 | 231 | |
232 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
233 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
232 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $subscription); |
|
233 | + $this->send_email($subscription, $email, __FUNCTION__); |
|
234 | 234 | |
235 | 235 | } |
236 | 236 | |
@@ -239,10 +239,10 @@ discard block |
||
239 | 239 | * |
240 | 240 | * @param WPInv_Subscription $subscription |
241 | 241 | */ |
242 | - public function subscription_expired( $subscription ) { |
|
242 | + public function subscription_expired($subscription) { |
|
243 | 243 | |
244 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
245 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
244 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $subscription); |
|
245 | + $this->send_email($subscription, $email, __FUNCTION__); |
|
246 | 246 | |
247 | 247 | } |
248 | 248 | |
@@ -251,10 +251,10 @@ discard block |
||
251 | 251 | * |
252 | 252 | * @param WPInv_Subscription $subscription |
253 | 253 | */ |
254 | - public function subscription_complete( $subscription ) { |
|
254 | + public function subscription_complete($subscription) { |
|
255 | 255 | |
256 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
257 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
256 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $subscription); |
|
257 | + $this->send_email($subscription, $email, __FUNCTION__); |
|
258 | 258 | |
259 | 259 | } |
260 | 260 | |
@@ -264,18 +264,18 @@ discard block |
||
264 | 264 | */ |
265 | 265 | public function renewal_reminder() { |
266 | 266 | |
267 | - $email = new GetPaid_Notification_Email( __FUNCTION__ ); |
|
267 | + $email = new GetPaid_Notification_Email(__FUNCTION__); |
|
268 | 268 | |
269 | 269 | // Fetch reminder days. |
270 | - $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) ); |
|
270 | + $reminder_days = array_unique(wp_parse_id_list($email->get_option('days'))); |
|
271 | 271 | |
272 | 272 | // Abort if non is set. |
273 | - if ( empty( $reminder_days ) ) { |
|
273 | + if (empty($reminder_days)) { |
|
274 | 274 | return; |
275 | 275 | } |
276 | 276 | |
277 | 277 | // Fetch matching subscriptions. |
278 | - $args = array( |
|
278 | + $args = array( |
|
279 | 279 | 'number' => -1, |
280 | 280 | 'count_total' => false, |
281 | 281 | 'status' => 'trialling active', |
@@ -284,8 +284,8 @@ discard block |
||
284 | 284 | ), |
285 | 285 | ); |
286 | 286 | |
287 | - foreach ( $reminder_days as $days ) { |
|
288 | - $date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) ); |
|
287 | + foreach ($reminder_days as $days) { |
|
288 | + $date = date_parse(date('Y-m-d', strtotime("+$days days", current_time('timestamp')))); |
|
289 | 289 | |
290 | 290 | $args['date_expires_query'][] = array( |
291 | 291 | 'year' => $date['year'], |
@@ -295,14 +295,14 @@ discard block |
||
295 | 295 | |
296 | 296 | } |
297 | 297 | |
298 | - $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
298 | + $subscriptions = new GetPaid_Subscriptions_Query($args); |
|
299 | 299 | |
300 | - foreach ( $subscriptions as $subscription ) { |
|
300 | + foreach ($subscriptions as $subscription) { |
|
301 | 301 | |
302 | 302 | // Skip packages. |
303 | - if ( get_post_meta( $subscription->get_product_id(), '_wpinv_type', true ) != 'package' ) { |
|
303 | + if (get_post_meta($subscription->get_product_id(), '_wpinv_type', true) != 'package') { |
|
304 | 304 | $email->object = $subscription; |
305 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
305 | + $this->send_email($subscription, $email, __FUNCTION__); |
|
306 | 306 | } |
307 | 307 | |
308 | 308 | } |
@@ -8,99 +8,99 @@ discard block |
||
8 | 8 | * @version 1.0.19 |
9 | 9 | */ |
10 | 10 | |
11 | -defined( 'ABSPATH' ) || exit; |
|
11 | +defined('ABSPATH') || exit; |
|
12 | 12 | |
13 | 13 | $getpaid_pages = GetPaid_Installer::get_pages(); |
14 | -$pages = wpinv_get_pages( true ); |
|
14 | +$pages = wpinv_get_pages(true); |
|
15 | 15 | |
16 | 16 | $currencies = wpinv_get_currencies(); |
17 | 17 | |
18 | 18 | $currency_code_options = array(); |
19 | -foreach ( $currencies as $code => $name ) { |
|
20 | - $currency_code_options[ $code ] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol( $code ) . ')'; |
|
19 | +foreach ($currencies as $code => $name) { |
|
20 | + $currency_code_options[$code] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol($code) . ')'; |
|
21 | 21 | } |
22 | 22 | |
23 | 23 | $invoice_number_padd_options = array(); |
24 | -for ( $i = 0; $i <= 20; $i++ ) { |
|
24 | +for ($i = 0; $i <= 20; $i++) { |
|
25 | 25 | $invoice_number_padd_options[$i] = $i; |
26 | 26 | } |
27 | 27 | |
28 | 28 | $currency_symbol = wpinv_currency_symbol(); |
29 | 29 | |
30 | 30 | $last_number = $reset_number = ''; |
31 | -if ( $last_invoice_number = get_option( 'wpinv_last_invoice_number' ) ) { |
|
32 | - $last_invoice_number = preg_replace( '/[^0-9]/', '', $last_invoice_number ); |
|
31 | +if ($last_invoice_number = get_option('wpinv_last_invoice_number')) { |
|
32 | + $last_invoice_number = preg_replace('/[^0-9]/', '', $last_invoice_number); |
|
33 | 33 | |
34 | - if ( !empty( $last_invoice_number ) ) { |
|
35 | - $last_number = ' ' . wp_sprintf( __( "( Last Invoice's sequential number: <b>%s</b> )", 'invoicing' ), $last_invoice_number ); |
|
34 | + if (!empty($last_invoice_number)) { |
|
35 | + $last_number = ' ' . wp_sprintf(__("( Last Invoice's sequential number: <b>%s</b> )", 'invoicing'), $last_invoice_number); |
|
36 | 36 | } |
37 | 37 | |
38 | 38 | $nonce = wp_create_nonce('reset_invoice_count'); |
39 | - $reset_number = '<a href="'.add_query_arg(array('reset_invoice_count' => 1, '_nonce' => $nonce)).'" class="btn button">'.__('Force Reset Sequence', 'invoicing' ). '</a>'; |
|
39 | + $reset_number = '<a href="' . add_query_arg(array('reset_invoice_count' => 1, '_nonce' => $nonce)) . '" class="btn button">' . __('Force Reset Sequence', 'invoicing') . '</a>'; |
|
40 | 40 | } |
41 | 41 | |
42 | 42 | $alert_wrapper_start = '<p style="color: #F00">'; |
43 | 43 | $alert_wrapper_close = '</p>'; |
44 | 44 | |
45 | 45 | return array( |
46 | - 'general' => apply_filters( 'wpinv_settings_general', |
|
46 | + 'general' => apply_filters('wpinv_settings_general', |
|
47 | 47 | array( |
48 | 48 | 'main' => array( |
49 | 49 | 'location_settings' => array( |
50 | 50 | 'id' => 'location_settings', |
51 | - 'name' => '<h3>' . __( 'Default Location', 'invoicing' ) . '</h3>', |
|
51 | + 'name' => '<h3>' . __('Default Location', 'invoicing') . '</h3>', |
|
52 | 52 | 'desc' => '', |
53 | 53 | 'type' => 'header', |
54 | 54 | ), |
55 | 55 | 'default_country' => array( |
56 | 56 | 'id' => 'default_country', |
57 | - 'name' => __( 'Default Country', 'invoicing' ), |
|
58 | - 'desc' => __( 'Where does your store operate from?', 'invoicing' ), |
|
57 | + 'name' => __('Default Country', 'invoicing'), |
|
58 | + 'desc' => __('Where does your store operate from?', 'invoicing'), |
|
59 | 59 | 'type' => 'select', |
60 | 60 | 'options' => wpinv_get_country_list(), |
61 | 61 | 'std' => 'GB', |
62 | 62 | 'class' => 'wpi_select2', |
63 | - 'placeholder' => __( 'Select a country', 'invoicing' ), |
|
63 | + 'placeholder' => __('Select a country', 'invoicing'), |
|
64 | 64 | ), |
65 | 65 | 'default_state' => array( |
66 | 66 | 'id' => 'default_state', |
67 | - 'name' => __( 'Default State / Province', 'invoicing' ), |
|
68 | - 'desc' => __( 'What state / province does your store operate from?', 'invoicing' ), |
|
67 | + 'name' => __('Default State / Province', 'invoicing'), |
|
68 | + 'desc' => __('What state / province does your store operate from?', 'invoicing'), |
|
69 | 69 | 'type' => 'country_states', |
70 | 70 | 'class' => 'wpi_select2', |
71 | - 'placeholder' => __( 'Select a state', 'invoicing' ), |
|
71 | + 'placeholder' => __('Select a state', 'invoicing'), |
|
72 | 72 | ), |
73 | 73 | 'store_name' => array( |
74 | 74 | 'id' => 'store_name', |
75 | - 'name' => __( 'Store Name', 'invoicing' ), |
|
76 | - 'desc' => __( 'Store name to print on invoices.', 'invoicing' ), |
|
75 | + 'name' => __('Store Name', 'invoicing'), |
|
76 | + 'desc' => __('Store name to print on invoices.', 'invoicing'), |
|
77 | 77 | 'std' => get_option('blogname'), |
78 | 78 | 'type' => 'text', |
79 | 79 | ), |
80 | 80 | 'logo' => array( |
81 | 81 | 'id' => 'logo', |
82 | - 'name' => __( 'Logo URL', 'invoicing' ), |
|
83 | - 'desc' => __( 'Store logo to print on invoices.', 'invoicing' ), |
|
82 | + 'name' => __('Logo URL', 'invoicing'), |
|
83 | + 'desc' => __('Store logo to print on invoices.', 'invoicing'), |
|
84 | 84 | 'type' => 'text', |
85 | 85 | ), |
86 | 86 | 'logo_width' => array( |
87 | 87 | 'id' => 'logo_width', |
88 | - 'name' => __( 'Logo width', 'invoicing' ), |
|
89 | - 'desc' => __( 'Logo width to use in invoice image.', 'invoicing' ), |
|
88 | + 'name' => __('Logo width', 'invoicing'), |
|
89 | + 'desc' => __('Logo width to use in invoice image.', 'invoicing'), |
|
90 | 90 | 'type' => 'number', |
91 | - 'placeholder' => __( 'Auto', 'invoicing' ), |
|
91 | + 'placeholder' => __('Auto', 'invoicing'), |
|
92 | 92 | ), |
93 | 93 | 'logo_height' => array( |
94 | 94 | 'id' => 'logo_height', |
95 | - 'name' => __( 'Logo height', 'invoicing' ), |
|
96 | - 'desc' => __( 'Logo height to use in invoice image.', 'invoicing' ), |
|
95 | + 'name' => __('Logo height', 'invoicing'), |
|
96 | + 'desc' => __('Logo height to use in invoice image.', 'invoicing'), |
|
97 | 97 | 'type' => 'number', |
98 | - 'placeholder' => __( 'Auto', 'invoicing' ), |
|
98 | + 'placeholder' => __('Auto', 'invoicing'), |
|
99 | 99 | ), |
100 | 100 | 'store_address' => array( |
101 | 101 | 'id' => 'store_address', |
102 | - 'name' => __( 'Store Address', 'invoicing' ), |
|
103 | - 'desc' => __( 'Enter the store address to display on invoice', 'invoicing' ), |
|
102 | + 'name' => __('Store Address', 'invoicing'), |
|
103 | + 'desc' => __('Enter the store address to display on invoice', 'invoicing'), |
|
104 | 104 | 'type' => 'textarea', |
105 | 105 | ), |
106 | 106 | |
@@ -108,114 +108,114 @@ discard block |
||
108 | 108 | 'page_section' => array( |
109 | 109 | 'page_settings' => array( |
110 | 110 | 'id' => 'page_settings', |
111 | - 'name' => '<h3>' . __( 'Page Settings', 'invoicing' ) . '</h3>', |
|
111 | + 'name' => '<h3>' . __('Page Settings', 'invoicing') . '</h3>', |
|
112 | 112 | 'desc' => '', |
113 | 113 | 'type' => 'header', |
114 | 114 | ), |
115 | 115 | 'checkout_page' => array( |
116 | 116 | 'id' => 'checkout_page', |
117 | - 'name' => __( 'Checkout Page', 'invoicing' ), |
|
118 | - 'desc' => __( 'This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing' ), |
|
117 | + 'name' => __('Checkout Page', 'invoicing'), |
|
118 | + 'desc' => __('This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing'), |
|
119 | 119 | 'type' => 'select', |
120 | 120 | 'options' => $pages, |
121 | 121 | 'class' => 'wpi_select2', |
122 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
123 | - 'default_content' => empty( $getpaid_pages['checkout_page'] ) ? '' : $getpaid_pages['checkout_page']['content'], |
|
122 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
123 | + 'default_content' => empty($getpaid_pages['checkout_page']) ? '' : $getpaid_pages['checkout_page']['content'], |
|
124 | 124 | 'help-tip' => true, |
125 | 125 | ), |
126 | 126 | 'success_page' => array( |
127 | 127 | 'id' => 'success_page', |
128 | - 'name' => __( 'Success Page', 'invoicing' ), |
|
129 | - 'desc' => __( 'This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing' ), |
|
128 | + 'name' => __('Success Page', 'invoicing'), |
|
129 | + 'desc' => __('This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing'), |
|
130 | 130 | 'type' => 'select', |
131 | 131 | 'options' => $pages, |
132 | 132 | 'class' => 'wpi_select2', |
133 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
134 | - 'default_content' => empty( $getpaid_pages['success_page'] ) ? '' : $getpaid_pages['success_page']['content'], |
|
133 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
134 | + 'default_content' => empty($getpaid_pages['success_page']) ? '' : $getpaid_pages['success_page']['content'], |
|
135 | 135 | 'help-tip' => true, |
136 | 136 | ), |
137 | 137 | 'failure_page' => array( |
138 | 138 | 'id' => 'failure_page', |
139 | - 'name' => __( 'Failed Transaction Page', 'invoicing' ), |
|
140 | - 'desc' => __( 'This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing' ), |
|
139 | + 'name' => __('Failed Transaction Page', 'invoicing'), |
|
140 | + 'desc' => __('This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing'), |
|
141 | 141 | 'type' => 'select', |
142 | 142 | 'options' => $pages, |
143 | 143 | 'class' => 'wpi_select2', |
144 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
145 | - 'default_content' => empty( $getpaid_pages['failure_page'] ) ? '' : $getpaid_pages['failure_page']['content'], |
|
144 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
145 | + 'default_content' => empty($getpaid_pages['failure_page']) ? '' : $getpaid_pages['failure_page']['content'], |
|
146 | 146 | 'help-tip' => true, |
147 | 147 | ), |
148 | 148 | 'invoice_history_page' => array( |
149 | 149 | 'id' => 'invoice_history_page', |
150 | - 'name' => __( 'Invoice History Page', 'invoicing' ), |
|
151 | - 'desc' => __( 'This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing' ), |
|
150 | + 'name' => __('Invoice History Page', 'invoicing'), |
|
151 | + 'desc' => __('This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing'), |
|
152 | 152 | 'type' => 'select', |
153 | 153 | 'options' => $pages, |
154 | 154 | 'class' => 'wpi_select2', |
155 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
156 | - 'default_content' => empty( $getpaid_pages['invoice_history_page'] ) ? '' : $getpaid_pages['invoice_history_page']['content'], |
|
155 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
156 | + 'default_content' => empty($getpaid_pages['invoice_history_page']) ? '' : $getpaid_pages['invoice_history_page']['content'], |
|
157 | 157 | 'help-tip' => true, |
158 | 158 | ), |
159 | 159 | 'invoice_subscription_page' => array( |
160 | 160 | 'id' => 'invoice_subscription_page', |
161 | - 'name' => __( 'Invoice Subscriptions Page', 'invoicing' ), |
|
162 | - 'desc' => __( 'This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing' ), |
|
161 | + 'name' => __('Invoice Subscriptions Page', 'invoicing'), |
|
162 | + 'desc' => __('This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing'), |
|
163 | 163 | 'type' => 'select', |
164 | 164 | 'options' => $pages, |
165 | 165 | 'class' => 'wpi_select2', |
166 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
167 | - 'default_content' => empty( $getpaid_pages['invoice_subscription_page'] ) ? '' : $getpaid_pages['invoice_subscription_page']['content'], |
|
166 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
167 | + 'default_content' => empty($getpaid_pages['invoice_subscription_page']) ? '' : $getpaid_pages['invoice_subscription_page']['content'], |
|
168 | 168 | 'help-tip' => true, |
169 | 169 | ), |
170 | 170 | ), |
171 | 171 | 'currency_section' => array( |
172 | 172 | 'currency_settings' => array( |
173 | 173 | 'id' => 'currency_settings', |
174 | - 'name' => '<h3>' . __( 'Currency Settings', 'invoicing' ) . '</h3>', |
|
174 | + 'name' => '<h3>' . __('Currency Settings', 'invoicing') . '</h3>', |
|
175 | 175 | 'desc' => '', |
176 | 176 | 'type' => 'header', |
177 | 177 | ), |
178 | 178 | 'currency' => array( |
179 | 179 | 'id' => 'currency', |
180 | - 'name' => __( 'Currency', 'invoicing' ), |
|
181 | - 'desc' => __( 'Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing' ), |
|
180 | + 'name' => __('Currency', 'invoicing'), |
|
181 | + 'desc' => __('Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing'), |
|
182 | 182 | 'type' => 'select', |
183 | 183 | 'class' => 'wpi_select2', |
184 | 184 | 'options' => $currency_code_options, |
185 | 185 | ), |
186 | 186 | 'currency_position' => array( |
187 | 187 | 'id' => 'currency_position', |
188 | - 'name' => __( 'Currency Position', 'invoicing' ), |
|
189 | - 'desc' => __( 'Choose the location of the currency sign.', 'invoicing' ), |
|
188 | + 'name' => __('Currency Position', 'invoicing'), |
|
189 | + 'desc' => __('Choose the location of the currency sign.', 'invoicing'), |
|
190 | 190 | 'type' => 'select', |
191 | 191 | 'class' => 'wpi_select2', |
192 | 192 | 'options' => array( |
193 | - 'left' => __( 'Left', 'invoicing' ) . ' (' . $currency_symbol . wpinv_format_amount( '99.99' ) . ')', |
|
194 | - 'right' => __( 'Right', 'invoicing' ) . ' ('. wpinv_format_amount( '99.99' ) . $currency_symbol . ')', |
|
195 | - 'left_space' => __( 'Left with space', 'invoicing' ) . ' (' . $currency_symbol . ' ' . wpinv_format_amount( '99.99' ) . ')', |
|
196 | - 'right_space' => __( 'Right with space', 'invoicing' ) . ' (' . wpinv_format_amount( '99.99' ) . ' ' . $currency_symbol . ')' |
|
193 | + 'left' => __('Left', 'invoicing') . ' (' . $currency_symbol . wpinv_format_amount('99.99') . ')', |
|
194 | + 'right' => __('Right', 'invoicing') . ' (' . wpinv_format_amount('99.99') . $currency_symbol . ')', |
|
195 | + 'left_space' => __('Left with space', 'invoicing') . ' (' . $currency_symbol . ' ' . wpinv_format_amount('99.99') . ')', |
|
196 | + 'right_space' => __('Right with space', 'invoicing') . ' (' . wpinv_format_amount('99.99') . ' ' . $currency_symbol . ')' |
|
197 | 197 | ) |
198 | 198 | ), |
199 | 199 | 'thousands_separator' => array( |
200 | 200 | 'id' => 'thousands_separator', |
201 | - 'name' => __( 'Thousands Separator', 'invoicing' ), |
|
202 | - 'desc' => __( 'The symbol (usually , or .) to separate thousands', 'invoicing' ), |
|
201 | + 'name' => __('Thousands Separator', 'invoicing'), |
|
202 | + 'desc' => __('The symbol (usually , or .) to separate thousands', 'invoicing'), |
|
203 | 203 | 'type' => 'text', |
204 | 204 | 'size' => 'small', |
205 | 205 | 'std' => ',', |
206 | 206 | ), |
207 | 207 | 'decimal_separator' => array( |
208 | 208 | 'id' => 'decimal_separator', |
209 | - 'name' => __( 'Decimal Separator', 'invoicing' ), |
|
210 | - 'desc' => __( 'The symbol (usually , or .) to separate decimal points', 'invoicing' ), |
|
209 | + 'name' => __('Decimal Separator', 'invoicing'), |
|
210 | + 'desc' => __('The symbol (usually , or .) to separate decimal points', 'invoicing'), |
|
211 | 211 | 'type' => 'text', |
212 | 212 | 'size' => 'small', |
213 | 213 | 'std' => '.', |
214 | 214 | ), |
215 | 215 | 'decimals' => array( |
216 | 216 | 'id' => 'decimals', |
217 | - 'name' => __( 'Number of Decimals', 'invoicing' ), |
|
218 | - 'desc' => __( 'This sets the number of decimal points shown in displayed prices.', 'invoicing' ), |
|
217 | + 'name' => __('Number of Decimals', 'invoicing'), |
|
218 | + 'desc' => __('This sets the number of decimal points shown in displayed prices.', 'invoicing'), |
|
219 | 219 | 'type' => 'number', |
220 | 220 | 'size' => 'small', |
221 | 221 | 'std' => '2', |
@@ -227,21 +227,21 @@ discard block |
||
227 | 227 | 'labels' => array( |
228 | 228 | 'labels' => array( |
229 | 229 | 'id' => 'labels_settings', |
230 | - 'name' => '<h3>' . __( 'Invoice Labels', 'invoicing' ) . '</h3>', |
|
230 | + 'name' => '<h3>' . __('Invoice Labels', 'invoicing') . '</h3>', |
|
231 | 231 | 'desc' => '', |
232 | 232 | 'type' => 'header', |
233 | 233 | ), |
234 | 234 | 'vat_invoice_notice_label' => array( |
235 | 235 | 'id' => 'vat_invoice_notice_label', |
236 | - 'name' => __( 'Invoice Notice Label', 'invoicing' ), |
|
237 | - 'desc' => __( 'Use this to add an invoice notice section (label) to your invoices', 'invoicing' ), |
|
236 | + 'name' => __('Invoice Notice Label', 'invoicing'), |
|
237 | + 'desc' => __('Use this to add an invoice notice section (label) to your invoices', 'invoicing'), |
|
238 | 238 | 'type' => 'text', |
239 | 239 | 'size' => 'regular', |
240 | 240 | ), |
241 | 241 | 'vat_invoice_notice' => array( |
242 | 242 | 'id' => 'vat_invoice_notice', |
243 | - 'name' => __( 'Invoice notice', 'invoicing' ), |
|
244 | - 'desc' => __( 'Use this to add an invoice notice section (description) to your invoices', 'invoicing' ), |
|
243 | + 'name' => __('Invoice notice', 'invoicing'), |
|
244 | + 'desc' => __('Use this to add an invoice notice section (description) to your invoices', 'invoicing'), |
|
245 | 245 | 'type' => 'text', |
246 | 246 | 'size' => 'regular', |
247 | 247 | ), |
@@ -253,22 +253,22 @@ discard block |
||
253 | 253 | 'main' => array( |
254 | 254 | 'gateway_settings' => array( |
255 | 255 | 'id' => 'api_header', |
256 | - 'name' => '<h3>' . __( 'Gateway Settings', 'invoicing' ) . '</h3>', |
|
256 | + 'name' => '<h3>' . __('Gateway Settings', 'invoicing') . '</h3>', |
|
257 | 257 | 'desc' => '', |
258 | 258 | 'type' => 'header', |
259 | 259 | ), |
260 | 260 | 'gateways' => array( |
261 | 261 | 'id' => 'gateways', |
262 | - 'name' => __( 'Payment Gateways', 'invoicing' ), |
|
263 | - 'desc' => __( 'Choose the payment gateways you want to enable.', 'invoicing' ), |
|
262 | + 'name' => __('Payment Gateways', 'invoicing'), |
|
263 | + 'desc' => __('Choose the payment gateways you want to enable.', 'invoicing'), |
|
264 | 264 | 'type' => 'gateways', |
265 | - 'std' => array( 'manual'=>1 ), |
|
265 | + 'std' => array('manual'=>1), |
|
266 | 266 | 'options' => wpinv_get_payment_gateways(), |
267 | 267 | ), |
268 | 268 | 'default_gateway' => array( |
269 | 269 | 'id' => 'default_gateway', |
270 | - 'name' => __( 'Default Gateway', 'invoicing' ), |
|
271 | - 'desc' => __( 'This gateway will be loaded automatically with the checkout page.', 'invoicing' ), |
|
270 | + 'name' => __('Default Gateway', 'invoicing'), |
|
271 | + 'desc' => __('This gateway will be loaded automatically with the checkout page.', 'invoicing'), |
|
272 | 272 | 'type' => 'gateway_select', |
273 | 273 | 'std' => 'manual', |
274 | 274 | 'class' => 'wpi_select2', |
@@ -283,32 +283,32 @@ discard block |
||
283 | 283 | 'main' => array( |
284 | 284 | 'tax_settings' => array( |
285 | 285 | 'id' => 'tax_settings', |
286 | - 'name' => '<h3>' . __( 'Tax Settings', 'invoicing' ) . '</h3>', |
|
286 | + 'name' => '<h3>' . __('Tax Settings', 'invoicing') . '</h3>', |
|
287 | 287 | 'type' => 'header', |
288 | 288 | ), |
289 | 289 | |
290 | 290 | 'enable_taxes' => array( |
291 | 291 | 'id' => 'enable_taxes', |
292 | - 'name' => __( 'Enable Taxes', 'invoicing' ), |
|
293 | - 'desc' => __( 'Enable tax rates and calculations.', 'invoicing' ), |
|
292 | + 'name' => __('Enable Taxes', 'invoicing'), |
|
293 | + 'desc' => __('Enable tax rates and calculations.', 'invoicing'), |
|
294 | 294 | 'type' => 'checkbox', |
295 | 295 | 'std' => 0, |
296 | 296 | ), |
297 | 297 | |
298 | 298 | 'tax_subtotal_rounding' => array( |
299 | 299 | 'id' => 'tax_subtotal_rounding', |
300 | - 'name' => __( 'Rounding', 'invoicing' ), |
|
301 | - 'desc' => __( 'Round tax at subtotal level, instead of rounding per tax rate', 'invoicing' ), |
|
300 | + 'name' => __('Rounding', 'invoicing'), |
|
301 | + 'desc' => __('Round tax at subtotal level, instead of rounding per tax rate', 'invoicing'), |
|
302 | 302 | 'type' => 'checkbox', |
303 | 303 | 'std' => 1, |
304 | 304 | ), |
305 | 305 | |
306 | 306 | 'prices_include_tax' => array( |
307 | 307 | 'id' => 'prices_include_tax', |
308 | - 'name' => __( 'Prices entered with tax', 'invoicing' ), |
|
308 | + 'name' => __('Prices entered with tax', 'invoicing'), |
|
309 | 309 | 'options' => array( |
310 | - 'yes' => __( 'Yes, I will enter prices inclusive of tax', 'invoicing' ), |
|
311 | - 'no' => __( 'No, I will enter prices exclusive of tax', 'invoicing' ), |
|
310 | + 'yes' => __('Yes, I will enter prices inclusive of tax', 'invoicing'), |
|
311 | + 'no' => __('No, I will enter prices exclusive of tax', 'invoicing'), |
|
312 | 312 | ), |
313 | 313 | 'type' => 'select', |
314 | 314 | 'std' => 'no', |
@@ -316,10 +316,10 @@ discard block |
||
316 | 316 | |
317 | 317 | 'tax_base' => array( |
318 | 318 | 'id' => 'tax_base', |
319 | - 'name' => __( 'Calculate tax based on', 'invoicing' ), |
|
319 | + 'name' => __('Calculate tax based on', 'invoicing'), |
|
320 | 320 | 'options' => array( |
321 | - 'billing' => __( 'Customer billing address', 'invoicing' ), |
|
322 | - 'base' => __( 'Shop base address', 'invoicing' ), |
|
321 | + 'billing' => __('Customer billing address', 'invoicing'), |
|
322 | + 'base' => __('Shop base address', 'invoicing'), |
|
323 | 323 | ), |
324 | 324 | 'type' => 'select', |
325 | 325 | 'std' => 'billing', |
@@ -327,10 +327,10 @@ discard block |
||
327 | 327 | |
328 | 328 | 'tax_display_totals' => array( |
329 | 329 | 'id' => 'tax_display_totals', |
330 | - 'name' => __( 'Display tax totals', 'invoicing' ), |
|
330 | + 'name' => __('Display tax totals', 'invoicing'), |
|
331 | 331 | 'options' => array( |
332 | - 'single' => __( 'As a single total', 'invoicing' ), |
|
333 | - 'individual' => __( 'As individual tax rates', 'invoicing' ), |
|
332 | + 'single' => __('As a single total', 'invoicing'), |
|
333 | + 'individual' => __('As individual tax rates', 'invoicing'), |
|
334 | 334 | ), |
335 | 335 | 'type' => 'select', |
336 | 336 | 'std' => 'individual', |
@@ -338,8 +338,8 @@ discard block |
||
338 | 338 | |
339 | 339 | 'tax_rate' => array( |
340 | 340 | 'id' => 'tax_rate', |
341 | - 'name' => __( 'Fallback Tax Rate', 'invoicing' ), |
|
342 | - 'desc' => __( 'Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing' ), |
|
341 | + 'name' => __('Fallback Tax Rate', 'invoicing'), |
|
342 | + 'desc' => __('Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing'), |
|
343 | 343 | 'type' => 'number', |
344 | 344 | 'size' => 'small', |
345 | 345 | 'min' => '0', |
@@ -351,8 +351,8 @@ discard block |
||
351 | 351 | 'rates' => array( |
352 | 352 | 'tax_rates' => array( |
353 | 353 | 'id' => 'tax_rates', |
354 | - 'name' => '<h3>' . __( 'Tax Rates', 'invoicing' ) . '</h3>', |
|
355 | - 'desc' => __( 'Enter tax rates for specific regions.', 'invoicing' ), |
|
354 | + 'name' => '<h3>' . __('Tax Rates', 'invoicing') . '</h3>', |
|
355 | + 'desc' => __('Enter tax rates for specific regions.', 'invoicing'), |
|
356 | 356 | 'type' => 'tax_rates', |
357 | 357 | ), |
358 | 358 | ), |
@@ -361,45 +361,45 @@ discard block |
||
361 | 361 | |
362 | 362 | 'vat_company_name' => array( |
363 | 363 | 'id' => 'vat_company_name', |
364 | - 'name' => __( 'Company Name', 'invoicing' ), |
|
365 | - 'desc' => wp_sprintf(__( 'Verify your company name and VAT number on the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ), |
|
364 | + 'name' => __('Company Name', 'invoicing'), |
|
365 | + 'desc' => wp_sprintf(__('Verify your company name and VAT number on the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'), |
|
366 | 366 | 'type' => 'text', |
367 | 367 | 'size' => 'regular', |
368 | 368 | ), |
369 | 369 | |
370 | 370 | 'vat_number' => array( |
371 | 371 | 'id' => 'vat_number', |
372 | - 'name' => __( 'VAT Number', 'invoicing' ), |
|
373 | - 'desc' => __( 'Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing' ), |
|
372 | + 'name' => __('VAT Number', 'invoicing'), |
|
373 | + 'desc' => __('Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing'), |
|
374 | 374 | 'type' => 'text', |
375 | 375 | 'size' => 'regular', |
376 | 376 | ), |
377 | 377 | |
378 | 378 | 'vat_prevent_b2c_purchase' => array( |
379 | 379 | 'id' => 'vat_prevent_b2c_purchase', |
380 | - 'name' => __( 'Prevent B2C Sales', 'invoicing' ), |
|
381 | - 'desc' => __( 'Require everyone in the EU to provide a VAT number.', 'invoicing' ), |
|
380 | + 'name' => __('Prevent B2C Sales', 'invoicing'), |
|
381 | + 'desc' => __('Require everyone in the EU to provide a VAT number.', 'invoicing'), |
|
382 | 382 | 'type' => 'checkbox' |
383 | 383 | ), |
384 | 384 | |
385 | 385 | 'validate_vat_number' => array( |
386 | 386 | 'id' => 'validate_vat_number', |
387 | - 'name' => __( 'Validate VAT Number', 'invoicing' ), |
|
388 | - 'desc' => __( 'Validate VAT numbers with VIES.', 'invoicing' ), |
|
387 | + 'name' => __('Validate VAT Number', 'invoicing'), |
|
388 | + 'desc' => __('Validate VAT numbers with VIES.', 'invoicing'), |
|
389 | 389 | 'type' => 'checkbox' |
390 | 390 | ), |
391 | 391 | |
392 | 392 | 'vat_same_country_rule' => array( |
393 | 393 | 'id' => 'vat_same_country_rule', |
394 | - 'name' => __( 'Same Country Rule', 'invoicing' ), |
|
395 | - 'desc' => __( 'What should happen if a customer is from the same country as your business?', 'invoicing' ), |
|
394 | + 'name' => __('Same Country Rule', 'invoicing'), |
|
395 | + 'desc' => __('What should happen if a customer is from the same country as your business?', 'invoicing'), |
|
396 | 396 | 'type' => 'select', |
397 | 397 | 'options' => array( |
398 | - 'no' => __( 'Do not charge tax', 'invoicing' ), |
|
399 | - 'always' => __( 'Charge tax unless vat number is validated', 'invoicing' ), |
|
400 | - 'vat_too' => __( 'Charge tax even if vat number is validated', 'invoicing' ) |
|
398 | + 'no' => __('Do not charge tax', 'invoicing'), |
|
399 | + 'always' => __('Charge tax unless vat number is validated', 'invoicing'), |
|
400 | + 'vat_too' => __('Charge tax even if vat number is validated', 'invoicing') |
|
401 | 401 | ), |
402 | - 'placeholder' => __( 'Select an option', 'invoicing' ), |
|
402 | + 'placeholder' => __('Select an option', 'invoicing'), |
|
403 | 403 | 'std' => 'vat_too', |
404 | 404 | ), |
405 | 405 | |
@@ -413,66 +413,66 @@ discard block |
||
413 | 413 | 'main' => array( |
414 | 414 | 'email_settings_header' => array( |
415 | 415 | 'id' => 'email_settings_header', |
416 | - 'name' => '<h3>' . __( 'Email Sender Options', 'invoicing' ) . '</h3>', |
|
416 | + 'name' => '<h3>' . __('Email Sender Options', 'invoicing') . '</h3>', |
|
417 | 417 | 'type' => 'header', |
418 | 418 | ), |
419 | 419 | 'email_from_name' => array( |
420 | 420 | 'id' => 'email_from_name', |
421 | - 'name' => __( 'From Name', 'invoicing' ), |
|
422 | - 'desc' => __( 'Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing' ), |
|
423 | - 'std' => esc_attr( get_bloginfo( 'name', 'display' ) ), |
|
421 | + 'name' => __('From Name', 'invoicing'), |
|
422 | + 'desc' => __('Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing'), |
|
423 | + 'std' => esc_attr(get_bloginfo('name', 'display')), |
|
424 | 424 | 'type' => 'text', |
425 | 425 | ), |
426 | 426 | 'email_from' => array( |
427 | 427 | 'id' => 'email_from', |
428 | - 'name' => __( 'From Email', 'invoicing' ), |
|
429 | - 'desc' => sprintf (__( 'Email address to send invoice emails from. This will act as the "from" address. %s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%s', 'invoicing' ), $alert_wrapper_start, $alert_wrapper_close), |
|
430 | - 'std' => get_option( 'admin_email' ), |
|
428 | + 'name' => __('From Email', 'invoicing'), |
|
429 | + 'desc' => sprintf(__('Email address to send invoice emails from. This will act as the "from" address. %s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%s', 'invoicing'), $alert_wrapper_start, $alert_wrapper_close), |
|
430 | + 'std' => get_option('admin_email'), |
|
431 | 431 | 'type' => 'text', |
432 | 432 | ), |
433 | 433 | 'admin_email' => array( |
434 | 434 | 'id' => 'admin_email', |
435 | - 'name' => __( 'Admin Email', 'invoicing' ), |
|
436 | - 'desc' => __( 'Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing' ), |
|
437 | - 'std' => get_option( 'admin_email' ), |
|
435 | + 'name' => __('Admin Email', 'invoicing'), |
|
436 | + 'desc' => __('Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing'), |
|
437 | + 'std' => get_option('admin_email'), |
|
438 | 438 | 'type' => 'text', |
439 | 439 | ), |
440 | 440 | 'skip_email_free_invoice' => array( |
441 | 441 | 'id' => 'skip_email_free_invoice', |
442 | - 'name' => __( 'Skip Free Invoices', 'invoicing' ), |
|
443 | - 'desc' => __( 'Check this to disable sending emails for free invoices.', 'invoicing' ), |
|
442 | + 'name' => __('Skip Free Invoices', 'invoicing'), |
|
443 | + 'desc' => __('Check this to disable sending emails for free invoices.', 'invoicing'), |
|
444 | 444 | 'type' => 'checkbox', |
445 | 445 | 'std' => false, |
446 | 446 | ), |
447 | 447 | 'overdue_settings_header' => array( |
448 | 448 | 'id' => 'overdue_settings_header', |
449 | - 'name' => '<h3>' . __( 'Due Date Settings', 'invoicing' ) . '</h3>', |
|
449 | + 'name' => '<h3>' . __('Due Date Settings', 'invoicing') . '</h3>', |
|
450 | 450 | 'type' => 'header', |
451 | 451 | ), |
452 | 452 | 'overdue_active' => array( |
453 | 453 | 'id' => 'overdue_active', |
454 | - 'name' => __( 'Enable Due Date', 'invoicing' ), |
|
455 | - 'desc' => __( 'Check this to enable due date option for invoices.', 'invoicing' ), |
|
454 | + 'name' => __('Enable Due Date', 'invoicing'), |
|
455 | + 'desc' => __('Check this to enable due date option for invoices.', 'invoicing'), |
|
456 | 456 | 'type' => 'checkbox', |
457 | 457 | 'std' => false, |
458 | 458 | ), |
459 | 459 | 'email_template_header' => array( |
460 | 460 | 'id' => 'email_template_header', |
461 | - 'name' => '<h3>' . __( 'Email Template', 'invoicing' ) . '</h3>', |
|
461 | + 'name' => '<h3>' . __('Email Template', 'invoicing') . '</h3>', |
|
462 | 462 | 'type' => 'header', |
463 | 463 | ), |
464 | 464 | 'email_header_image' => array( |
465 | 465 | 'id' => 'email_header_image', |
466 | - 'name' => __( 'Header Image', 'invoicing' ), |
|
467 | - 'desc' => __( 'URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing' ), |
|
466 | + 'name' => __('Header Image', 'invoicing'), |
|
467 | + 'desc' => __('URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing'), |
|
468 | 468 | 'std' => '', |
469 | 469 | 'type' => 'text', |
470 | 470 | ), |
471 | 471 | 'email_footer_text' => array( |
472 | 472 | 'id' => 'email_footer_text', |
473 | - 'name' => __( 'Footer Text', 'invoicing' ), |
|
474 | - 'desc' => __( 'The text to appear in the footer of all invoice emails.', 'invoicing' ), |
|
475 | - 'std' => get_bloginfo( 'name', 'display' ) . ' - ' . __( 'Powered by GetPaid', 'invoicing' ), |
|
473 | + 'name' => __('Footer Text', 'invoicing'), |
|
474 | + 'desc' => __('The text to appear in the footer of all invoice emails.', 'invoicing'), |
|
475 | + 'std' => get_bloginfo('name', 'display') . ' - ' . __('Powered by GetPaid', 'invoicing'), |
|
476 | 476 | 'type' => 'textarea', |
477 | 477 | 'class' => 'regular-text', |
478 | 478 | 'rows' => 2, |
@@ -480,29 +480,29 @@ discard block |
||
480 | 480 | ), |
481 | 481 | 'email_base_color' => array( |
482 | 482 | 'id' => 'email_base_color', |
483 | - 'name' => __( 'Base Color', 'invoicing' ), |
|
484 | - 'desc' => __( 'The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing' ), |
|
483 | + 'name' => __('Base Color', 'invoicing'), |
|
484 | + 'desc' => __('The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing'), |
|
485 | 485 | 'std' => '#557da2', |
486 | 486 | 'type' => 'color', |
487 | 487 | ), |
488 | 488 | 'email_background_color' => array( |
489 | 489 | 'id' => 'email_background_color', |
490 | - 'name' => __( 'Background Color', 'invoicing' ), |
|
491 | - 'desc' => __( 'The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing' ), |
|
490 | + 'name' => __('Background Color', 'invoicing'), |
|
491 | + 'desc' => __('The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing'), |
|
492 | 492 | 'std' => '#f5f5f5', |
493 | 493 | 'type' => 'color', |
494 | 494 | ), |
495 | 495 | 'email_body_background_color' => array( |
496 | 496 | 'id' => 'email_body_background_color', |
497 | - 'name' => __( 'Body Background Color', 'invoicing' ), |
|
498 | - 'desc' => __( 'The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing' ), |
|
497 | + 'name' => __('Body Background Color', 'invoicing'), |
|
498 | + 'desc' => __('The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing'), |
|
499 | 499 | 'std' => '#fdfdfd', |
500 | 500 | 'type' => 'color', |
501 | 501 | ), |
502 | 502 | 'email_text_color' => array( |
503 | 503 | 'id' => 'email_text_color', |
504 | - 'name' => __( 'Body Text Color', 'invoicing' ), |
|
505 | - 'desc' => __( 'The main body text color. Default <code>#505050</code>.', 'invoicing' ), |
|
504 | + 'name' => __('Body Text Color', 'invoicing'), |
|
505 | + 'desc' => __('The main body text color. Default <code>#505050</code>.', 'invoicing'), |
|
506 | 506 | 'std' => '#505050', |
507 | 507 | 'type' => 'color', |
508 | 508 | ), |
@@ -517,7 +517,7 @@ discard block |
||
517 | 517 | ), |
518 | 518 | |
519 | 519 | // Integrations. |
520 | - 'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'settings', 'id' ), |
|
520 | + 'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'settings', 'id'), |
|
521 | 521 | |
522 | 522 | /** Privacy Settings */ |
523 | 523 | 'privacy' => apply_filters('wpinv_settings_privacy', |
@@ -525,17 +525,17 @@ discard block |
||
525 | 525 | 'main' => array( |
526 | 526 | 'invoicing_privacy_policy_settings' => array( |
527 | 527 | 'id' => 'invoicing_privacy_policy_settings', |
528 | - 'name' => '<h3>' . __( 'Privacy Policy', 'invoicing' ) . '</h3>', |
|
528 | + 'name' => '<h3>' . __('Privacy Policy', 'invoicing') . '</h3>', |
|
529 | 529 | 'type' => 'header', |
530 | 530 | ), |
531 | 531 | 'privacy_page' => array( |
532 | 532 | 'id' => 'privacy_page', |
533 | - 'name' => __( 'Privacy Page', 'invoicing' ), |
|
534 | - 'desc' => __( 'If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing' ), |
|
533 | + 'name' => __('Privacy Page', 'invoicing'), |
|
534 | + 'desc' => __('If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing'), |
|
535 | 535 | 'type' => 'select', |
536 | - 'options' => wpinv_get_pages( true, __( 'Select a page', 'invoicing' )), |
|
536 | + 'options' => wpinv_get_pages(true, __('Select a page', 'invoicing')), |
|
537 | 537 | 'class' => 'wpi_select2', |
538 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
538 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
539 | 539 | ), |
540 | 540 | ), |
541 | 541 | ) |
@@ -546,19 +546,19 @@ discard block |
||
546 | 546 | 'main' => array( |
547 | 547 | 'invoice_number_format_settings' => array( |
548 | 548 | 'id' => 'invoice_number_format_settings', |
549 | - 'name' => '<h3>' . __( 'Invoice Number', 'invoicing' ) . '</h3>', |
|
549 | + 'name' => '<h3>' . __('Invoice Number', 'invoicing') . '</h3>', |
|
550 | 550 | 'type' => 'header', |
551 | 551 | ), |
552 | 552 | 'sequential_invoice_number' => array( |
553 | 553 | 'id' => 'sequential_invoice_number', |
554 | - 'name' => __( 'Sequential Invoice Numbers', 'invoicing' ), |
|
555 | - 'desc' => __('Check this box to enable sequential invoice numbers.', 'invoicing' ) . $reset_number, |
|
554 | + 'name' => __('Sequential Invoice Numbers', 'invoicing'), |
|
555 | + 'desc' => __('Check this box to enable sequential invoice numbers.', 'invoicing') . $reset_number, |
|
556 | 556 | 'type' => 'checkbox', |
557 | 557 | ), |
558 | 558 | 'invoice_sequence_start' => array( |
559 | 559 | 'id' => 'invoice_sequence_start', |
560 | - 'name' => __( 'Sequential Starting Number', 'invoicing' ), |
|
561 | - 'desc' => __( 'The number at which the invoice number sequence should begin.', 'invoicing' ) . $last_number, |
|
560 | + 'name' => __('Sequential Starting Number', 'invoicing'), |
|
561 | + 'desc' => __('The number at which the invoice number sequence should begin.', 'invoicing') . $last_number, |
|
562 | 562 | 'type' => 'number', |
563 | 563 | 'size' => 'small', |
564 | 564 | 'std' => '1', |
@@ -566,8 +566,8 @@ discard block |
||
566 | 566 | ), |
567 | 567 | 'invoice_number_padd' => array( |
568 | 568 | 'id' => 'invoice_number_padd', |
569 | - 'name' => __( 'Minimum Digits', 'invoicing' ), |
|
570 | - 'desc' => __( 'If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing' ), |
|
569 | + 'name' => __('Minimum Digits', 'invoicing'), |
|
570 | + 'desc' => __('If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing'), |
|
571 | 571 | 'type' => 'select', |
572 | 572 | 'options' => $invoice_number_padd_options, |
573 | 573 | 'std' => 5, |
@@ -575,8 +575,8 @@ discard block |
||
575 | 575 | ), |
576 | 576 | 'invoice_number_prefix' => array( |
577 | 577 | 'id' => 'invoice_number_prefix', |
578 | - 'name' => __( 'Invoice Number Prefix', 'invoicing' ), |
|
579 | - 'desc' => __( 'Prefix for all invoice numbers. Ex: INV-', 'invoicing' ), |
|
578 | + 'name' => __('Invoice Number Prefix', 'invoicing'), |
|
579 | + 'desc' => __('Prefix for all invoice numbers. Ex: INV-', 'invoicing'), |
|
580 | 580 | 'type' => 'text', |
581 | 581 | 'size' => 'regular', |
582 | 582 | 'std' => 'INV-', |
@@ -584,46 +584,46 @@ discard block |
||
584 | 584 | ), |
585 | 585 | 'invoice_number_postfix' => array( |
586 | 586 | 'id' => 'invoice_number_postfix', |
587 | - 'name' => __( 'Invoice Number Postfix', 'invoicing' ), |
|
588 | - 'desc' => __( 'Postfix for all invoice numbers.', 'invoicing' ), |
|
587 | + 'name' => __('Invoice Number Postfix', 'invoicing'), |
|
588 | + 'desc' => __('Postfix for all invoice numbers.', 'invoicing'), |
|
589 | 589 | 'type' => 'text', |
590 | 590 | 'size' => 'regular', |
591 | 591 | 'std' => '' |
592 | 592 | ), |
593 | 593 | 'checkout_settings' => array( |
594 | 594 | 'id' => 'checkout_settings', |
595 | - 'name' => '<h3>' . __( 'Checkout Settings', 'invoicing' ) . '</h3>', |
|
595 | + 'name' => '<h3>' . __('Checkout Settings', 'invoicing') . '</h3>', |
|
596 | 596 | 'type' => 'header', |
597 | 597 | ), |
598 | 598 | 'disable_new_user_emails' => array( |
599 | 599 | 'id' => 'disable_new_user_emails', |
600 | - 'name' => __( 'Disable new user emails', 'invoicing' ), |
|
601 | - 'desc' => __( 'Do not send an email to customers when a new user account is created for them.', 'invoicing' ), |
|
600 | + 'name' => __('Disable new user emails', 'invoicing'), |
|
601 | + 'desc' => __('Do not send an email to customers when a new user account is created for them.', 'invoicing'), |
|
602 | 602 | 'type' => 'checkbox', |
603 | 603 | ), |
604 | 604 | 'login_to_checkout' => array( |
605 | 605 | 'id' => 'login_to_checkout', |
606 | - 'name' => __( 'Require Login To Checkout', 'invoicing' ), |
|
607 | - 'desc' => __( 'If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing' ), |
|
606 | + 'name' => __('Require Login To Checkout', 'invoicing'), |
|
607 | + 'desc' => __('If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing'), |
|
608 | 608 | 'type' => 'checkbox', |
609 | 609 | ), |
610 | 610 | 'maxmind_license_key' => array( |
611 | 611 | 'id' => 'maxmind_license_key', |
612 | - 'name' => __( 'MaxMind License Key', 'invoicing' ), |
|
612 | + 'name' => __('MaxMind License Key', 'invoicing'), |
|
613 | 613 | 'type' => 'text', |
614 | 614 | 'size' => 'regular', |
615 | - 'desc' => __( "Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing' ) . ' <a href="https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/">' . __( 'How to generate a free license key.', 'invoicing' ) . '</a>', |
|
615 | + 'desc' => __("Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing') . ' <a href="https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/">' . __('How to generate a free license key.', 'invoicing') . '</a>', |
|
616 | 616 | ), |
617 | 617 | |
618 | 618 | 'uninstall_settings' => array( |
619 | 619 | 'id' => 'uninstall_settings', |
620 | - 'name' => '<h3>' . __( 'Uninstall Settings', 'invoicing' ) . '</h3>', |
|
620 | + 'name' => '<h3>' . __('Uninstall Settings', 'invoicing') . '</h3>', |
|
621 | 621 | 'type' => 'header', |
622 | 622 | ), |
623 | 623 | 'remove_data_on_unistall' => array( |
624 | 624 | 'id' => 'remove_data_on_unistall', |
625 | - 'name' => __( 'Remove Data on Uninstall?', 'invoicing' ), |
|
626 | - 'desc' => __( 'Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing' ), |
|
625 | + 'name' => __('Remove Data on Uninstall?', 'invoicing'), |
|
626 | + 'desc' => __('Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing'), |
|
627 | 627 | 'type' => 'checkbox', |
628 | 628 | 'std' => '' |
629 | 629 | ), |
@@ -632,13 +632,13 @@ discard block |
||
632 | 632 | 'custom-css' => array( |
633 | 633 | 'css_settings' => array( |
634 | 634 | 'id' => 'css_settings', |
635 | - 'name' => '<h3>' . __( 'Custom CSS', 'invoicing' ) . '</h3>', |
|
635 | + 'name' => '<h3>' . __('Custom CSS', 'invoicing') . '</h3>', |
|
636 | 636 | 'type' => 'header', |
637 | 637 | ), |
638 | 638 | 'template_custom_css' => array( |
639 | 639 | 'id' => 'template_custom_css', |
640 | - 'name' => __( 'Invoice Template CSS', 'invoicing' ), |
|
641 | - 'desc' => __( 'Add CSS to modify appearance of the print invoice page.', 'invoicing' ), |
|
640 | + 'name' => __('Invoice Template CSS', 'invoicing'), |
|
641 | + 'desc' => __('Add CSS to modify appearance of the print invoice page.', 'invoicing'), |
|
642 | 642 | 'type' => 'textarea', |
643 | 643 | 'class'=> 'regular-text', |
644 | 644 | 'rows' => 10, |
@@ -652,8 +652,8 @@ discard block |
||
652 | 652 | 'main' => array( |
653 | 653 | 'tool_settings' => array( |
654 | 654 | 'id' => 'tool_settings', |
655 | - 'name' => '<h3>' . __( 'Diagnostic Tools', 'invoicing' ) . '</h3>', |
|
656 | - 'desc' => __( 'Invoicing diagnostic tools', 'invoicing' ), |
|
655 | + 'name' => '<h3>' . __('Diagnostic Tools', 'invoicing') . '</h3>', |
|
656 | + 'desc' => __('Invoicing diagnostic tools', 'invoicing'), |
|
657 | 657 | 'type' => 'tools', |
658 | 658 | ), |
659 | 659 | ), |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | if ( ! defined( 'ABSPATH' ) ) { |
7 | - exit; |
|
7 | + exit; |
|
8 | 8 | } |
9 | 9 | add_ThickBox(); |
10 | 10 | ?> |
@@ -14,18 +14,18 @@ discard block |
||
14 | 14 | <?php if ( $tabs ){ ?> |
15 | 15 | <nav class="nav-tab-wrapper wpi-nav-tab-wrapper"> |
16 | 16 | <?php |
17 | - foreach ( $tabs as $name => $label ) { |
|
18 | - echo '<a href="' . admin_url( 'admin.php?page=wpi-addons&tab=' . $name ) . '" class="nav-tab ' . ( $current_tab == $name ? 'nav-tab-active' : '' ) . '">' . $label . '</a>'; |
|
19 | - } |
|
20 | - do_action( 'wpi_addons_tabs' ); |
|
21 | - ?> |
|
17 | + foreach ( $tabs as $name => $label ) { |
|
18 | + echo '<a href="' . admin_url( 'admin.php?page=wpi-addons&tab=' . $name ) . '" class="nav-tab ' . ( $current_tab == $name ? 'nav-tab-active' : '' ) . '">' . $label . '</a>'; |
|
19 | + } |
|
20 | + do_action( 'wpi_addons_tabs' ); |
|
21 | + ?> |
|
22 | 22 | </nav> |
23 | 23 | |
24 | 24 | <?php |
25 | 25 | |
26 | - if($current_tab == 'membership'){ |
|
26 | + if($current_tab == 'membership'){ |
|
27 | 27 | |
28 | - ?> |
|
28 | + ?> |
|
29 | 29 | |
30 | 30 | <div class="wpi-membership-tab-conatiner"> |
31 | 31 | <div class="membership-content"> |
@@ -36,9 +36,9 @@ discard block |
||
36 | 36 | <h2><?php _e("Have a membership key?","invoicing");?></h2> |
37 | 37 | <p> |
38 | 38 | <?php |
39 | - $wpeu_admin = new External_Updates_Admin('wpinvoicing.com','1'); |
|
40 | - echo $wpeu_admin->render_licence_actions('wpinvoicing.com', 'membership',array(95, 106, 108,12351)); |
|
41 | - ?> |
|
39 | + $wpeu_admin = new External_Updates_Admin('wpinvoicing.com','1'); |
|
40 | + echo $wpeu_admin->render_licence_actions('wpinvoicing.com', 'membership',array(95, 106, 108,12351)); |
|
41 | + ?> |
|
42 | 42 | </p> |
43 | 43 | <?php }?> |
44 | 44 | |
@@ -48,13 +48,13 @@ discard block |
||
48 | 48 | <div class="feature-list"> |
49 | 49 | <ul> |
50 | 50 | <?php |
51 | - $addon_obj = new WPInv_Admin_Addons(); |
|
52 | - if ($addons = $addon_obj->get_section_data( 'addons' ) ) { |
|
53 | - foreach ( $addons as $addon ) { |
|
54 | - echo '<li><i class="far fa-check-circle fa-sm"></i> '.esc_html( $addon->info->title ).'</li>'; |
|
55 | - } |
|
56 | - } |
|
57 | - ?> |
|
51 | + $addon_obj = new WPInv_Admin_Addons(); |
|
52 | + if ($addons = $addon_obj->get_section_data( 'addons' ) ) { |
|
53 | + foreach ( $addons as $addon ) { |
|
54 | + echo '<li><i class="far fa-check-circle fa-sm"></i> '.esc_html( $addon->info->title ).'</li>'; |
|
55 | + } |
|
56 | + } |
|
57 | + ?> |
|
58 | 58 | </ul> |
59 | 59 | |
60 | 60 | <div class="feature-cta"> |
@@ -65,12 +65,12 @@ discard block |
||
65 | 65 | <h3><?php _e("Included Gateways:","invoicing");?></h3> |
66 | 66 | <ul> |
67 | 67 | <?php |
68 | - if ($addons = $addon_obj->get_section_data( 'gateways' ) ) { |
|
69 | - foreach ( $addons as $addon ) { |
|
70 | - echo '<li><i class="far fa-check-circle fa-sm"></i> '.esc_html( $addon->info->title ).'</li>'; |
|
71 | - } |
|
72 | - } |
|
73 | - ?> |
|
68 | + if ($addons = $addon_obj->get_section_data( 'gateways' ) ) { |
|
69 | + foreach ( $addons as $addon ) { |
|
70 | + echo '<li><i class="far fa-check-circle fa-sm"></i> '.esc_html( $addon->info->title ).'</li>'; |
|
71 | + } |
|
72 | + } |
|
73 | + ?> |
|
74 | 74 | </ul> |
75 | 75 | </div> |
76 | 76 | |
@@ -81,8 +81,8 @@ discard block |
||
81 | 81 | <div class="testimonial-content"> |
82 | 82 | <div class="t-image"> |
83 | 83 | <?php |
84 | - echo '<img src="' . plugins_url( 'images/t-image2.png', dirname(__FILE__) ) . '" > '; |
|
85 | - ?> |
|
84 | + echo '<img src="' . plugins_url( 'images/t-image2.png', dirname(__FILE__) ) . '" > '; |
|
85 | + ?> |
|
86 | 86 | </div> |
87 | 87 | <div class="t-content"> |
88 | 88 | <p> |
@@ -101,8 +101,8 @@ discard block |
||
101 | 101 | <div class="testimonial-content"> |
102 | 102 | <div class="t-image"> |
103 | 103 | <?php |
104 | - echo '<img src="' . plugins_url( 'images/t-image1.png', dirname(__FILE__) ) . '" > '; |
|
105 | - ?> |
|
104 | + echo '<img src="' . plugins_url( 'images/t-image1.png', dirname(__FILE__) ) . '" > '; |
|
105 | + ?> |
|
106 | 106 | </div> |
107 | 107 | <div class="t-content"> |
108 | 108 | <p> |
@@ -126,21 +126,21 @@ discard block |
||
126 | 126 | </div> |
127 | 127 | </div> |
128 | 128 | <?php |
129 | - }else{ |
|
130 | - $installed_plugins = get_plugins(); |
|
129 | + }else{ |
|
130 | + $installed_plugins = get_plugins(); |
|
131 | 131 | $addon_obj = new WPInv_Admin_Addons(); |
132 | - if ($addons = $addon_obj->get_section_data( $current_tab ) ) : |
|
133 | - //print_r($addons); |
|
134 | - ?> |
|
132 | + if ($addons = $addon_obj->get_section_data( $current_tab ) ) : |
|
133 | + //print_r($addons); |
|
134 | + ?> |
|
135 | 135 | <ul class="wpi-products"><?php foreach ( $addons as $addon ) : |
136 | 136 | if(965==$addon->info->id){continue;}// don't show quote add on |
137 | - ?><li class="wpi-product"> |
|
137 | + ?><li class="wpi-product"> |
|
138 | 138 | <div class="wpi-product-title"> |
139 | 139 | <h3><?php |
140 | - if ( ! empty( $addon->info->excerpt) ){ |
|
141 | - echo wpi_help_tip( $addon->info->excerpt ); |
|
142 | - } |
|
143 | - echo esc_html( $addon->info->title ); ?></h3> |
|
140 | + if ( ! empty( $addon->info->excerpt) ){ |
|
141 | + echo wpi_help_tip( $addon->info->excerpt ); |
|
142 | + } |
|
143 | + echo esc_html( $addon->info->title ); ?></h3> |
|
144 | 144 | </div> |
145 | 145 | |
146 | 146 | <span class="wpi-product-image"> |
@@ -148,32 +148,32 @@ discard block |
||
148 | 148 | <img src="<?php echo esc_attr( $addon->info->thumbnail ); ?>"/> |
149 | 149 | <?php endif; |
150 | 150 | |
151 | - if ( 'stripe-payment-gateway' == $addon->info->slug ) { |
|
152 | - $addon->info->slug = 'getpaid-stripe-payments'; |
|
153 | - $addon->info->link = 'https://wordpress.org/plugins/getpaid-stripe-payments/'; |
|
154 | - } |
|
155 | - |
|
156 | - if(isset($addon->info->link) && substr( $addon->info->link, 0, 21 ) === "https://wordpress.org"){ |
|
157 | - echo '<a href="'.admin_url('/plugin-install.php?tab=plugin-information&plugin='.$addon->info->slug).'&width=770&height=660&TB_iframe=true" class="thickbox" >'; |
|
158 | - echo '<span class="wpi-product-info">'.__('More info','invoicing').'</span>'; |
|
159 | - echo '</a>'; |
|
160 | - }elseif(isset($addon->info->link) && ( substr( $addon->info->link, 0, 23 ) === "https://wpinvoicing.com" || substr( $addon->info->link, 0, 21 ) === "https://wpgetpaid.com" ) ){ |
|
161 | - if(defined('WP_EASY_UPDATES_ACTIVE')){ |
|
162 | - $url = admin_url('/plugin-install.php?tab=plugin-information&plugin='.$addon->info->slug.'&width=770&height=660&item_id='.$addon->info->id.'&update_url=https://wpgetpaid.com&TB_iframe=true'); |
|
163 | - }else{ |
|
164 | - // if installed show activation link |
|
165 | - if(isset($installed_plugins['wp-easy-updates/external-updates.php'])){ |
|
166 | - $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-activation'; |
|
167 | - }else{ |
|
168 | - $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-for-external'; |
|
169 | - } |
|
170 | - } |
|
171 | - echo '<a href="'.$url.'" class="thickbox">'; |
|
172 | - echo '<span class="wpi-product-info">'.__('More info','invoicing').'</span>'; |
|
173 | - echo '</a>'; |
|
174 | - } |
|
175 | - |
|
176 | - ?> |
|
151 | + if ( 'stripe-payment-gateway' == $addon->info->slug ) { |
|
152 | + $addon->info->slug = 'getpaid-stripe-payments'; |
|
153 | + $addon->info->link = 'https://wordpress.org/plugins/getpaid-stripe-payments/'; |
|
154 | + } |
|
155 | + |
|
156 | + if(isset($addon->info->link) && substr( $addon->info->link, 0, 21 ) === "https://wordpress.org"){ |
|
157 | + echo '<a href="'.admin_url('/plugin-install.php?tab=plugin-information&plugin='.$addon->info->slug).'&width=770&height=660&TB_iframe=true" class="thickbox" >'; |
|
158 | + echo '<span class="wpi-product-info">'.__('More info','invoicing').'</span>'; |
|
159 | + echo '</a>'; |
|
160 | + }elseif(isset($addon->info->link) && ( substr( $addon->info->link, 0, 23 ) === "https://wpinvoicing.com" || substr( $addon->info->link, 0, 21 ) === "https://wpgetpaid.com" ) ){ |
|
161 | + if(defined('WP_EASY_UPDATES_ACTIVE')){ |
|
162 | + $url = admin_url('/plugin-install.php?tab=plugin-information&plugin='.$addon->info->slug.'&width=770&height=660&item_id='.$addon->info->id.'&update_url=https://wpgetpaid.com&TB_iframe=true'); |
|
163 | + }else{ |
|
164 | + // if installed show activation link |
|
165 | + if(isset($installed_plugins['wp-easy-updates/external-updates.php'])){ |
|
166 | + $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-activation'; |
|
167 | + }else{ |
|
168 | + $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-for-external'; |
|
169 | + } |
|
170 | + } |
|
171 | + echo '<a href="'.$url.'" class="thickbox">'; |
|
172 | + echo '<span class="wpi-product-info">'.__('More info','invoicing').'</span>'; |
|
173 | + echo '</a>'; |
|
174 | + } |
|
175 | + |
|
176 | + ?> |
|
177 | 177 | |
178 | 178 | </span> |
179 | 179 | |
@@ -181,15 +181,15 @@ discard block |
||
181 | 181 | <span class="wpi-product-button"> |
182 | 182 | <?php |
183 | 183 | $addon_obj->output_button( $addon ); |
184 | - ?> |
|
184 | + ?> |
|
185 | 185 | </span> |
186 | 186 | |
187 | 187 | <span class="wpi-price"><?php //print_r($addon); //echo wp_kses_post( $addon->price ); ?></span></li><?php endforeach; ?></ul> |
188 | 188 | <?php endif; |
189 | - } |
|
189 | + } |
|
190 | 190 | |
191 | - } |
|
192 | - ?> |
|
191 | + } |
|
192 | + ?> |
|
193 | 193 | |
194 | 194 | |
195 | 195 | <div class="clearfix" ></div> |
@@ -208,8 +208,8 @@ discard block |
||
208 | 208 | <input class="wpeu-licence-key" type="text" placeholder="<?php _e("Enter your licence key",'invoicing');?>"> <button class="button-primary wpeu-licence-popup-button" ><?php _e("Install",'invoicing');?></button> |
209 | 209 | <br> |
210 | 210 | <?php |
211 | - echo sprintf( __('%sFind your licence key here%s OR %sBuy one here%s', 'invoicing'), '<a href="https://wpinvoicing.com/your-account/" target="_blank">','</a>','<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">','</a>' ); |
|
212 | - ?> |
|
211 | + echo sprintf( __('%sFind your licence key here%s OR %sBuy one here%s', 'invoicing'), '<a href="https://wpinvoicing.com/your-account/" target="_blank">','</a>','<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">','</a>' ); |
|
212 | + ?> |
|
213 | 213 | </span> |
214 | 214 | </div> |
215 | 215 |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * Admin View: Page - Addons |
4 | 4 | * |
5 | 5 | */ |
6 | -if ( ! defined( 'ABSPATH' ) ) { |
|
6 | +if (!defined('ABSPATH')) { |
|
7 | 7 | exit; |
8 | 8 | } |
9 | 9 | add_ThickBox(); |
@@ -11,19 +11,19 @@ discard block |
||
11 | 11 | <div class="wrap wpi_addons_wrap"> |
12 | 12 | <h1><?php echo get_admin_page_title(); ?></h1> |
13 | 13 | |
14 | - <?php if ( $tabs ){ ?> |
|
14 | + <?php if ($tabs) { ?> |
|
15 | 15 | <nav class="nav-tab-wrapper wpi-nav-tab-wrapper"> |
16 | 16 | <?php |
17 | - foreach ( $tabs as $name => $label ) { |
|
18 | - echo '<a href="' . admin_url( 'admin.php?page=wpi-addons&tab=' . $name ) . '" class="nav-tab ' . ( $current_tab == $name ? 'nav-tab-active' : '' ) . '">' . $label . '</a>'; |
|
17 | + foreach ($tabs as $name => $label) { |
|
18 | + echo '<a href="' . admin_url('admin.php?page=wpi-addons&tab=' . $name) . '" class="nav-tab ' . ($current_tab == $name ? 'nav-tab-active' : '') . '">' . $label . '</a>'; |
|
19 | 19 | } |
20 | - do_action( 'wpi_addons_tabs' ); |
|
20 | + do_action('wpi_addons_tabs'); |
|
21 | 21 | ?> |
22 | 22 | </nav> |
23 | 23 | |
24 | 24 | <?php |
25 | 25 | |
26 | - if($current_tab == 'membership'){ |
|
26 | + if ($current_tab == 'membership') { |
|
27 | 27 | |
28 | 28 | ?> |
29 | 29 | |
@@ -32,42 +32,42 @@ discard block |
||
32 | 32 | <!-- |
33 | 33 | <h2>With our WPInvoicing Membership you get access to all our products!</h2> |
34 | 34 | <p><a class="button button-primary" href="https://wpinvoicing.com/downloads/membership/">View Memberships</a></p>--> |
35 | - <?php if(defined('WP_EASY_UPDATES_ACTIVE')){?> |
|
36 | - <h2><?php _e("Have a membership key?","invoicing");?></h2> |
|
35 | + <?php if (defined('WP_EASY_UPDATES_ACTIVE')) {?> |
|
36 | + <h2><?php _e("Have a membership key?", "invoicing"); ?></h2> |
|
37 | 37 | <p> |
38 | 38 | <?php |
39 | - $wpeu_admin = new External_Updates_Admin('wpinvoicing.com','1'); |
|
40 | - echo $wpeu_admin->render_licence_actions('wpinvoicing.com', 'membership',array(95, 106, 108,12351)); |
|
39 | + $wpeu_admin = new External_Updates_Admin('wpinvoicing.com', '1'); |
|
40 | + echo $wpeu_admin->render_licence_actions('wpinvoicing.com', 'membership', array(95, 106, 108, 12351)); |
|
41 | 41 | ?> |
42 | 42 | </p> |
43 | 43 | <?php }?> |
44 | 44 | |
45 | 45 | <div class="membership-cta-contet"> |
46 | 46 | <div class="main-cta"> |
47 | - <h2><?php _e("Membership benefits Include:","invoicing");?></h2> |
|
47 | + <h2><?php _e("Membership benefits Include:", "invoicing"); ?></h2> |
|
48 | 48 | <div class="feature-list"> |
49 | 49 | <ul> |
50 | 50 | <?php |
51 | 51 | $addon_obj = new WPInv_Admin_Addons(); |
52 | - if ($addons = $addon_obj->get_section_data( 'addons' ) ) { |
|
53 | - foreach ( $addons as $addon ) { |
|
54 | - echo '<li><i class="far fa-check-circle fa-sm"></i> '.esc_html( $addon->info->title ).'</li>'; |
|
52 | + if ($addons = $addon_obj->get_section_data('addons')) { |
|
53 | + foreach ($addons as $addon) { |
|
54 | + echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html($addon->info->title) . '</li>'; |
|
55 | 55 | } |
56 | 56 | } |
57 | 57 | ?> |
58 | 58 | </ul> |
59 | 59 | |
60 | 60 | <div class="feature-cta"> |
61 | - <h3><?php _e("Membership Starts from","invoicing");?></h3> |
|
61 | + <h3><?php _e("Membership Starts from", "invoicing"); ?></h3> |
|
62 | 62 | <h4>$99</h4> |
63 | - <a href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php _e("Buy Membership","invoicing");?></a> |
|
63 | + <a href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php _e("Buy Membership", "invoicing"); ?></a> |
|
64 | 64 | </div> |
65 | - <h3><?php _e("Included Gateways:","invoicing");?></h3> |
|
65 | + <h3><?php _e("Included Gateways:", "invoicing"); ?></h3> |
|
66 | 66 | <ul> |
67 | 67 | <?php |
68 | - if ($addons = $addon_obj->get_section_data( 'gateways' ) ) { |
|
69 | - foreach ( $addons as $addon ) { |
|
70 | - echo '<li><i class="far fa-check-circle fa-sm"></i> '.esc_html( $addon->info->title ).'</li>'; |
|
68 | + if ($addons = $addon_obj->get_section_data('gateways')) { |
|
69 | + foreach ($addons as $addon) { |
|
70 | + echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html($addon->info->title) . '</li>'; |
|
71 | 71 | } |
72 | 72 | } |
73 | 73 | ?> |
@@ -81,7 +81,7 @@ discard block |
||
81 | 81 | <div class="testimonial-content"> |
82 | 82 | <div class="t-image"> |
83 | 83 | <?php |
84 | - echo '<img src="' . plugins_url( 'images/t-image2.png', dirname(__FILE__) ) . '" > '; |
|
84 | + echo '<img src="' . plugins_url('images/t-image2.png', dirname(__FILE__)) . '" > '; |
|
85 | 85 | ?> |
86 | 86 | </div> |
87 | 87 | <div class="t-content"> |
@@ -101,7 +101,7 @@ discard block |
||
101 | 101 | <div class="testimonial-content"> |
102 | 102 | <div class="t-image"> |
103 | 103 | <?php |
104 | - echo '<img src="' . plugins_url( 'images/t-image1.png', dirname(__FILE__) ) . '" > '; |
|
104 | + echo '<img src="' . plugins_url('images/t-image1.png', dirname(__FILE__)) . '" > '; |
|
105 | 105 | ?> |
106 | 106 | </div> |
107 | 107 | <div class="t-content"> |
@@ -117,8 +117,8 @@ discard block |
||
117 | 117 | </div> |
118 | 118 | </div> |
119 | 119 | <div class="member-footer"> |
120 | - <a class="footer-btn" href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php _e("Buy Membership","invoicing");?></a> |
|
121 | - <a class="footer-link" href="post-new.php?post_type=wpi_invoice"><?php _e("Create Invoice","invoicing");?></a> |
|
120 | + <a class="footer-btn" href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php _e("Buy Membership", "invoicing"); ?></a> |
|
121 | + <a class="footer-link" href="post-new.php?post_type=wpi_invoice"><?php _e("Create Invoice", "invoicing"); ?></a> |
|
122 | 122 | </div> |
123 | 123 | </div> |
124 | 124 | |
@@ -126,50 +126,50 @@ discard block |
||
126 | 126 | </div> |
127 | 127 | </div> |
128 | 128 | <?php |
129 | - }else{ |
|
129 | + } else { |
|
130 | 130 | $installed_plugins = get_plugins(); |
131 | 131 | $addon_obj = new WPInv_Admin_Addons(); |
132 | - if ($addons = $addon_obj->get_section_data( $current_tab ) ) : |
|
132 | + if ($addons = $addon_obj->get_section_data($current_tab)) : |
|
133 | 133 | //print_r($addons); |
134 | 134 | ?> |
135 | - <ul class="wpi-products"><?php foreach ( $addons as $addon ) : |
|
136 | - if(965==$addon->info->id){continue;}// don't show quote add on |
|
135 | + <ul class="wpi-products"><?php foreach ($addons as $addon) : |
|
136 | + if (965 == $addon->info->id) {continue; }// don't show quote add on |
|
137 | 137 | ?><li class="wpi-product"> |
138 | 138 | <div class="wpi-product-title"> |
139 | 139 | <h3><?php |
140 | - if ( ! empty( $addon->info->excerpt) ){ |
|
141 | - echo wpi_help_tip( $addon->info->excerpt ); |
|
140 | + if (!empty($addon->info->excerpt)) { |
|
141 | + echo wpi_help_tip($addon->info->excerpt); |
|
142 | 142 | } |
143 | - echo esc_html( $addon->info->title ); ?></h3> |
|
143 | + echo esc_html($addon->info->title); ?></h3> |
|
144 | 144 | </div> |
145 | 145 | |
146 | 146 | <span class="wpi-product-image"> |
147 | - <?php if ( ! empty( $addon->info->thumbnail) ) : ?> |
|
148 | - <img src="<?php echo esc_attr( $addon->info->thumbnail ); ?>"/> |
|
147 | + <?php if (!empty($addon->info->thumbnail)) : ?> |
|
148 | + <img src="<?php echo esc_attr($addon->info->thumbnail); ?>"/> |
|
149 | 149 | <?php endif; |
150 | 150 | |
151 | - if ( 'stripe-payment-gateway' == $addon->info->slug ) { |
|
151 | + if ('stripe-payment-gateway' == $addon->info->slug) { |
|
152 | 152 | $addon->info->slug = 'getpaid-stripe-payments'; |
153 | 153 | $addon->info->link = 'https://wordpress.org/plugins/getpaid-stripe-payments/'; |
154 | 154 | } |
155 | 155 | |
156 | - if(isset($addon->info->link) && substr( $addon->info->link, 0, 21 ) === "https://wordpress.org"){ |
|
157 | - echo '<a href="'.admin_url('/plugin-install.php?tab=plugin-information&plugin='.$addon->info->slug).'&width=770&height=660&TB_iframe=true" class="thickbox" >'; |
|
158 | - echo '<span class="wpi-product-info">'.__('More info','invoicing').'</span>'; |
|
156 | + if (isset($addon->info->link) && substr($addon->info->link, 0, 21) === "https://wordpress.org") { |
|
157 | + echo '<a href="' . admin_url('/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug) . '&width=770&height=660&TB_iframe=true" class="thickbox" >'; |
|
158 | + echo '<span class="wpi-product-info">' . __('More info', 'invoicing') . '</span>'; |
|
159 | 159 | echo '</a>'; |
160 | - }elseif(isset($addon->info->link) && ( substr( $addon->info->link, 0, 23 ) === "https://wpinvoicing.com" || substr( $addon->info->link, 0, 21 ) === "https://wpgetpaid.com" ) ){ |
|
161 | - if(defined('WP_EASY_UPDATES_ACTIVE')){ |
|
162 | - $url = admin_url('/plugin-install.php?tab=plugin-information&plugin='.$addon->info->slug.'&width=770&height=660&item_id='.$addon->info->id.'&update_url=https://wpgetpaid.com&TB_iframe=true'); |
|
163 | - }else{ |
|
160 | + }elseif (isset($addon->info->link) && (substr($addon->info->link, 0, 23) === "https://wpinvoicing.com" || substr($addon->info->link, 0, 21) === "https://wpgetpaid.com")) { |
|
161 | + if (defined('WP_EASY_UPDATES_ACTIVE')) { |
|
162 | + $url = admin_url('/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug . '&width=770&height=660&item_id=' . $addon->info->id . '&update_url=https://wpgetpaid.com&TB_iframe=true'); |
|
163 | + } else { |
|
164 | 164 | // if installed show activation link |
165 | - if(isset($installed_plugins['wp-easy-updates/external-updates.php'])){ |
|
165 | + if (isset($installed_plugins['wp-easy-updates/external-updates.php'])) { |
|
166 | 166 | $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-activation'; |
167 | - }else{ |
|
167 | + } else { |
|
168 | 168 | $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-for-external'; |
169 | 169 | } |
170 | 170 | } |
171 | - echo '<a href="'.$url.'" class="thickbox">'; |
|
172 | - echo '<span class="wpi-product-info">'.__('More info','invoicing').'</span>'; |
|
171 | + echo '<a href="' . $url . '" class="thickbox">'; |
|
172 | + echo '<span class="wpi-product-info">' . __('More info', 'invoicing') . '</span>'; |
|
173 | 173 | echo '</a>'; |
174 | 174 | } |
175 | 175 | |
@@ -180,7 +180,7 @@ discard block |
||
180 | 180 | |
181 | 181 | <span class="wpi-product-button"> |
182 | 182 | <?php |
183 | - $addon_obj->output_button( $addon ); |
|
183 | + $addon_obj->output_button($addon); |
|
184 | 184 | ?> |
185 | 185 | </span> |
186 | 186 | |
@@ -194,21 +194,21 @@ discard block |
||
194 | 194 | |
195 | 195 | <div class="clearfix" ></div> |
196 | 196 | |
197 | - <?php if($current_tab =='addons'){ ?> |
|
198 | - <p><?php printf( __( 'All of our Invoicing Addons can be found on WPInvoicing.com here: <a href="%s">Invoicing Addons</a>', 'invoicing' ), 'https://wpinvoicing.com/downloads/category/addons/' ); ?></p> |
|
199 | - <?php } if($current_tab =='gateways'){ ?> |
|
200 | - <p><?php printf( __( 'All of our Invoicing Payment Gateways can be found on WPInvoicing.com here: <a href="%s">Invoicing Payment Gateways</a>', 'invoicing' ), 'https://wpinvoicing.com/downloads/category/gateways/' ); ?></p> |
|
197 | + <?php if ($current_tab == 'addons') { ?> |
|
198 | + <p><?php printf(__('All of our Invoicing Addons can be found on WPInvoicing.com here: <a href="%s">Invoicing Addons</a>', 'invoicing'), 'https://wpinvoicing.com/downloads/category/addons/'); ?></p> |
|
199 | + <?php } if ($current_tab == 'gateways') { ?> |
|
200 | + <p><?php printf(__('All of our Invoicing Payment Gateways can be found on WPInvoicing.com here: <a href="%s">Invoicing Payment Gateways</a>', 'invoicing'), 'https://wpinvoicing.com/downloads/category/gateways/'); ?></p> |
|
201 | 201 | <?php } ?> |
202 | 202 | |
203 | - <div id="wpi-wpeu-required-activation" style="display:none;"><span class="wpi-notification "><?php printf( __("The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s'>activate</a> it now.",'invoicing'),wp_nonce_url(admin_url('plugins.php?action=activate&plugin=wp-easy-updates/external-updates.php'), 'activate-plugin_wp-easy-updates/external-updates.php'));?></span></div> |
|
204 | - <div id="wpi-wpeu-required-for-external" style="display:none;"><span class="wpi-notification "><?php printf( __("The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s' onclick='window.open(\"https://wpeasyupdates.com/wp-easy-updates.zip\", \"_blank\");' >download</a> and install it now.",'invoicing'),admin_url("plugin-install.php?tab=upload&wpeu-install=true"));?></span></div> |
|
203 | + <div id="wpi-wpeu-required-activation" style="display:none;"><span class="wpi-notification "><?php printf(__("The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s'>activate</a> it now.", 'invoicing'), wp_nonce_url(admin_url('plugins.php?action=activate&plugin=wp-easy-updates/external-updates.php'), 'activate-plugin_wp-easy-updates/external-updates.php')); ?></span></div> |
|
204 | + <div id="wpi-wpeu-required-for-external" style="display:none;"><span class="wpi-notification "><?php printf(__("The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s' onclick='window.open(\"https://wpeasyupdates.com/wp-easy-updates.zip\", \"_blank\");' >download</a> and install it now.", 'invoicing'), admin_url("plugin-install.php?tab=upload&wpeu-install=true")); ?></span></div> |
|
205 | 205 | <div id="wpeu-licence-popup" style="display:none;"> |
206 | 206 | <span class="wpi-notification noti-white"> |
207 | - <h3 class="wpeu-licence-title"><?php _e("Licence key",'invoicing');?></h3> |
|
208 | - <input class="wpeu-licence-key" type="text" placeholder="<?php _e("Enter your licence key",'invoicing');?>"> <button class="button-primary wpeu-licence-popup-button" ><?php _e("Install",'invoicing');?></button> |
|
207 | + <h3 class="wpeu-licence-title"><?php _e("Licence key", 'invoicing'); ?></h3> |
|
208 | + <input class="wpeu-licence-key" type="text" placeholder="<?php _e("Enter your licence key", 'invoicing'); ?>"> <button class="button-primary wpeu-licence-popup-button" ><?php _e("Install", 'invoicing'); ?></button> |
|
209 | 209 | <br> |
210 | 210 | <?php |
211 | - echo sprintf( __('%sFind your licence key here%s OR %sBuy one here%s', 'invoicing'), '<a href="https://wpinvoicing.com/your-account/" target="_blank">','</a>','<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">','</a>' ); |
|
211 | + echo sprintf(__('%sFind your licence key here%s OR %sBuy one here%s', 'invoicing'), '<a href="https://wpinvoicing.com/your-account/" target="_blank">', '</a>', '<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">', '</a>'); |
|
212 | 212 | ?> |
213 | 213 | </span> |
214 | 214 | </div> |
@@ -126,7 +126,7 @@ discard block |
||
126 | 126 | </div> |
127 | 127 | </div> |
128 | 128 | <?php |
129 | - }else{ |
|
129 | + } else{ |
|
130 | 130 | $installed_plugins = get_plugins(); |
131 | 131 | $addon_obj = new WPInv_Admin_Addons(); |
132 | 132 | if ($addons = $addon_obj->get_section_data( $current_tab ) ) : |
@@ -157,14 +157,14 @@ discard block |
||
157 | 157 | echo '<a href="'.admin_url('/plugin-install.php?tab=plugin-information&plugin='.$addon->info->slug).'&width=770&height=660&TB_iframe=true" class="thickbox" >'; |
158 | 158 | echo '<span class="wpi-product-info">'.__('More info','invoicing').'</span>'; |
159 | 159 | echo '</a>'; |
160 | - }elseif(isset($addon->info->link) && ( substr( $addon->info->link, 0, 23 ) === "https://wpinvoicing.com" || substr( $addon->info->link, 0, 21 ) === "https://wpgetpaid.com" ) ){ |
|
160 | + } elseif(isset($addon->info->link) && ( substr( $addon->info->link, 0, 23 ) === "https://wpinvoicing.com" || substr( $addon->info->link, 0, 21 ) === "https://wpgetpaid.com" ) ){ |
|
161 | 161 | if(defined('WP_EASY_UPDATES_ACTIVE')){ |
162 | 162 | $url = admin_url('/plugin-install.php?tab=plugin-information&plugin='.$addon->info->slug.'&width=770&height=660&item_id='.$addon->info->id.'&update_url=https://wpgetpaid.com&TB_iframe=true'); |
163 | - }else{ |
|
163 | + } else{ |
|
164 | 164 | // if installed show activation link |
165 | 165 | if(isset($installed_plugins['wp-easy-updates/external-updates.php'])){ |
166 | 166 | $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-activation'; |
167 | - }else{ |
|
167 | + } else{ |
|
168 | 168 | $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-for-external'; |
169 | 169 | } |
170 | 170 | } |
@@ -13,9 +13,9 @@ discard block |
||
13 | 13 | |
14 | 14 | |
15 | 15 | function wpinv_get_default_country() { |
16 | - $country = wpinv_get_option( 'default_country', 'UK' ); |
|
16 | + $country = wpinv_get_option( 'default_country', 'UK' ); |
|
17 | 17 | |
18 | - return apply_filters( 'wpinv_default_country', $country ); |
|
18 | + return apply_filters( 'wpinv_default_country', $country ); |
|
19 | 19 | } |
20 | 20 | |
21 | 21 | /** |
@@ -36,7 +36,7 @@ discard block |
||
36 | 36 | */ |
37 | 37 | function wpinv_sanitize_country( $country ) { |
38 | 38 | |
39 | - // Enure the country is specified |
|
39 | + // Enure the country is specified |
|
40 | 40 | if ( empty( $country ) ) { |
41 | 41 | $country = wpinv_get_default_country(); |
42 | 42 | } |
@@ -66,9 +66,9 @@ discard block |
||
66 | 66 | } |
67 | 67 | |
68 | 68 | function wpinv_get_default_state() { |
69 | - $state = wpinv_get_option( 'default_state', '' ); |
|
69 | + $state = wpinv_get_option( 'default_state', '' ); |
|
70 | 70 | |
71 | - return apply_filters( 'wpinv_default_state', $state ); |
|
71 | + return apply_filters( 'wpinv_default_state', $state ); |
|
72 | 72 | } |
73 | 73 | |
74 | 74 | function wpinv_state_name( $state_code = '', $country_code = '' ) { |
@@ -305,11 +305,11 @@ discard block |
||
305 | 305 | |
306 | 306 | $country = wpinv_sanitize_country( $country ); |
307 | 307 | |
308 | - foreach ( wpinv_get_continents( 'countries' ) as $continent_code => $countries ) { |
|
309 | - if ( false !== array_search( $country, $countries, true ) ) { |
|
310 | - return $continent_code; |
|
311 | - } |
|
312 | - } |
|
308 | + foreach ( wpinv_get_continents( 'countries' ) as $continent_code => $countries ) { |
|
309 | + if ( false !== array_search( $country, $countries, true ) ) { |
|
310 | + return $continent_code; |
|
311 | + } |
|
312 | + } |
|
313 | 313 | |
314 | 314 | return ''; |
315 | 315 | |
@@ -601,33 +601,33 @@ discard block |
||
601 | 601 | } |
602 | 602 | |
603 | 603 | function wpinv_get_states_field() { |
604 | - if( empty( $_POST['country'] ) ) { |
|
605 | - $_POST['country'] = wpinv_get_default_country(); |
|
606 | - } |
|
607 | - $states = wpinv_get_country_states( sanitize_text_field( $_POST['country'] ) ); |
|
604 | + if( empty( $_POST['country'] ) ) { |
|
605 | + $_POST['country'] = wpinv_get_default_country(); |
|
606 | + } |
|
607 | + $states = wpinv_get_country_states( sanitize_text_field( $_POST['country'] ) ); |
|
608 | 608 | |
609 | - if( !empty( $states ) ) { |
|
610 | - $sanitized_field_name = sanitize_text_field( $_POST['field_name'] ); |
|
609 | + if( !empty( $states ) ) { |
|
610 | + $sanitized_field_name = sanitize_text_field( $_POST['field_name'] ); |
|
611 | 611 | |
612 | 612 | $class = isset( $_POST['class'] ) ? esc_attr( $_POST['class'] ) : ''; |
613 | 613 | $class .= " $sanitized_field_name getpaid_js_field-state custom-select wpinv-select wpi_select2"; |
614 | 614 | |
615 | 615 | $args = array( |
616 | - 'name' => $sanitized_field_name, |
|
617 | - 'id' => $sanitized_field_name, |
|
618 | - 'class' => implode( ' ', array_unique( explode( ' ', $class ) ) ), |
|
619 | - 'options' => array_merge( array( '' => '' ), $states ), |
|
620 | - 'show_option_all' => false, |
|
621 | - 'show_option_none' => false |
|
622 | - ); |
|
623 | - |
|
624 | - $response = wpinv_html_select( $args ); |
|
625 | - |
|
626 | - } else { |
|
627 | - $response = 'nostates'; |
|
628 | - } |
|
616 | + 'name' => $sanitized_field_name, |
|
617 | + 'id' => $sanitized_field_name, |
|
618 | + 'class' => implode( ' ', array_unique( explode( ' ', $class ) ) ), |
|
619 | + 'options' => array_merge( array( '' => '' ), $states ), |
|
620 | + 'show_option_all' => false, |
|
621 | + 'show_option_none' => false |
|
622 | + ); |
|
623 | + |
|
624 | + $response = wpinv_html_select( $args ); |
|
625 | + |
|
626 | + } else { |
|
627 | + $response = 'nostates'; |
|
628 | + } |
|
629 | 629 | |
630 | - return $response; |
|
630 | + return $response; |
|
631 | 631 | } |
632 | 632 | |
633 | 633 | function wpinv_default_billing_country( $country = '', $user_id = 0 ) { |
@@ -645,46 +645,46 @@ discard block |
||
645 | 645 | */ |
646 | 646 | function wpinv_get_address_formats() { |
647 | 647 | |
648 | - return apply_filters( 'wpinv_localisation_address_formats', |
|
649 | - array( |
|
650 | - 'default' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}\n{{zip}}\n{{country}}", |
|
651 | - 'AU' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}} {{zip}}\n{{country}}", |
|
652 | - 'AT' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
653 | - 'BE' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
654 | - 'CA' => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{state_code}} {{zip}}\n{{country}}", |
|
655 | - 'CH' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
656 | - 'CL' => "{{company}}\n{{name}}\n{{address}}\n{{state}}\n{{zip}} {{city}}\n{{country}}", |
|
657 | - 'CN' => "{{country}} {{zip}}\n{{state}}, {{city}}, {{address}}\n{{company}}\n{{name}}", |
|
658 | - 'CZ' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
659 | - 'DE' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
660 | - 'EE' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
661 | - 'FI' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
662 | - 'DK' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
663 | - 'FR' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city_upper}}\n{{country}}", |
|
664 | - 'HK' => "{{company}}\n{{first_name}} {{last_name_upper}}\n{{address}}\n{{city_upper}}\n{{state_upper}}\n{{country}}", |
|
665 | - 'HU' => "{{name}}\n{{company}}\n{{city}}\n{{address}}\n{{zip}}\n{{country}}", |
|
666 | - 'IN' => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{zip}}\n{{state}}, {{country}}", |
|
667 | - 'IS' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
668 | - 'IT' => "{{company}}\n{{name}}\n{{address}}\n{{zip}}\n{{city}}\n{{state_upper}}\n{{country}}", |
|
669 | - 'JP' => "{{zip}}\n{{state}} {{city}} {{address}}\n{{company}}\n{{last_name}} {{first_name}}\n{{country}}", |
|
670 | - 'TW' => "{{company}}\n{{last_name}} {{first_name}}\n{{address}}\n{{state}}, {{city}} {{zip}}\n{{country}}", |
|
671 | - 'LI' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
672 | - 'NL' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
673 | - 'NZ' => "{{name}}\n{{company}}\n{{address}}\n{{city}} {{zip}}\n{{country}}", |
|
674 | - 'NO' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
675 | - 'PL' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
676 | - 'PT' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
677 | - 'SK' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
678 | - 'RS' => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
679 | - 'SI' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
680 | - 'ES' => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{state}}\n{{country}}", |
|
681 | - 'SE' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
682 | - 'TR' => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}} {{state}}\n{{country}}", |
|
683 | - 'UG' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}, {{country}}", |
|
684 | - 'US' => "{{name}}\n{{company}}\n{{address}}\n{{city}}, {{state_code}} {{zip}}\n{{country}}", |
|
685 | - 'VN' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{country}}", |
|
686 | - ) |
|
687 | - ); |
|
648 | + return apply_filters( 'wpinv_localisation_address_formats', |
|
649 | + array( |
|
650 | + 'default' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}\n{{zip}}\n{{country}}", |
|
651 | + 'AU' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}} {{zip}}\n{{country}}", |
|
652 | + 'AT' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
653 | + 'BE' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
654 | + 'CA' => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{state_code}} {{zip}}\n{{country}}", |
|
655 | + 'CH' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
656 | + 'CL' => "{{company}}\n{{name}}\n{{address}}\n{{state}}\n{{zip}} {{city}}\n{{country}}", |
|
657 | + 'CN' => "{{country}} {{zip}}\n{{state}}, {{city}}, {{address}}\n{{company}}\n{{name}}", |
|
658 | + 'CZ' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
659 | + 'DE' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
660 | + 'EE' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
661 | + 'FI' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
662 | + 'DK' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
663 | + 'FR' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city_upper}}\n{{country}}", |
|
664 | + 'HK' => "{{company}}\n{{first_name}} {{last_name_upper}}\n{{address}}\n{{city_upper}}\n{{state_upper}}\n{{country}}", |
|
665 | + 'HU' => "{{name}}\n{{company}}\n{{city}}\n{{address}}\n{{zip}}\n{{country}}", |
|
666 | + 'IN' => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{zip}}\n{{state}}, {{country}}", |
|
667 | + 'IS' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
668 | + 'IT' => "{{company}}\n{{name}}\n{{address}}\n{{zip}}\n{{city}}\n{{state_upper}}\n{{country}}", |
|
669 | + 'JP' => "{{zip}}\n{{state}} {{city}} {{address}}\n{{company}}\n{{last_name}} {{first_name}}\n{{country}}", |
|
670 | + 'TW' => "{{company}}\n{{last_name}} {{first_name}}\n{{address}}\n{{state}}, {{city}} {{zip}}\n{{country}}", |
|
671 | + 'LI' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
672 | + 'NL' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
673 | + 'NZ' => "{{name}}\n{{company}}\n{{address}}\n{{city}} {{zip}}\n{{country}}", |
|
674 | + 'NO' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
675 | + 'PL' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
676 | + 'PT' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
677 | + 'SK' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
678 | + 'RS' => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
679 | + 'SI' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
680 | + 'ES' => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{state}}\n{{country}}", |
|
681 | + 'SE' => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}", |
|
682 | + 'TR' => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}} {{state}}\n{{country}}", |
|
683 | + 'UG' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}, {{country}}", |
|
684 | + 'US' => "{{name}}\n{{company}}\n{{address}}\n{{city}}, {{state_code}} {{zip}}\n{{country}}", |
|
685 | + 'VN' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{country}}", |
|
686 | + ) |
|
687 | + ); |
|
688 | 688 | } |
689 | 689 | |
690 | 690 | /** |
@@ -701,21 +701,21 @@ discard block |
||
701 | 701 | } |
702 | 702 | |
703 | 703 | // Get all formats. |
704 | - $formats = wpinv_get_address_formats(); |
|
704 | + $formats = wpinv_get_address_formats(); |
|
705 | 705 | |
706 | - // Get format for the specified country. |
|
707 | - $format = ( $country && isset( $formats[ $country ] ) ) ? $formats[ $country ] : $formats['default']; |
|
706 | + // Get format for the specified country. |
|
707 | + $format = ( $country && isset( $formats[ $country ] ) ) ? $formats[ $country ] : $formats['default']; |
|
708 | 708 | |
709 | 709 | /** |
710 | - * Filters the address format to use on Invoices. |
|
710 | + * Filters the address format to use on Invoices. |
|
711 | 711 | * |
712 | 712 | * New lines will be replaced by a `br` element. Double new lines will be replaced by a paragraph. HTML tags are allowed. |
713 | - * |
|
714 | - * @since 1.0.13 |
|
715 | - * |
|
716 | - * @param string $format The address format to use. |
|
713 | + * |
|
714 | + * @since 1.0.13 |
|
715 | + * |
|
716 | + * @param string $format The address format to use. |
|
717 | 717 | * @param string $country The country who's address format is being retrieved. |
718 | - */ |
|
718 | + */ |
|
719 | 719 | return apply_filters( 'wpinv_get_full_address_format', $format, $country ); |
720 | 720 | } |
721 | 721 | |
@@ -736,8 +736,8 @@ discard block |
||
736 | 736 | 'country' => '', |
737 | 737 | 'zip' => '', |
738 | 738 | 'first_name' => '', |
739 | - 'last_name' => '', |
|
740 | - 'company' => '', |
|
739 | + 'last_name' => '', |
|
740 | + 'company' => '', |
|
741 | 741 | ); |
742 | 742 | |
743 | 743 | $args = map_deep( wp_parse_args( $billing_details, $default_args ), 'trim' ); |
@@ -758,14 +758,14 @@ discard block |
||
758 | 758 | $args['country_code']= $country; |
759 | 759 | |
760 | 760 | /** |
761 | - * Filters the address format replacements to use on Invoices. |
|
761 | + * Filters the address format replacements to use on Invoices. |
|
762 | 762 | * |
763 | - * |
|
764 | - * @since 1.0.13 |
|
765 | - * |
|
766 | - * @param array $replacements The address replacements to use. |
|
763 | + * |
|
764 | + * @since 1.0.13 |
|
765 | + * |
|
766 | + * @param array $replacements The address replacements to use. |
|
767 | 767 | * @param array $billing_details The billing details to use. |
768 | - */ |
|
768 | + */ |
|
769 | 769 | $replacements = apply_filters( 'wpinv_get_invoice_address_replacements', $args, $billing_details ); |
770 | 770 | |
771 | 771 | $return = array(); |
@@ -788,5 +788,5 @@ discard block |
||
788 | 788 | * @return string |
789 | 789 | */ |
790 | 790 | function wpinv_trim_formatted_address_line( $line ) { |
791 | - return trim( $line, ', ' ); |
|
791 | + return trim( $line, ', ' ); |
|
792 | 792 | } |
793 | 793 | \ No newline at end of file |
@@ -7,15 +7,15 @@ discard block |
||
7 | 7 | */ |
8 | 8 | |
9 | 9 | // MUST have WordPress. |
10 | -if ( !defined( 'WPINC' ) ) { |
|
11 | - exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) ); |
|
10 | +if (!defined('WPINC')) { |
|
11 | + exit('Do NOT access this file directly: ' . basename(__FILE__)); |
|
12 | 12 | } |
13 | 13 | |
14 | 14 | |
15 | 15 | function wpinv_get_default_country() { |
16 | - $country = wpinv_get_option( 'default_country', 'UK' ); |
|
16 | + $country = wpinv_get_option('default_country', 'UK'); |
|
17 | 17 | |
18 | - return apply_filters( 'wpinv_default_country', $country ); |
|
18 | + return apply_filters('wpinv_default_country', $country); |
|
19 | 19 | } |
20 | 20 | |
21 | 21 | /** |
@@ -23,8 +23,8 @@ discard block |
||
23 | 23 | * |
24 | 24 | * @return string |
25 | 25 | */ |
26 | -function getpaid_get_ip_country( $ip_address = '' ) { |
|
27 | - $country = GetPaid_Geolocation::geolocate_ip( $ip_address, true ); |
|
26 | +function getpaid_get_ip_country($ip_address = '') { |
|
27 | + $country = GetPaid_Geolocation::geolocate_ip($ip_address, true); |
|
28 | 28 | return $country['country']; |
29 | 29 | } |
30 | 30 | |
@@ -34,59 +34,59 @@ discard block |
||
34 | 34 | * @param string $country The country code to sanitize |
35 | 35 | * @return array |
36 | 36 | */ |
37 | -function wpinv_sanitize_country( $country ) { |
|
37 | +function wpinv_sanitize_country($country) { |
|
38 | 38 | |
39 | 39 | // Enure the country is specified |
40 | - if ( empty( $country ) ) { |
|
40 | + if (empty($country)) { |
|
41 | 41 | $country = wpinv_get_default_country(); |
42 | 42 | } |
43 | - return trim( wpinv_utf8_strtoupper( $country ) ); |
|
43 | + return trim(wpinv_utf8_strtoupper($country)); |
|
44 | 44 | |
45 | 45 | } |
46 | 46 | |
47 | -function wpinv_is_base_country( $country ) { |
|
47 | +function wpinv_is_base_country($country) { |
|
48 | 48 | $base_country = wpinv_get_default_country(); |
49 | 49 | |
50 | - if ( $base_country === 'UK' ) { |
|
50 | + if ($base_country === 'UK') { |
|
51 | 51 | $base_country = 'GB'; |
52 | 52 | } |
53 | - if ( $country == 'UK' ) { |
|
53 | + if ($country == 'UK') { |
|
54 | 54 | $country = 'GB'; |
55 | 55 | } |
56 | 56 | |
57 | - return ( $country && $country === $base_country ) ? true : false; |
|
57 | + return ($country && $country === $base_country) ? true : false; |
|
58 | 58 | } |
59 | 59 | |
60 | -function wpinv_country_name( $country_code = '' ) { |
|
60 | +function wpinv_country_name($country_code = '') { |
|
61 | 61 | $countries = wpinv_get_country_list(); |
62 | 62 | $country_code = $country_code == 'UK' ? 'GB' : $country_code; |
63 | - $country = isset( $countries[$country_code] ) ? $countries[$country_code] : $country_code; |
|
63 | + $country = isset($countries[$country_code]) ? $countries[$country_code] : $country_code; |
|
64 | 64 | |
65 | - return apply_filters( 'wpinv_country_name', $country, $country_code ); |
|
65 | + return apply_filters('wpinv_country_name', $country, $country_code); |
|
66 | 66 | } |
67 | 67 | |
68 | 68 | function wpinv_get_default_state() { |
69 | - $state = wpinv_get_option( 'default_state', '' ); |
|
69 | + $state = wpinv_get_option('default_state', ''); |
|
70 | 70 | |
71 | - return apply_filters( 'wpinv_default_state', $state ); |
|
71 | + return apply_filters('wpinv_default_state', $state); |
|
72 | 72 | } |
73 | 73 | |
74 | -function wpinv_state_name( $state_code = '', $country_code = '' ) { |
|
74 | +function wpinv_state_name($state_code = '', $country_code = '') { |
|
75 | 75 | $state = $state_code; |
76 | 76 | |
77 | - if ( !empty( $country_code ) ) { |
|
78 | - $states = wpinv_get_country_states( $country_code ); |
|
77 | + if (!empty($country_code)) { |
|
78 | + $states = wpinv_get_country_states($country_code); |
|
79 | 79 | |
80 | - $state = !empty( $states ) && isset( $states[$state_code] ) ? $states[$state_code] : $state; |
|
80 | + $state = !empty($states) && isset($states[$state_code]) ? $states[$state_code] : $state; |
|
81 | 81 | } |
82 | 82 | |
83 | - return apply_filters( 'wpinv_state_name', $state, $state_code, $country_code ); |
|
83 | + return apply_filters('wpinv_state_name', $state, $state_code, $country_code); |
|
84 | 84 | } |
85 | 85 | |
86 | 86 | function wpinv_store_address() { |
87 | - $address = wpinv_get_option( 'store_address', '' ); |
|
87 | + $address = wpinv_get_option('store_address', ''); |
|
88 | 88 | |
89 | - return apply_filters( 'wpinv_store_address', $address ); |
|
89 | + return apply_filters('wpinv_store_address', $address); |
|
90 | 90 | } |
91 | 91 | |
92 | 92 | /** |
@@ -94,24 +94,24 @@ discard block |
||
94 | 94 | * |
95 | 95 | * @param WPInv_Invoice $invoice |
96 | 96 | */ |
97 | -function getpaid_maybe_add_default_address( &$invoice ) { |
|
97 | +function getpaid_maybe_add_default_address(&$invoice) { |
|
98 | 98 | |
99 | 99 | $user_id = $invoice->get_user_id(); |
100 | 100 | |
101 | 101 | // Abort if the invoice belongs to no one. |
102 | - if ( empty( $user_id ) ) { |
|
102 | + if (empty($user_id)) { |
|
103 | 103 | return; |
104 | 104 | } |
105 | 105 | |
106 | 106 | // Fill in defaults whenever necessary. |
107 | - foreach ( wpinv_get_user_address( $user_id ) as $key => $value ) { |
|
107 | + foreach (wpinv_get_user_address($user_id) as $key => $value) { |
|
108 | 108 | |
109 | - if ( is_callable( $invoice, "get_$key" ) ) { |
|
110 | - $current = call_user_func( array( $invoice, "get_$key" ) ); |
|
109 | + if (is_callable($invoice, "get_$key")) { |
|
110 | + $current = call_user_func(array($invoice, "get_$key")); |
|
111 | 111 | |
112 | - if ( empty( $current ) ) { |
|
112 | + if (empty($current)) { |
|
113 | 113 | $method = "set_$key"; |
114 | - $invoice->$method( $value ); |
|
114 | + $invoice->$method($value); |
|
115 | 115 | } |
116 | 116 | |
117 | 117 | } |
@@ -130,22 +130,22 @@ discard block |
||
130 | 130 | $address_fields = apply_filters( |
131 | 131 | 'getpaid_user_address_fields', |
132 | 132 | array( |
133 | - 'first_name' => __( 'First Name', 'invoicing' ), |
|
134 | - 'last_name' => __( 'Last Name', 'invoicing' ), |
|
135 | - 'address' => __( 'Address', 'invoicing' ), |
|
136 | - 'city' => __( 'City', 'invoicing' ), |
|
137 | - 'country' => __( 'Country', 'invoicing' ), |
|
138 | - 'state' => __( 'State', 'invoicing' ), |
|
139 | - 'zip' => __( 'Zip/Postal Code', 'invoicing' ), |
|
140 | - 'phone' => __( 'Phone Number', 'invoicing' ), |
|
141 | - 'company' => __( 'Company', 'invoicing' ), |
|
142 | - 'company_id' => __( 'Company ID', 'invoicing' ), |
|
143 | - 'vat_number' => __( 'VAT Number', 'invoicing' ), |
|
133 | + 'first_name' => __('First Name', 'invoicing'), |
|
134 | + 'last_name' => __('Last Name', 'invoicing'), |
|
135 | + 'address' => __('Address', 'invoicing'), |
|
136 | + 'city' => __('City', 'invoicing'), |
|
137 | + 'country' => __('Country', 'invoicing'), |
|
138 | + 'state' => __('State', 'invoicing'), |
|
139 | + 'zip' => __('Zip/Postal Code', 'invoicing'), |
|
140 | + 'phone' => __('Phone Number', 'invoicing'), |
|
141 | + 'company' => __('Company', 'invoicing'), |
|
142 | + 'company_id' => __('Company ID', 'invoicing'), |
|
143 | + 'vat_number' => __('VAT Number', 'invoicing'), |
|
144 | 144 | ) |
145 | 145 | ); |
146 | 146 | |
147 | - if ( ! wpinv_use_taxes() && isset( $address_fields['vat_number'] ) ) { |
|
148 | - unset( $address_fields['vat_number'] ); |
|
147 | + if (!wpinv_use_taxes() && isset($address_fields['vat_number'])) { |
|
148 | + unset($address_fields['vat_number']); |
|
149 | 149 | } |
150 | 150 | |
151 | 151 | return $address_fields; |
@@ -156,8 +156,8 @@ discard block |
||
156 | 156 | * |
157 | 157 | * @return bool |
158 | 158 | */ |
159 | -function getpaid_is_address_field_whitelisted( $key ) { |
|
160 | - return array_key_exists( $key, getpaid_user_address_fields() ); |
|
159 | +function getpaid_is_address_field_whitelisted($key) { |
|
160 | + return array_key_exists($key, getpaid_user_address_fields()); |
|
161 | 161 | } |
162 | 162 | |
163 | 163 | /** |
@@ -167,24 +167,24 @@ discard block |
||
167 | 167 | * |
168 | 168 | * @param WPInv_Invoice $invoice |
169 | 169 | */ |
170 | -function getpaid_save_invoice_user_address( $invoice ) { |
|
170 | +function getpaid_save_invoice_user_address($invoice) { |
|
171 | 171 | |
172 | 172 | // Retrieve the invoice. |
173 | - $invoice = wpinv_get_invoice( $invoice ); |
|
173 | + $invoice = wpinv_get_invoice($invoice); |
|
174 | 174 | |
175 | 175 | // Abort if it does not exist. |
176 | - if ( empty( $invoice ) || $invoice->is_renewal() ) { |
|
176 | + if (empty($invoice) || $invoice->is_renewal()) { |
|
177 | 177 | return; |
178 | 178 | } |
179 | 179 | |
180 | - foreach ( array_keys( getpaid_user_address_fields() ) as $field ) { |
|
180 | + foreach (array_keys(getpaid_user_address_fields()) as $field) { |
|
181 | 181 | |
182 | - if ( is_callable( array( $invoice, "get_$field" ) ) ) { |
|
183 | - $value = call_user_func( array( $invoice, "get_$field" ) ); |
|
182 | + if (is_callable(array($invoice, "get_$field"))) { |
|
183 | + $value = call_user_func(array($invoice, "get_$field")); |
|
184 | 184 | |
185 | 185 | // Only save if it is not empty. |
186 | - if ( ! empty( $value ) ) { |
|
187 | - update_user_meta( $invoice->get_user_id(), '_wpinv_' . $field, $value ); |
|
186 | + if (!empty($value)) { |
|
187 | + update_user_meta($invoice->get_user_id(), '_wpinv_' . $field, $value); |
|
188 | 188 | } |
189 | 189 | |
190 | 190 | } |
@@ -192,7 +192,7 @@ discard block |
||
192 | 192 | } |
193 | 193 | |
194 | 194 | } |
195 | -add_action( 'getpaid_checkout_invoice_updated', 'getpaid_save_invoice_user_address' ); |
|
195 | +add_action('getpaid_checkout_invoice_updated', 'getpaid_save_invoice_user_address'); |
|
196 | 196 | |
197 | 197 | /** |
198 | 198 | * Retrieves a saved user address. |
@@ -201,14 +201,14 @@ discard block |
||
201 | 201 | * @param bool $with_default Whether or not we should use the default country and state. |
202 | 202 | * @return array |
203 | 203 | */ |
204 | -function wpinv_get_user_address( $user_id = 0, $with_default = true ) { |
|
204 | +function wpinv_get_user_address($user_id = 0, $with_default = true) { |
|
205 | 205 | |
206 | 206 | // Prepare the user id. |
207 | - $user_id = empty( $user_id ) ? get_current_user_id() : $user_id; |
|
208 | - $user_info = get_userdata( $user_id ); |
|
207 | + $user_id = empty($user_id) ? get_current_user_id() : $user_id; |
|
208 | + $user_info = get_userdata($user_id); |
|
209 | 209 | |
210 | 210 | // Abort if non exists. |
211 | - if ( empty( $user_info ) ) { |
|
211 | + if (empty($user_info)) { |
|
212 | 212 | return array(); |
213 | 213 | } |
214 | 214 | |
@@ -218,11 +218,11 @@ discard block |
||
218 | 218 | 'email' => $user_info->user_email, |
219 | 219 | ); |
220 | 220 | |
221 | - foreach ( array_keys( getpaid_user_address_fields() ) as $field ) { |
|
222 | - $address[$field] = getpaid_get_user_address_field( $user_id, $field ); |
|
221 | + foreach (array_keys(getpaid_user_address_fields()) as $field) { |
|
222 | + $address[$field] = getpaid_get_user_address_field($user_id, $field); |
|
223 | 223 | } |
224 | 224 | |
225 | - if ( ! $with_default ) { |
|
225 | + if (!$with_default) { |
|
226 | 226 | return $address; |
227 | 227 | } |
228 | 228 | |
@@ -233,7 +233,7 @@ discard block |
||
233 | 233 | 'country' => wpinv_get_default_country(), |
234 | 234 | ); |
235 | 235 | |
236 | - return getpaid_array_merge_if_empty( $address, $defaults ); |
|
236 | + return getpaid_array_merge_if_empty($address, $defaults); |
|
237 | 237 | |
238 | 238 | } |
239 | 239 | |
@@ -244,7 +244,7 @@ discard block |
||
244 | 244 | * @param string $field The field to use. |
245 | 245 | * @return string|null |
246 | 246 | */ |
247 | -function getpaid_get_user_address_field( $user_id, $field ) { |
|
247 | +function getpaid_get_user_address_field($user_id, $field) { |
|
248 | 248 | |
249 | 249 | $prefixes = array( |
250 | 250 | '_wpinv_', |
@@ -252,15 +252,15 @@ discard block |
||
252 | 252 | '' |
253 | 253 | ); |
254 | 254 | |
255 | - foreach ( $prefixes as $prefix ) { |
|
255 | + foreach ($prefixes as $prefix) { |
|
256 | 256 | |
257 | 257 | // Meta table. |
258 | - $value = get_user_meta( $user_id, $prefix . $field, true ); |
|
258 | + $value = get_user_meta($user_id, $prefix . $field, true); |
|
259 | 259 | |
260 | 260 | // UWP table. |
261 | - $value = ( empty( $value ) && function_exists( 'uwp_get_usermeta' ) ) ? uwp_get_usermeta( $user_id, $prefix . $field ) : $value; |
|
261 | + $value = (empty($value) && function_exists('uwp_get_usermeta')) ? uwp_get_usermeta($user_id, $prefix . $field) : $value; |
|
262 | 262 | |
263 | - if ( ! empty( $value ) ) { |
|
263 | + if (!empty($value)) { |
|
264 | 264 | return $value; |
265 | 265 | } |
266 | 266 | |
@@ -277,16 +277,16 @@ discard block |
||
277 | 277 | * @param string $return What to return. |
278 | 278 | * @return array |
279 | 279 | */ |
280 | -function wpinv_get_continents( $return = 'all' ) { |
|
280 | +function wpinv_get_continents($return = 'all') { |
|
281 | 281 | |
282 | - $continents = wpinv_get_data( 'continents' ); |
|
282 | + $continents = wpinv_get_data('continents'); |
|
283 | 283 | |
284 | - switch( $return ) { |
|
284 | + switch ($return) { |
|
285 | 285 | case 'name' : |
286 | - return wp_list_pluck( $continents, 'name' ); |
|
286 | + return wp_list_pluck($continents, 'name'); |
|
287 | 287 | break; |
288 | 288 | case 'countries' : |
289 | - return wp_list_pluck( $continents, 'countries' ); |
|
289 | + return wp_list_pluck($continents, 'countries'); |
|
290 | 290 | break; |
291 | 291 | default : |
292 | 292 | return $continents; |
@@ -302,12 +302,12 @@ discard block |
||
302 | 302 | * @param string $country Country code. If no code is specified, defaults to the default country. |
303 | 303 | * @return string |
304 | 304 | */ |
305 | -function wpinv_get_continent_code_for_country( $country = false ) { |
|
305 | +function wpinv_get_continent_code_for_country($country = false) { |
|
306 | 306 | |
307 | - $country = wpinv_sanitize_country( $country ); |
|
307 | + $country = wpinv_sanitize_country($country); |
|
308 | 308 | |
309 | - foreach ( wpinv_get_continents( 'countries' ) as $continent_code => $countries ) { |
|
310 | - if ( false !== array_search( $country, $countries, true ) ) { |
|
309 | + foreach (wpinv_get_continents('countries') as $continent_code => $countries) { |
|
310 | + if (false !== array_search($country, $countries, true)) { |
|
311 | 311 | return $continent_code; |
312 | 312 | } |
313 | 313 | } |
@@ -323,13 +323,13 @@ discard block |
||
323 | 323 | * @param string $country Country code. If no code is specified, defaults to the default country. |
324 | 324 | * @return array |
325 | 325 | */ |
326 | -function wpinv_get_country_calling_code( $country = null) { |
|
326 | +function wpinv_get_country_calling_code($country = null) { |
|
327 | 327 | |
328 | - $country = wpinv_sanitize_country( $country ); |
|
329 | - $codes = wpinv_get_data( 'phone-codes' ); |
|
330 | - $code = isset( $codes[ $country ] ) ? $codes[ $country ] : ''; |
|
328 | + $country = wpinv_sanitize_country($country); |
|
329 | + $codes = wpinv_get_data('phone-codes'); |
|
330 | + $code = isset($codes[$country]) ? $codes[$country] : ''; |
|
331 | 331 | |
332 | - if ( is_array( $code ) ) { |
|
332 | + if (is_array($code)) { |
|
333 | 333 | return $code[0]; |
334 | 334 | } |
335 | 335 | return $code; |
@@ -342,8 +342,8 @@ discard block |
||
342 | 342 | * @param bool $first_empty Whether or not the first item in the list should be empty |
343 | 343 | * @return array |
344 | 344 | */ |
345 | -function wpinv_get_country_list( $first_empty = false ) { |
|
346 | - return wpinv_maybe_add_empty_option( apply_filters( 'wpinv_countries', wpinv_get_data( 'countries' ) ), $first_empty ); |
|
345 | +function wpinv_get_country_list($first_empty = false) { |
|
346 | + return wpinv_maybe_add_empty_option(apply_filters('wpinv_countries', wpinv_get_data('countries')), $first_empty); |
|
347 | 347 | } |
348 | 348 | |
349 | 349 | /** |
@@ -353,22 +353,22 @@ discard block |
||
353 | 353 | * @param bool $first_empty Whether or not the first item in the list should be empty |
354 | 354 | * @return array |
355 | 355 | */ |
356 | -function wpinv_get_country_states( $country = null, $first_empty = false ) { |
|
356 | +function wpinv_get_country_states($country = null, $first_empty = false) { |
|
357 | 357 | |
358 | 358 | // Prepare the country. |
359 | - $country = wpinv_sanitize_country( $country ); |
|
359 | + $country = wpinv_sanitize_country($country); |
|
360 | 360 | |
361 | 361 | // Fetch all states. |
362 | - $all_states = wpinv_get_data( 'states' ); |
|
362 | + $all_states = wpinv_get_data('states'); |
|
363 | 363 | |
364 | 364 | // Fetch the specified country's states. |
365 | - $states = isset( $all_states[ $country ] ) ? $all_states[ $country ] : array() ; |
|
366 | - $states = apply_filters( "wpinv_{$country}_states", $states ); |
|
367 | - $states = apply_filters( 'wpinv_country_states', $states, $country ); |
|
365 | + $states = isset($all_states[$country]) ? $all_states[$country] : array(); |
|
366 | + $states = apply_filters("wpinv_{$country}_states", $states); |
|
367 | + $states = apply_filters('wpinv_country_states', $states, $country); |
|
368 | 368 | |
369 | - asort( $states ); |
|
369 | + asort($states); |
|
370 | 370 | |
371 | - return wpinv_maybe_add_empty_option( $states, $first_empty ); |
|
371 | + return wpinv_maybe_add_empty_option($states, $first_empty); |
|
372 | 372 | } |
373 | 373 | |
374 | 374 | /** |
@@ -378,7 +378,7 @@ discard block |
||
378 | 378 | * @return array |
379 | 379 | */ |
380 | 380 | function wpinv_get_us_states_list() { |
381 | - return apply_filters( 'wpinv_usa_states', wpinv_get_country_states( 'US' ) ); |
|
381 | + return apply_filters('wpinv_usa_states', wpinv_get_country_states('US')); |
|
382 | 382 | } |
383 | 383 | |
384 | 384 | /** |
@@ -388,7 +388,7 @@ discard block |
||
388 | 388 | * @return array |
389 | 389 | */ |
390 | 390 | function wpinv_get_canada_states_list() { |
391 | - return apply_filters( 'wpinv_canada_provinces', wpinv_get_country_states( 'CA' ) ); |
|
391 | + return apply_filters('wpinv_canada_provinces', wpinv_get_country_states('CA')); |
|
392 | 392 | } |
393 | 393 | |
394 | 394 | /** |
@@ -398,7 +398,7 @@ discard block |
||
398 | 398 | * @return array |
399 | 399 | */ |
400 | 400 | function wpinv_get_australia_states_list() { |
401 | - return apply_filters( 'wpinv_australia_states', wpinv_get_country_states( 'AU' ) ); |
|
401 | + return apply_filters('wpinv_australia_states', wpinv_get_country_states('AU')); |
|
402 | 402 | } |
403 | 403 | |
404 | 404 | /** |
@@ -408,7 +408,7 @@ discard block |
||
408 | 408 | * @return array |
409 | 409 | */ |
410 | 410 | function wpinv_get_bangladesh_states_list() { |
411 | - return apply_filters( 'wpinv_bangladesh_states', wpinv_get_country_states( 'BD' ) ); |
|
411 | + return apply_filters('wpinv_bangladesh_states', wpinv_get_country_states('BD')); |
|
412 | 412 | } |
413 | 413 | |
414 | 414 | /** |
@@ -418,7 +418,7 @@ discard block |
||
418 | 418 | * @return array |
419 | 419 | */ |
420 | 420 | function wpinv_get_brazil_states_list() { |
421 | - return apply_filters( 'wpinv_brazil_states', wpinv_get_country_states( 'BR' ) ); |
|
421 | + return apply_filters('wpinv_brazil_states', wpinv_get_country_states('BR')); |
|
422 | 422 | } |
423 | 423 | |
424 | 424 | /** |
@@ -428,7 +428,7 @@ discard block |
||
428 | 428 | * @return array |
429 | 429 | */ |
430 | 430 | function wpinv_get_bulgaria_states_list() { |
431 | - return apply_filters( 'wpinv_bulgaria_states', wpinv_get_country_states( 'BG' ) ); |
|
431 | + return apply_filters('wpinv_bulgaria_states', wpinv_get_country_states('BG')); |
|
432 | 432 | } |
433 | 433 | |
434 | 434 | /** |
@@ -438,7 +438,7 @@ discard block |
||
438 | 438 | * @return array |
439 | 439 | */ |
440 | 440 | function wpinv_get_hong_kong_states_list() { |
441 | - return apply_filters( 'wpinv_hong_kong_states', wpinv_get_country_states( 'HK' ) ); |
|
441 | + return apply_filters('wpinv_hong_kong_states', wpinv_get_country_states('HK')); |
|
442 | 442 | } |
443 | 443 | |
444 | 444 | /** |
@@ -448,7 +448,7 @@ discard block |
||
448 | 448 | * @return array |
449 | 449 | */ |
450 | 450 | function wpinv_get_hungary_states_list() { |
451 | - return apply_filters( 'wpinv_hungary_states', wpinv_get_country_states( 'HU' ) ); |
|
451 | + return apply_filters('wpinv_hungary_states', wpinv_get_country_states('HU')); |
|
452 | 452 | } |
453 | 453 | |
454 | 454 | /** |
@@ -458,7 +458,7 @@ discard block |
||
458 | 458 | * @return array |
459 | 459 | */ |
460 | 460 | function wpinv_get_japan_states_list() { |
461 | - return apply_filters( 'wpinv_japan_states', wpinv_get_country_states( 'JP' ) ); |
|
461 | + return apply_filters('wpinv_japan_states', wpinv_get_country_states('JP')); |
|
462 | 462 | } |
463 | 463 | |
464 | 464 | /** |
@@ -468,7 +468,7 @@ discard block |
||
468 | 468 | * @return array |
469 | 469 | */ |
470 | 470 | function wpinv_get_china_states_list() { |
471 | - return apply_filters( 'wpinv_china_states', wpinv_get_country_states( 'CN' ) ); |
|
471 | + return apply_filters('wpinv_china_states', wpinv_get_country_states('CN')); |
|
472 | 472 | } |
473 | 473 | |
474 | 474 | /** |
@@ -478,7 +478,7 @@ discard block |
||
478 | 478 | * @return array |
479 | 479 | */ |
480 | 480 | function wpinv_get_new_zealand_states_list() { |
481 | - return apply_filters( 'wpinv_new_zealand_states', wpinv_get_country_states( 'NZ' ) ); |
|
481 | + return apply_filters('wpinv_new_zealand_states', wpinv_get_country_states('NZ')); |
|
482 | 482 | } |
483 | 483 | |
484 | 484 | /** |
@@ -488,7 +488,7 @@ discard block |
||
488 | 488 | * @return array |
489 | 489 | */ |
490 | 490 | function wpinv_get_peru_states_list() { |
491 | - return apply_filters( 'wpinv_peru_states', wpinv_get_country_states( 'PE' ) ); |
|
491 | + return apply_filters('wpinv_peru_states', wpinv_get_country_states('PE')); |
|
492 | 492 | } |
493 | 493 | |
494 | 494 | /** |
@@ -498,7 +498,7 @@ discard block |
||
498 | 498 | * @return array |
499 | 499 | */ |
500 | 500 | function wpinv_get_indonesia_states_list() { |
501 | - return apply_filters( 'wpinv_indonesia_states', wpinv_get_country_states( 'ID' ) ); |
|
501 | + return apply_filters('wpinv_indonesia_states', wpinv_get_country_states('ID')); |
|
502 | 502 | } |
503 | 503 | |
504 | 504 | /** |
@@ -508,7 +508,7 @@ discard block |
||
508 | 508 | * @return array |
509 | 509 | */ |
510 | 510 | function wpinv_get_india_states_list() { |
511 | - return apply_filters( 'wpinv_india_states', wpinv_get_country_states( 'IN' ) ); |
|
511 | + return apply_filters('wpinv_india_states', wpinv_get_country_states('IN')); |
|
512 | 512 | } |
513 | 513 | |
514 | 514 | /** |
@@ -518,7 +518,7 @@ discard block |
||
518 | 518 | * @return array |
519 | 519 | */ |
520 | 520 | function wpinv_get_iran_states_list() { |
521 | - return apply_filters( 'wpinv_iran_states', wpinv_get_country_states( 'IR' ) ); |
|
521 | + return apply_filters('wpinv_iran_states', wpinv_get_country_states('IR')); |
|
522 | 522 | } |
523 | 523 | |
524 | 524 | /** |
@@ -528,7 +528,7 @@ discard block |
||
528 | 528 | * @return array |
529 | 529 | */ |
530 | 530 | function wpinv_get_italy_states_list() { |
531 | - return apply_filters( 'wpinv_italy_states', wpinv_get_country_states( 'IT' ) ); |
|
531 | + return apply_filters('wpinv_italy_states', wpinv_get_country_states('IT')); |
|
532 | 532 | } |
533 | 533 | |
534 | 534 | /** |
@@ -538,7 +538,7 @@ discard block |
||
538 | 538 | * @return array |
539 | 539 | */ |
540 | 540 | function wpinv_get_malaysia_states_list() { |
541 | - return apply_filters( 'wpinv_malaysia_states', wpinv_get_country_states( 'MY' ) ); |
|
541 | + return apply_filters('wpinv_malaysia_states', wpinv_get_country_states('MY')); |
|
542 | 542 | } |
543 | 543 | |
544 | 544 | /** |
@@ -548,7 +548,7 @@ discard block |
||
548 | 548 | * @return array |
549 | 549 | */ |
550 | 550 | function wpinv_get_mexico_states_list() { |
551 | - return apply_filters( 'wpinv_mexico_states', wpinv_get_country_states( 'MX' ) ); |
|
551 | + return apply_filters('wpinv_mexico_states', wpinv_get_country_states('MX')); |
|
552 | 552 | } |
553 | 553 | |
554 | 554 | /** |
@@ -558,7 +558,7 @@ discard block |
||
558 | 558 | * @return array |
559 | 559 | */ |
560 | 560 | function wpinv_get_nepal_states_list() { |
561 | - return apply_filters( 'wpinv_nepal_states', wpinv_get_country_states( 'NP' ) ); |
|
561 | + return apply_filters('wpinv_nepal_states', wpinv_get_country_states('NP')); |
|
562 | 562 | } |
563 | 563 | |
564 | 564 | /** |
@@ -568,7 +568,7 @@ discard block |
||
568 | 568 | * @return array |
569 | 569 | */ |
570 | 570 | function wpinv_get_south_africa_states_list() { |
571 | - return apply_filters( 'wpinv_south_africa_states', wpinv_get_country_states( 'ZA' ) ); |
|
571 | + return apply_filters('wpinv_south_africa_states', wpinv_get_country_states('ZA')); |
|
572 | 572 | } |
573 | 573 | |
574 | 574 | /** |
@@ -578,7 +578,7 @@ discard block |
||
578 | 578 | * @return array |
579 | 579 | */ |
580 | 580 | function wpinv_get_thailand_states_list() { |
581 | - return apply_filters( 'wpinv_thailand_states', wpinv_get_country_states( 'TH' ) ); |
|
581 | + return apply_filters('wpinv_thailand_states', wpinv_get_country_states('TH')); |
|
582 | 582 | } |
583 | 583 | |
584 | 584 | /** |
@@ -588,7 +588,7 @@ discard block |
||
588 | 588 | * @return array |
589 | 589 | */ |
590 | 590 | function wpinv_get_turkey_states_list() { |
591 | - return apply_filters( 'wpinv_turkey_states', wpinv_get_country_states( 'TR' ) ); |
|
591 | + return apply_filters('wpinv_turkey_states', wpinv_get_country_states('TR')); |
|
592 | 592 | } |
593 | 593 | |
594 | 594 | /** |
@@ -598,31 +598,31 @@ discard block |
||
598 | 598 | * @return array |
599 | 599 | */ |
600 | 600 | function wpinv_get_spain_states_list() { |
601 | - return apply_filters( 'wpinv_spain_states', wpinv_get_country_states( 'ES' ) ); |
|
601 | + return apply_filters('wpinv_spain_states', wpinv_get_country_states('ES')); |
|
602 | 602 | } |
603 | 603 | |
604 | 604 | function wpinv_get_states_field() { |
605 | - if( empty( $_POST['country'] ) ) { |
|
605 | + if (empty($_POST['country'])) { |
|
606 | 606 | $_POST['country'] = wpinv_get_default_country(); |
607 | 607 | } |
608 | - $states = wpinv_get_country_states( sanitize_text_field( $_POST['country'] ) ); |
|
608 | + $states = wpinv_get_country_states(sanitize_text_field($_POST['country'])); |
|
609 | 609 | |
610 | - if( !empty( $states ) ) { |
|
611 | - $sanitized_field_name = sanitize_text_field( $_POST['field_name'] ); |
|
610 | + if (!empty($states)) { |
|
611 | + $sanitized_field_name = sanitize_text_field($_POST['field_name']); |
|
612 | 612 | |
613 | - $class = isset( $_POST['class'] ) ? esc_attr( $_POST['class'] ) : ''; |
|
613 | + $class = isset($_POST['class']) ? esc_attr($_POST['class']) : ''; |
|
614 | 614 | $class .= " $sanitized_field_name getpaid_js_field-state custom-select wpinv-select wpi_select2"; |
615 | 615 | |
616 | - $args = array( |
|
616 | + $args = array( |
|
617 | 617 | 'name' => $sanitized_field_name, |
618 | 618 | 'id' => $sanitized_field_name, |
619 | - 'class' => implode( ' ', array_unique( explode( ' ', $class ) ) ), |
|
620 | - 'options' => array_merge( array( '' => '' ), $states ), |
|
619 | + 'class' => implode(' ', array_unique(explode(' ', $class))), |
|
620 | + 'options' => array_merge(array('' => ''), $states), |
|
621 | 621 | 'show_option_all' => false, |
622 | 622 | 'show_option_none' => false |
623 | 623 | ); |
624 | 624 | |
625 | - $response = wpinv_html_select( $args ); |
|
625 | + $response = wpinv_html_select($args); |
|
626 | 626 | |
627 | 627 | } else { |
628 | 628 | $response = 'nostates'; |
@@ -631,10 +631,10 @@ discard block |
||
631 | 631 | return $response; |
632 | 632 | } |
633 | 633 | |
634 | -function wpinv_default_billing_country( $country = '', $user_id = 0 ) { |
|
635 | - $country = !empty( $country ) ? $country : wpinv_get_default_country(); |
|
634 | +function wpinv_default_billing_country($country = '', $user_id = 0) { |
|
635 | + $country = !empty($country) ? $country : wpinv_get_default_country(); |
|
636 | 636 | |
637 | - return apply_filters( 'wpinv_default_billing_country', $country, $user_id ); |
|
637 | + return apply_filters('wpinv_default_billing_country', $country, $user_id); |
|
638 | 638 | } |
639 | 639 | |
640 | 640 | /** |
@@ -646,7 +646,7 @@ discard block |
||
646 | 646 | */ |
647 | 647 | function wpinv_get_address_formats() { |
648 | 648 | |
649 | - return apply_filters( 'wpinv_localisation_address_formats', |
|
649 | + return apply_filters('wpinv_localisation_address_formats', |
|
650 | 650 | array( |
651 | 651 | 'default' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}\n{{zip}}\n{{country}}", |
652 | 652 | 'AU' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}} {{zip}}\n{{country}}", |
@@ -695,9 +695,9 @@ discard block |
||
695 | 695 | * @see `wpinv_get_invoice_address_replacements` |
696 | 696 | * @return string |
697 | 697 | */ |
698 | -function wpinv_get_full_address_format( $country = false) { |
|
698 | +function wpinv_get_full_address_format($country = false) { |
|
699 | 699 | |
700 | - if( empty( $country ) ) { |
|
700 | + if (empty($country)) { |
|
701 | 701 | $country = wpinv_get_default_country(); |
702 | 702 | } |
703 | 703 | |
@@ -705,7 +705,7 @@ discard block |
||
705 | 705 | $formats = wpinv_get_address_formats(); |
706 | 706 | |
707 | 707 | // Get format for the specified country. |
708 | - $format = ( $country && isset( $formats[ $country ] ) ) ? $formats[ $country ] : $formats['default']; |
|
708 | + $format = ($country && isset($formats[$country])) ? $formats[$country] : $formats['default']; |
|
709 | 709 | |
710 | 710 | /** |
711 | 711 | * Filters the address format to use on Invoices. |
@@ -717,7 +717,7 @@ discard block |
||
717 | 717 | * @param string $format The address format to use. |
718 | 718 | * @param string $country The country who's address format is being retrieved. |
719 | 719 | */ |
720 | - return apply_filters( 'wpinv_get_full_address_format', $format, $country ); |
|
720 | + return apply_filters('wpinv_get_full_address_format', $format, $country); |
|
721 | 721 | } |
722 | 722 | |
723 | 723 | /** |
@@ -728,7 +728,7 @@ discard block |
||
728 | 728 | * @param array $billing_details customer's billing details |
729 | 729 | * @return array |
730 | 730 | */ |
731 | -function wpinv_get_invoice_address_replacements( $billing_details ) { |
|
731 | +function wpinv_get_invoice_address_replacements($billing_details) { |
|
732 | 732 | |
733 | 733 | $default_args = array( |
734 | 734 | 'address' => '', |
@@ -741,22 +741,22 @@ discard block |
||
741 | 741 | 'company' => '', |
742 | 742 | ); |
743 | 743 | |
744 | - $args = map_deep( wp_parse_args( $billing_details, $default_args ), 'trim' ); |
|
744 | + $args = map_deep(wp_parse_args($billing_details, $default_args), 'trim'); |
|
745 | 745 | $state = $args['state']; |
746 | 746 | $country = $args['country']; |
747 | 747 | |
748 | 748 | // Handle full country name. |
749 | - $full_country = empty( $country ) ? $country : wpinv_country_name( $country ); |
|
749 | + $full_country = empty($country) ? $country : wpinv_country_name($country); |
|
750 | 750 | |
751 | 751 | // Handle full state name. |
752 | - $full_state = ( $country && $state ) ? wpinv_state_name( $state, $country ) : $state; |
|
752 | + $full_state = ($country && $state) ? wpinv_state_name($state, $country) : $state; |
|
753 | 753 | |
754 | 754 | $args['postcode'] = $args['zip']; |
755 | 755 | $args['name'] = $args['first_name'] . ' ' . $args['last_name']; |
756 | 756 | $args['state'] = $full_state; |
757 | 757 | $args['state_code'] = $state; |
758 | 758 | $args['country'] = $full_country; |
759 | - $args['country_code']= $country; |
|
759 | + $args['country_code'] = $country; |
|
760 | 760 | |
761 | 761 | /** |
762 | 762 | * Filters the address format replacements to use on Invoices. |
@@ -767,14 +767,14 @@ discard block |
||
767 | 767 | * @param array $replacements The address replacements to use. |
768 | 768 | * @param array $billing_details The billing details to use. |
769 | 769 | */ |
770 | - $replacements = apply_filters( 'wpinv_get_invoice_address_replacements', $args, $billing_details ); |
|
770 | + $replacements = apply_filters('wpinv_get_invoice_address_replacements', $args, $billing_details); |
|
771 | 771 | |
772 | 772 | $return = array(); |
773 | 773 | |
774 | - foreach( $replacements as $key => $value ) { |
|
775 | - $value = is_scalar( $value ) ? trim( sanitize_text_field( $value ) ) : ''; |
|
774 | + foreach ($replacements as $key => $value) { |
|
775 | + $value = is_scalar($value) ? trim(sanitize_text_field($value)) : ''; |
|
776 | 776 | $return['{{' . $key . '}}'] = $value; |
777 | - $return['{{' . $key . '_upper}}'] = wpinv_utf8_strtoupper( $value ); |
|
777 | + $return['{{' . $key . '_upper}}'] = wpinv_utf8_strtoupper($value); |
|
778 | 778 | } |
779 | 779 | |
780 | 780 | return $return; |
@@ -788,6 +788,6 @@ discard block |
||
788 | 788 | * @since 1.0.14 |
789 | 789 | * @return string |
790 | 790 | */ |
791 | -function wpinv_trim_formatted_address_line( $line ) { |
|
792 | - return trim( $line, ', ' ); |
|
791 | +function wpinv_trim_formatted_address_line($line) { |
|
792 | + return trim($line, ', '); |
|
793 | 793 | } |
794 | 794 | \ No newline at end of file |
@@ -20,13 +20,13 @@ |
||
20 | 20 | <title><?php esc_html_e( 'GetPaid › Setup Wizard', 'invoicing' ); ?></title> |
21 | 21 | <?php |
22 | 22 | getpaid_admin()->enqeue_scripts(); |
23 | - wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' ); |
|
24 | - wp_print_styles( 'select2' ); |
|
23 | + wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' ); |
|
24 | + wp_print_styles( 'select2' ); |
|
25 | 25 | wp_print_scripts( 'select2' ); |
26 | - wp_print_scripts( 'wpinv-admin-script' ); |
|
26 | + wp_print_scripts( 'wpinv-admin-script' ); |
|
27 | 27 | do_action( 'admin_print_styles' ); |
28 | 28 | do_action( 'admin_head' ); |
29 | - ?> |
|
29 | + ?> |
|
30 | 30 | <style> |
31 | 31 | body, p{ |
32 | 32 | font-size: 16px; |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | $aui_settings = AyeCode_UI_Settings::instance(); |
10 | 10 | $aui_settings->enqueue_scripts(); |
@@ -17,15 +17,15 @@ discard block |
||
17 | 17 | <head> |
18 | 18 | <meta name="viewport" content="width=device-width"/> |
19 | 19 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
20 | - <title><?php esc_html_e( 'GetPaid › Setup Wizard', 'invoicing' ); ?></title> |
|
20 | + <title><?php esc_html_e('GetPaid › Setup Wizard', 'invoicing'); ?></title> |
|
21 | 21 | <?php |
22 | 22 | getpaid_admin()->enqeue_scripts(); |
23 | - wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' ); |
|
24 | - wp_print_styles( 'select2' ); |
|
25 | - wp_print_scripts( 'select2' ); |
|
26 | - wp_print_scripts( 'wpinv-admin-script' ); |
|
27 | - do_action( 'admin_print_styles' ); |
|
28 | - do_action( 'admin_head' ); |
|
23 | + wp_enqueue_style('font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0'); |
|
24 | + wp_print_styles('select2'); |
|
25 | + wp_print_scripts('select2'); |
|
26 | + wp_print_scripts('wpinv-admin-script'); |
|
27 | + do_action('admin_print_styles'); |
|
28 | + do_action('admin_head'); |
|
29 | 29 | ?> |
30 | 30 | <style> |
31 | 31 | body, p{ |
@@ -37,21 +37,21 @@ discard block |
||
37 | 37 | font-weight: 500; |
38 | 38 | margin-bottom: .1rem; |
39 | 39 | } |
40 | - <?php echo $aui_settings::css_primary( '#009874', true ); ?> |
|
40 | + <?php echo $aui_settings::css_primary('#009874', true); ?> |
|
41 | 41 | </style> |
42 | 42 | </head> |
43 | 43 | |
44 | 44 | <body class="gp-setup wp-core-ui bg-lightx mx-auto text-dark scrollbars-ios" style="background: #f3f6ff;"> |
45 | 45 | |
46 | - <?php if ( isset( $_REQUEST['step'] ) ) : ?> |
|
46 | + <?php if (isset($_REQUEST['step'])) : ?> |
|
47 | 47 | <ol class="gp-setup-steps mb-0 pb-4 mw-100 list-group list-group-horizontal text-center"> |
48 | - <?php foreach ( $steps as $step => $data ) : ?> |
|
48 | + <?php foreach ($steps as $step => $data) : ?> |
|
49 | 49 | <li class="list-group-item flex-fill rounded-0 <?php |
50 | 50 | echo $step == $current ? 'active' : 'd-none d-md-block'; |
51 | - echo array_search( $current, array_keys( $steps ) ) > array_search( $step, array_keys( $steps ) ) ? ' done' : ''; |
|
51 | + echo array_search($current, array_keys($steps)) > array_search($step, array_keys($steps)) ? ' done' : ''; |
|
52 | 52 | ?>"> |
53 | - <i class="far fa-check-circle <?php echo array_search( $current, array_keys( $steps ) ) > array_search( $step, array_keys( $steps ) ) ? 'text-success' : '' ;?>"></i> |
|
54 | - <?php echo esc_html( $data['name'] ); ?> |
|
53 | + <i class="far fa-check-circle <?php echo array_search($current, array_keys($steps)) > array_search($step, array_keys($steps)) ? 'text-success' : ''; ?>"></i> |
|
54 | + <?php echo esc_html($data['name']); ?> |
|
55 | 55 | </li> |
56 | 56 | <?php endforeach; ?> |
57 | 57 | </ol> |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | <div class="text-center pb-3 mt-5"> |
63 | 63 | <a class=" text-decoration-none" href="https://wpgetpaid.com/"> |
64 | 64 | <span class="text-black-50"> |
65 | - <img class="ml-n3x" src="<?php echo WPINV_PLUGIN_URL . 'assets/images/getpaid-logo.png';?>" /> |
|
65 | + <img class="ml-n3x" src="<?php echo WPINV_PLUGIN_URL . 'assets/images/getpaid-logo.png'; ?>" /> |
|
66 | 66 | </span> |
67 | 67 | </a> |
68 | 68 | </div> |
69 | 69 | \ No newline at end of file |
@@ -55,9 +55,12 @@ |
||
55 | 55 | </li> |
56 | 56 | <?php endforeach; ?> |
57 | 57 | </ol> |
58 | - <?php else: ?> |
|
58 | + <?php else { |
|
59 | + : ?> |
|
59 | 60 | <div class='mb-3'> </div> |
60 | - <?php endif; ?> |
|
61 | + <?php endif; |
|
62 | +} |
|
63 | +?> |
|
61 | 64 | |
62 | 65 | <div class="text-center pb-3 mt-5"> |
63 | 66 | <a class=" text-decoration-none" href="https://wpgetpaid.com/"> |