@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if ( ! defined( 'ABSPATH' ) ) { |
3 | - exit; |
|
3 | + exit; |
|
4 | 4 | } |
5 | 5 | |
6 | 6 | /** |
@@ -10,30 +10,30 @@ discard block |
||
10 | 10 | class WPInv_Item extends GetPaid_Data { |
11 | 11 | |
12 | 12 | /** |
13 | - * Which data store to load. |
|
14 | - * |
|
15 | - * @var string |
|
16 | - */ |
|
13 | + * Which data store to load. |
|
14 | + * |
|
15 | + * @var string |
|
16 | + */ |
|
17 | 17 | protected $data_store_name = 'item'; |
18 | 18 | |
19 | 19 | /** |
20 | - * This is the name of this object type. |
|
21 | - * |
|
22 | - * @var string |
|
23 | - */ |
|
24 | - protected $object_type = 'item'; |
|
20 | + * This is the name of this object type. |
|
21 | + * |
|
22 | + * @var string |
|
23 | + */ |
|
24 | + protected $object_type = 'item'; |
|
25 | 25 | |
26 | 26 | /** |
27 | - * Item Data array. This is the core item data exposed in APIs. |
|
28 | - * |
|
29 | - * @since 1.0.19 |
|
30 | - * @var array |
|
31 | - */ |
|
32 | - protected $data = array( |
|
33 | - 'parent_id' => 0, |
|
34 | - 'status' => 'draft', |
|
35 | - 'version' => '', |
|
36 | - 'date_created' => null, |
|
27 | + * Item Data array. This is the core item data exposed in APIs. |
|
28 | + * |
|
29 | + * @since 1.0.19 |
|
30 | + * @var array |
|
31 | + */ |
|
32 | + protected $data = array( |
|
33 | + 'parent_id' => 0, |
|
34 | + 'status' => 'draft', |
|
35 | + 'version' => '', |
|
36 | + 'date_created' => null, |
|
37 | 37 | 'date_modified' => null, |
38 | 38 | 'name' => '', |
39 | 39 | 'description' => '', |
@@ -58,13 +58,13 @@ discard block |
||
58 | 58 | ); |
59 | 59 | |
60 | 60 | /** |
61 | - * Stores meta in cache for future reads. |
|
62 | - * |
|
63 | - * A group must be set to to enable caching. |
|
64 | - * |
|
65 | - * @var string |
|
66 | - */ |
|
67 | - protected $cache_group = 'getpaid_items'; |
|
61 | + * Stores meta in cache for future reads. |
|
62 | + * |
|
63 | + * A group must be set to to enable caching. |
|
64 | + * |
|
65 | + * @var string |
|
66 | + */ |
|
67 | + protected $cache_group = 'getpaid_items'; |
|
68 | 68 | |
69 | 69 | /** |
70 | 70 | * Stores a reference to the original WP_Post object |
@@ -74,37 +74,37 @@ discard block |
||
74 | 74 | protected $post = null; |
75 | 75 | |
76 | 76 | /** |
77 | - * Get the item if ID is passed, otherwise the item is new and empty. |
|
78 | - * |
|
79 | - * @param int|object|WPInv_Item|WP_Post $item Item to read. |
|
80 | - */ |
|
81 | - public function __construct( $item = 0 ) { |
|
82 | - parent::__construct( $item ); |
|
83 | - |
|
84 | - if ( ! empty( $item ) && is_numeric( $item ) && 'wpi_item' == get_post_type( $item ) ) { |
|
85 | - $this->set_id( $item ); |
|
86 | - } elseif ( $item instanceof self ) { |
|
87 | - $this->set_id( $item->get_id() ); |
|
88 | - } elseif ( ! empty( $item->ID ) ) { |
|
89 | - $this->set_id( $item->ID ); |
|
90 | - } elseif ( is_scalar( $item ) && $item_id = self::get_item_id_by_field( $item, 'custom_id' ) ) { |
|
91 | - $this->set_id( $item_id ); |
|
92 | - } elseif ( is_scalar( $item ) && $item_id = self::get_item_id_by_field( $item, 'name' ) ) { |
|
93 | - $this->set_id( $item_id ); |
|
94 | - } else { |
|
95 | - $this->set_object_read( true ); |
|
96 | - } |
|
77 | + * Get the item if ID is passed, otherwise the item is new and empty. |
|
78 | + * |
|
79 | + * @param int|object|WPInv_Item|WP_Post $item Item to read. |
|
80 | + */ |
|
81 | + public function __construct( $item = 0 ) { |
|
82 | + parent::__construct( $item ); |
|
83 | + |
|
84 | + if ( ! empty( $item ) && is_numeric( $item ) && 'wpi_item' == get_post_type( $item ) ) { |
|
85 | + $this->set_id( $item ); |
|
86 | + } elseif ( $item instanceof self ) { |
|
87 | + $this->set_id( $item->get_id() ); |
|
88 | + } elseif ( ! empty( $item->ID ) ) { |
|
89 | + $this->set_id( $item->ID ); |
|
90 | + } elseif ( is_scalar( $item ) && $item_id = self::get_item_id_by_field( $item, 'custom_id' ) ) { |
|
91 | + $this->set_id( $item_id ); |
|
92 | + } elseif ( is_scalar( $item ) && $item_id = self::get_item_id_by_field( $item, 'name' ) ) { |
|
93 | + $this->set_id( $item_id ); |
|
94 | + } else { |
|
95 | + $this->set_object_read( true ); |
|
96 | + } |
|
97 | 97 | |
98 | 98 | // Load the datastore. |
99 | - $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
99 | + $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
100 | 100 | |
101 | - if ( $this->get_id() > 0 ) { |
|
101 | + if ( $this->get_id() > 0 ) { |
|
102 | 102 | $this->post = get_post( $this->get_id() ); |
103 | 103 | $this->ID = $this->get_id(); |
104 | - $this->data_store->read( $this ); |
|
104 | + $this->data_store->read( $this ); |
|
105 | 105 | } |
106 | 106 | |
107 | - } |
|
107 | + } |
|
108 | 108 | |
109 | 109 | /* |
110 | 110 | |-------------------------------------------------------------------------- |
@@ -122,401 +122,401 @@ discard block |
||
122 | 122 | */ |
123 | 123 | |
124 | 124 | /** |
125 | - * Get parent item ID. |
|
126 | - * |
|
127 | - * @since 1.0.19 |
|
128 | - * @param string $context View or edit context. |
|
129 | - * @return int |
|
130 | - */ |
|
131 | - public function get_parent_id( $context = 'view' ) { |
|
132 | - return (int) $this->get_prop( 'parent_id', $context ); |
|
125 | + * Get parent item ID. |
|
126 | + * |
|
127 | + * @since 1.0.19 |
|
128 | + * @param string $context View or edit context. |
|
129 | + * @return int |
|
130 | + */ |
|
131 | + public function get_parent_id( $context = 'view' ) { |
|
132 | + return (int) $this->get_prop( 'parent_id', $context ); |
|
133 | 133 | } |
134 | 134 | |
135 | 135 | /** |
136 | - * Get item status. |
|
137 | - * |
|
138 | - * @since 1.0.19 |
|
139 | - * @param string $context View or edit context. |
|
140 | - * @return string |
|
141 | - */ |
|
142 | - public function get_status( $context = 'view' ) { |
|
143 | - return $this->get_prop( 'status', $context ); |
|
136 | + * Get item status. |
|
137 | + * |
|
138 | + * @since 1.0.19 |
|
139 | + * @param string $context View or edit context. |
|
140 | + * @return string |
|
141 | + */ |
|
142 | + public function get_status( $context = 'view' ) { |
|
143 | + return $this->get_prop( 'status', $context ); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | /** |
147 | - * Get plugin version when the item was created. |
|
148 | - * |
|
149 | - * @since 1.0.19 |
|
150 | - * @param string $context View or edit context. |
|
151 | - * @return string |
|
152 | - */ |
|
153 | - public function get_version( $context = 'view' ) { |
|
154 | - return $this->get_prop( 'version', $context ); |
|
147 | + * Get plugin version when the item was created. |
|
148 | + * |
|
149 | + * @since 1.0.19 |
|
150 | + * @param string $context View or edit context. |
|
151 | + * @return string |
|
152 | + */ |
|
153 | + public function get_version( $context = 'view' ) { |
|
154 | + return $this->get_prop( 'version', $context ); |
|
155 | 155 | } |
156 | 156 | |
157 | 157 | /** |
158 | - * Get date when the item was created. |
|
159 | - * |
|
160 | - * @since 1.0.19 |
|
161 | - * @param string $context View or edit context. |
|
162 | - * @return string |
|
163 | - */ |
|
164 | - public function get_date_created( $context = 'view' ) { |
|
165 | - return $this->get_prop( 'date_created', $context ); |
|
158 | + * Get date when the item was created. |
|
159 | + * |
|
160 | + * @since 1.0.19 |
|
161 | + * @param string $context View or edit context. |
|
162 | + * @return string |
|
163 | + */ |
|
164 | + public function get_date_created( $context = 'view' ) { |
|
165 | + return $this->get_prop( 'date_created', $context ); |
|
166 | 166 | } |
167 | 167 | |
168 | 168 | /** |
169 | - * Get GMT date when the item was created. |
|
170 | - * |
|
171 | - * @since 1.0.19 |
|
172 | - * @param string $context View or edit context. |
|
173 | - * @return string |
|
174 | - */ |
|
175 | - public function get_date_created_gmt( $context = 'view' ) { |
|
169 | + * Get GMT date when the item was created. |
|
170 | + * |
|
171 | + * @since 1.0.19 |
|
172 | + * @param string $context View or edit context. |
|
173 | + * @return string |
|
174 | + */ |
|
175 | + public function get_date_created_gmt( $context = 'view' ) { |
|
176 | 176 | $date = $this->get_date_created( $context ); |
177 | 177 | |
178 | 178 | if ( $date ) { |
179 | 179 | $date = get_gmt_from_date( $date ); |
180 | 180 | } |
181 | - return $date; |
|
181 | + return $date; |
|
182 | 182 | } |
183 | 183 | |
184 | 184 | /** |
185 | - * Get date when the item was last modified. |
|
186 | - * |
|
187 | - * @since 1.0.19 |
|
188 | - * @param string $context View or edit context. |
|
189 | - * @return string |
|
190 | - */ |
|
191 | - public function get_date_modified( $context = 'view' ) { |
|
192 | - return $this->get_prop( 'date_modified', $context ); |
|
185 | + * Get date when the item was last modified. |
|
186 | + * |
|
187 | + * @since 1.0.19 |
|
188 | + * @param string $context View or edit context. |
|
189 | + * @return string |
|
190 | + */ |
|
191 | + public function get_date_modified( $context = 'view' ) { |
|
192 | + return $this->get_prop( 'date_modified', $context ); |
|
193 | 193 | } |
194 | 194 | |
195 | 195 | /** |
196 | - * Get GMT date when the item was last modified. |
|
197 | - * |
|
198 | - * @since 1.0.19 |
|
199 | - * @param string $context View or edit context. |
|
200 | - * @return string |
|
201 | - */ |
|
202 | - public function get_date_modified_gmt( $context = 'view' ) { |
|
196 | + * Get GMT date when the item was last modified. |
|
197 | + * |
|
198 | + * @since 1.0.19 |
|
199 | + * @param string $context View or edit context. |
|
200 | + * @return string |
|
201 | + */ |
|
202 | + public function get_date_modified_gmt( $context = 'view' ) { |
|
203 | 203 | $date = $this->get_date_modified( $context ); |
204 | 204 | |
205 | 205 | if ( $date ) { |
206 | 206 | $date = get_gmt_from_date( $date ); |
207 | 207 | } |
208 | - return $date; |
|
208 | + return $date; |
|
209 | 209 | } |
210 | 210 | |
211 | 211 | /** |
212 | - * Get the item name. |
|
213 | - * |
|
214 | - * @since 1.0.19 |
|
215 | - * @param string $context View or edit context. |
|
216 | - * @return string |
|
217 | - */ |
|
218 | - public function get_name( $context = 'view' ) { |
|
219 | - return $this->get_prop( 'name', $context ); |
|
212 | + * Get the item name. |
|
213 | + * |
|
214 | + * @since 1.0.19 |
|
215 | + * @param string $context View or edit context. |
|
216 | + * @return string |
|
217 | + */ |
|
218 | + public function get_name( $context = 'view' ) { |
|
219 | + return $this->get_prop( 'name', $context ); |
|
220 | 220 | } |
221 | 221 | |
222 | 222 | /** |
223 | - * Alias of self::get_name(). |
|
224 | - * |
|
225 | - * @since 1.0.19 |
|
226 | - * @param string $context View or edit context. |
|
227 | - * @return string |
|
228 | - */ |
|
229 | - public function get_title( $context = 'view' ) { |
|
230 | - return $this->get_name( $context ); |
|
223 | + * Alias of self::get_name(). |
|
224 | + * |
|
225 | + * @since 1.0.19 |
|
226 | + * @param string $context View or edit context. |
|
227 | + * @return string |
|
228 | + */ |
|
229 | + public function get_title( $context = 'view' ) { |
|
230 | + return $this->get_name( $context ); |
|
231 | 231 | } |
232 | 232 | |
233 | 233 | /** |
234 | - * Get the item description. |
|
235 | - * |
|
236 | - * @since 1.0.19 |
|
237 | - * @param string $context View or edit context. |
|
238 | - * @return string |
|
239 | - */ |
|
240 | - public function get_description( $context = 'view' ) { |
|
241 | - return $this->get_prop( 'description', $context ); |
|
234 | + * Get the item description. |
|
235 | + * |
|
236 | + * @since 1.0.19 |
|
237 | + * @param string $context View or edit context. |
|
238 | + * @return string |
|
239 | + */ |
|
240 | + public function get_description( $context = 'view' ) { |
|
241 | + return $this->get_prop( 'description', $context ); |
|
242 | 242 | } |
243 | 243 | |
244 | 244 | /** |
245 | - * Alias of self::get_description(). |
|
246 | - * |
|
247 | - * @since 1.0.19 |
|
248 | - * @param string $context View or edit context. |
|
249 | - * @return string |
|
250 | - */ |
|
251 | - public function get_excerpt( $context = 'view' ) { |
|
252 | - return $this->get_description( $context ); |
|
245 | + * Alias of self::get_description(). |
|
246 | + * |
|
247 | + * @since 1.0.19 |
|
248 | + * @param string $context View or edit context. |
|
249 | + * @return string |
|
250 | + */ |
|
251 | + public function get_excerpt( $context = 'view' ) { |
|
252 | + return $this->get_description( $context ); |
|
253 | 253 | } |
254 | 254 | |
255 | 255 | /** |
256 | - * Alias of self::get_description(). |
|
257 | - * |
|
258 | - * @since 1.0.19 |
|
259 | - * @param string $context View or edit context. |
|
260 | - * @return string |
|
261 | - */ |
|
262 | - public function get_summary( $context = 'view' ) { |
|
263 | - return $this->get_description( $context ); |
|
256 | + * Alias of self::get_description(). |
|
257 | + * |
|
258 | + * @since 1.0.19 |
|
259 | + * @param string $context View or edit context. |
|
260 | + * @return string |
|
261 | + */ |
|
262 | + public function get_summary( $context = 'view' ) { |
|
263 | + return $this->get_description( $context ); |
|
264 | 264 | } |
265 | 265 | |
266 | 266 | /** |
267 | - * Get the owner of the item. |
|
268 | - * |
|
269 | - * @since 1.0.19 |
|
270 | - * @param string $context View or edit context. |
|
271 | - * @return int |
|
272 | - */ |
|
273 | - public function get_author( $context = 'view' ) { |
|
274 | - return (int) $this->get_prop( 'author', $context ); |
|
275 | - } |
|
267 | + * Get the owner of the item. |
|
268 | + * |
|
269 | + * @since 1.0.19 |
|
270 | + * @param string $context View or edit context. |
|
271 | + * @return int |
|
272 | + */ |
|
273 | + public function get_author( $context = 'view' ) { |
|
274 | + return (int) $this->get_prop( 'author', $context ); |
|
275 | + } |
|
276 | 276 | |
277 | - /** |
|
278 | - * Alias of self::get_author(). |
|
279 | - * |
|
280 | - * @since 1.0.19 |
|
281 | - * @param string $context View or edit context. |
|
282 | - * @return int |
|
283 | - */ |
|
284 | - public function get_owner( $context = 'view' ) { |
|
285 | - return $this->get_author( $context ); |
|
286 | - } |
|
287 | - |
|
288 | - /** |
|
289 | - * Get the price of the item. |
|
290 | - * |
|
291 | - * @since 1.0.19 |
|
292 | - * @param string $context View or edit context. |
|
293 | - * @return float |
|
294 | - */ |
|
295 | - public function get_price( $context = 'view' ) { |
|
277 | + /** |
|
278 | + * Alias of self::get_author(). |
|
279 | + * |
|
280 | + * @since 1.0.19 |
|
281 | + * @param string $context View or edit context. |
|
282 | + * @return int |
|
283 | + */ |
|
284 | + public function get_owner( $context = 'view' ) { |
|
285 | + return $this->get_author( $context ); |
|
286 | + } |
|
287 | + |
|
288 | + /** |
|
289 | + * Get the price of the item. |
|
290 | + * |
|
291 | + * @since 1.0.19 |
|
292 | + * @param string $context View or edit context. |
|
293 | + * @return float |
|
294 | + */ |
|
295 | + public function get_price( $context = 'view' ) { |
|
296 | 296 | return wpinv_sanitize_amount( $this->get_prop( 'price', $context ) ); |
297 | - } |
|
297 | + } |
|
298 | 298 | |
299 | - /** |
|
300 | - * Get the inital price of the item. |
|
301 | - * |
|
302 | - * @since 1.0.19 |
|
303 | - * @param string $context View or edit context. |
|
304 | - * @return float |
|
305 | - */ |
|
306 | - public function get_initial_price( $context = 'view' ) { |
|
299 | + /** |
|
300 | + * Get the inital price of the item. |
|
301 | + * |
|
302 | + * @since 1.0.19 |
|
303 | + * @param string $context View or edit context. |
|
304 | + * @return float |
|
305 | + */ |
|
306 | + public function get_initial_price( $context = 'view' ) { |
|
307 | 307 | |
308 | - $price = (float) $this->get_price( $context ); |
|
308 | + $price = (float) $this->get_price( $context ); |
|
309 | 309 | |
310 | - if ( $this->has_free_trial() ) { |
|
311 | - $price = 0; |
|
312 | - } |
|
310 | + if ( $this->has_free_trial() ) { |
|
311 | + $price = 0; |
|
312 | + } |
|
313 | 313 | |
314 | 314 | return wpinv_sanitize_amount( apply_filters( 'wpinv_get_initial_item_price', $price, $this ) ); |
315 | 315 | } |
316 | 316 | |
317 | 317 | /** |
318 | - * Returns a formated price. |
|
319 | - * |
|
320 | - * @since 1.0.19 |
|
321 | - * @param string $context View or edit context. |
|
322 | - * @return string |
|
323 | - */ |
|
318 | + * Returns a formated price. |
|
319 | + * |
|
320 | + * @since 1.0.19 |
|
321 | + * @param string $context View or edit context. |
|
322 | + * @return string |
|
323 | + */ |
|
324 | 324 | public function get_the_price() { |
325 | 325 | return wpinv_price( $this->get_price() ); |
326 | - } |
|
327 | - |
|
328 | - /** |
|
329 | - * Returns the formated initial price. |
|
330 | - * |
|
331 | - * @since 1.0.19 |
|
332 | - * @param string $context View or edit context. |
|
333 | - * @return string |
|
334 | - */ |
|
326 | + } |
|
327 | + |
|
328 | + /** |
|
329 | + * Returns the formated initial price. |
|
330 | + * |
|
331 | + * @since 1.0.19 |
|
332 | + * @param string $context View or edit context. |
|
333 | + * @return string |
|
334 | + */ |
|
335 | 335 | public function get_the_initial_price() { |
336 | 336 | return wpinv_price( $this->get_initial_price() ); |
337 | 337 | } |
338 | 338 | |
339 | 339 | /** |
340 | - * Get the VAT rule of the item. |
|
341 | - * |
|
342 | - * @since 1.0.19 |
|
343 | - * @param string $context View or edit context. |
|
344 | - * @return string |
|
345 | - */ |
|
346 | - public function get_vat_rule( $context = 'view' ) { |
|
340 | + * Get the VAT rule of the item. |
|
341 | + * |
|
342 | + * @since 1.0.19 |
|
343 | + * @param string $context View or edit context. |
|
344 | + * @return string |
|
345 | + */ |
|
346 | + public function get_vat_rule( $context = 'view' ) { |
|
347 | 347 | return $this->get_prop( 'vat_rule', $context ); |
348 | 348 | } |
349 | 349 | |
350 | 350 | /** |
351 | - * Get the VAT class of the item. |
|
352 | - * |
|
353 | - * @since 1.0.19 |
|
354 | - * @param string $context View or edit context. |
|
355 | - * @return string |
|
356 | - */ |
|
357 | - public function get_vat_class( $context = 'view' ) { |
|
351 | + * Get the VAT class of the item. |
|
352 | + * |
|
353 | + * @since 1.0.19 |
|
354 | + * @param string $context View or edit context. |
|
355 | + * @return string |
|
356 | + */ |
|
357 | + public function get_vat_class( $context = 'view' ) { |
|
358 | 358 | return $this->get_prop( 'vat_class', $context ); |
359 | 359 | } |
360 | 360 | |
361 | 361 | /** |
362 | - * Get the type of the item. |
|
363 | - * |
|
364 | - * @since 1.0.19 |
|
365 | - * @param string $context View or edit context. |
|
366 | - * @return string |
|
367 | - */ |
|
368 | - public function get_type( $context = 'view' ) { |
|
362 | + * Get the type of the item. |
|
363 | + * |
|
364 | + * @since 1.0.19 |
|
365 | + * @param string $context View or edit context. |
|
366 | + * @return string |
|
367 | + */ |
|
368 | + public function get_type( $context = 'view' ) { |
|
369 | 369 | return $this->get_prop( 'type', $context ); |
370 | 370 | } |
371 | 371 | |
372 | 372 | /** |
373 | - * Get the custom id of the item. |
|
374 | - * |
|
375 | - * @since 1.0.19 |
|
376 | - * @param string $context View or edit context. |
|
377 | - * @return string |
|
378 | - */ |
|
379 | - public function get_custom_id( $context = 'view' ) { |
|
373 | + * Get the custom id of the item. |
|
374 | + * |
|
375 | + * @since 1.0.19 |
|
376 | + * @param string $context View or edit context. |
|
377 | + * @return string |
|
378 | + */ |
|
379 | + public function get_custom_id( $context = 'view' ) { |
|
380 | 380 | return $this->get_prop( 'custom_id', $context ); |
381 | 381 | } |
382 | 382 | |
383 | 383 | /** |
384 | - * Get the custom name of the item. |
|
385 | - * |
|
386 | - * @since 1.0.19 |
|
387 | - * @param string $context View or edit context. |
|
388 | - * @return string |
|
389 | - */ |
|
390 | - public function get_custom_name( $context = 'view' ) { |
|
384 | + * Get the custom name of the item. |
|
385 | + * |
|
386 | + * @since 1.0.19 |
|
387 | + * @param string $context View or edit context. |
|
388 | + * @return string |
|
389 | + */ |
|
390 | + public function get_custom_name( $context = 'view' ) { |
|
391 | 391 | return $this->get_prop( 'custom_name', $context ); |
392 | 392 | } |
393 | 393 | |
394 | 394 | /** |
395 | - * Get the custom singular name of the item. |
|
396 | - * |
|
397 | - * @since 1.0.19 |
|
398 | - * @param string $context View or edit context. |
|
399 | - * @return string |
|
400 | - */ |
|
401 | - public function get_custom_singular_name( $context = 'view' ) { |
|
395 | + * Get the custom singular name of the item. |
|
396 | + * |
|
397 | + * @since 1.0.19 |
|
398 | + * @param string $context View or edit context. |
|
399 | + * @return string |
|
400 | + */ |
|
401 | + public function get_custom_singular_name( $context = 'view' ) { |
|
402 | 402 | return $this->get_prop( 'custom_singular_name', $context ); |
403 | 403 | } |
404 | 404 | |
405 | 405 | /** |
406 | - * Checks if an item is editable.. |
|
407 | - * |
|
408 | - * @since 1.0.19 |
|
409 | - * @param string $context View or edit context. |
|
410 | - * @return int |
|
411 | - */ |
|
412 | - public function get_is_editable( $context = 'view' ) { |
|
406 | + * Checks if an item is editable.. |
|
407 | + * |
|
408 | + * @since 1.0.19 |
|
409 | + * @param string $context View or edit context. |
|
410 | + * @return int |
|
411 | + */ |
|
412 | + public function get_is_editable( $context = 'view' ) { |
|
413 | 413 | return (int) $this->get_prop( 'is_editable', $context ); |
414 | 414 | } |
415 | 415 | |
416 | 416 | /** |
417 | - * Alias of self::get_is_editable(). |
|
418 | - * |
|
419 | - * @since 1.0.19 |
|
420 | - * @param string $context View or edit context. |
|
421 | - * @return int |
|
422 | - */ |
|
423 | - public function get_editable( $context = 'view' ) { |
|
424 | - return $this->get_is_editable( $context ); |
|
417 | + * Alias of self::get_is_editable(). |
|
418 | + * |
|
419 | + * @since 1.0.19 |
|
420 | + * @param string $context View or edit context. |
|
421 | + * @return int |
|
422 | + */ |
|
423 | + public function get_editable( $context = 'view' ) { |
|
424 | + return $this->get_is_editable( $context ); |
|
425 | 425 | } |
426 | 426 | |
427 | 427 | /** |
428 | - * Checks if dynamic pricing is enabled. |
|
429 | - * |
|
430 | - * @since 1.0.19 |
|
431 | - * @param string $context View or edit context. |
|
432 | - * @return int |
|
433 | - */ |
|
434 | - public function get_is_dynamic_pricing( $context = 'view' ) { |
|
428 | + * Checks if dynamic pricing is enabled. |
|
429 | + * |
|
430 | + * @since 1.0.19 |
|
431 | + * @param string $context View or edit context. |
|
432 | + * @return int |
|
433 | + */ |
|
434 | + public function get_is_dynamic_pricing( $context = 'view' ) { |
|
435 | 435 | return (int) $this->get_prop( 'is_dynamic_pricing', $context ); |
436 | 436 | } |
437 | 437 | |
438 | 438 | /** |
439 | - * Returns the minimum price if dynamic pricing is enabled. |
|
440 | - * |
|
441 | - * @since 1.0.19 |
|
442 | - * @param string $context View or edit context. |
|
443 | - * @return float |
|
444 | - */ |
|
445 | - public function get_minimum_price( $context = 'view' ) { |
|
439 | + * Returns the minimum price if dynamic pricing is enabled. |
|
440 | + * |
|
441 | + * @since 1.0.19 |
|
442 | + * @param string $context View or edit context. |
|
443 | + * @return float |
|
444 | + */ |
|
445 | + public function get_minimum_price( $context = 'view' ) { |
|
446 | 446 | return wpinv_sanitize_amount( $this->get_prop( 'minimum_price', $context ) ); |
447 | 447 | } |
448 | 448 | |
449 | 449 | /** |
450 | - * Checks if this is a recurring item. |
|
451 | - * |
|
452 | - * @since 1.0.19 |
|
453 | - * @param string $context View or edit context. |
|
454 | - * @return int |
|
455 | - */ |
|
456 | - public function get_is_recurring( $context = 'view' ) { |
|
450 | + * Checks if this is a recurring item. |
|
451 | + * |
|
452 | + * @since 1.0.19 |
|
453 | + * @param string $context View or edit context. |
|
454 | + * @return int |
|
455 | + */ |
|
456 | + public function get_is_recurring( $context = 'view' ) { |
|
457 | 457 | return (int) $this->get_prop( 'is_recurring', $context ); |
458 | - } |
|
458 | + } |
|
459 | 459 | |
460 | - /** |
|
461 | - * Get the recurring price of the item. |
|
462 | - * |
|
463 | - * @since 1.0.19 |
|
464 | - * @param string $context View or edit context. |
|
465 | - * @return float |
|
466 | - */ |
|
467 | - public function get_recurring_price( $context = 'view' ) { |
|
468 | - $price = $this->get_price( $context ); |
|
460 | + /** |
|
461 | + * Get the recurring price of the item. |
|
462 | + * |
|
463 | + * @since 1.0.19 |
|
464 | + * @param string $context View or edit context. |
|
465 | + * @return float |
|
466 | + */ |
|
467 | + public function get_recurring_price( $context = 'view' ) { |
|
468 | + $price = $this->get_price( $context ); |
|
469 | 469 | return wpinv_sanitize_amount( apply_filters( 'wpinv_get_recurring_item_price', $price, $this->ID ) ); |
470 | - } |
|
471 | - |
|
472 | - /** |
|
473 | - * Get the formatted recurring price of the item. |
|
474 | - * |
|
475 | - * @since 1.0.19 |
|
476 | - * @param string $context View or edit context. |
|
477 | - * @return string |
|
478 | - */ |
|
470 | + } |
|
471 | + |
|
472 | + /** |
|
473 | + * Get the formatted recurring price of the item. |
|
474 | + * |
|
475 | + * @since 1.0.19 |
|
476 | + * @param string $context View or edit context. |
|
477 | + * @return string |
|
478 | + */ |
|
479 | 479 | public function get_the_recurring_price() { |
480 | 480 | return wpinv_price( $this->get_recurring_price() ); |
481 | - } |
|
482 | - |
|
483 | - /** |
|
484 | - * Get the first renewal date (in timestamps) of the item. |
|
485 | - * |
|
486 | - * @since 1.0.19 |
|
487 | - * @return int |
|
488 | - */ |
|
489 | - public function get_first_renewal_date() { |
|
490 | - |
|
491 | - $periods = array( |
|
492 | - 'D' => 'days', |
|
493 | - 'W' => 'weeks', |
|
494 | - 'M' => 'months', |
|
495 | - 'Y' => 'years', |
|
496 | - ); |
|
497 | - |
|
498 | - $period = $this->get_recurring_period(); |
|
499 | - $interval = $this->get_recurring_interval(); |
|
500 | - |
|
501 | - if ( $this->has_free_trial() ) { |
|
502 | - $period = $this->get_trial_period(); |
|
503 | - $interval = $this->get_trial_interval(); |
|
504 | - } |
|
505 | - |
|
506 | - $period = $periods[ $period ]; |
|
507 | - $interval = empty( $interval ) ? 1 : $interval; |
|
508 | - $next_renewal = strtotime( "+$interval $period", current_time( 'timestamp' ) ); |
|
481 | + } |
|
482 | + |
|
483 | + /** |
|
484 | + * Get the first renewal date (in timestamps) of the item. |
|
485 | + * |
|
486 | + * @since 1.0.19 |
|
487 | + * @return int |
|
488 | + */ |
|
489 | + public function get_first_renewal_date() { |
|
490 | + |
|
491 | + $periods = array( |
|
492 | + 'D' => 'days', |
|
493 | + 'W' => 'weeks', |
|
494 | + 'M' => 'months', |
|
495 | + 'Y' => 'years', |
|
496 | + ); |
|
497 | + |
|
498 | + $period = $this->get_recurring_period(); |
|
499 | + $interval = $this->get_recurring_interval(); |
|
500 | + |
|
501 | + if ( $this->has_free_trial() ) { |
|
502 | + $period = $this->get_trial_period(); |
|
503 | + $interval = $this->get_trial_interval(); |
|
504 | + } |
|
505 | + |
|
506 | + $period = $periods[ $period ]; |
|
507 | + $interval = empty( $interval ) ? 1 : $interval; |
|
508 | + $next_renewal = strtotime( "+$interval $period", current_time( 'timestamp' ) ); |
|
509 | 509 | return apply_filters( 'wpinv_get_first_renewal_date', $next_renewal, $this ); |
510 | 510 | } |
511 | 511 | |
512 | 512 | /** |
513 | - * Get the recurring period. |
|
514 | - * |
|
515 | - * @since 1.0.19 |
|
516 | - * @param bool $full Return abbreviation or in full. |
|
517 | - * @return string |
|
518 | - */ |
|
519 | - public function get_recurring_period( $full = false ) { |
|
513 | + * Get the recurring period. |
|
514 | + * |
|
515 | + * @since 1.0.19 |
|
516 | + * @param bool $full Return abbreviation or in full. |
|
517 | + * @return string |
|
518 | + */ |
|
519 | + public function get_recurring_period( $full = false ) { |
|
520 | 520 | $period = $this->get_prop( 'recurring_period', 'view' ); |
521 | 521 | |
522 | 522 | if ( $full && ! is_bool( $full ) ) { |
@@ -527,63 +527,63 @@ discard block |
||
527 | 527 | } |
528 | 528 | |
529 | 529 | /** |
530 | - * Get the recurring interval. |
|
531 | - * |
|
532 | - * @since 1.0.19 |
|
533 | - * @param string $context View or edit context. |
|
534 | - * @return int |
|
535 | - */ |
|
536 | - public function get_recurring_interval( $context = 'view' ) { |
|
537 | - $interval = absint( $this->get_prop( 'recurring_interval', $context ) ); |
|
530 | + * Get the recurring interval. |
|
531 | + * |
|
532 | + * @since 1.0.19 |
|
533 | + * @param string $context View or edit context. |
|
534 | + * @return int |
|
535 | + */ |
|
536 | + public function get_recurring_interval( $context = 'view' ) { |
|
537 | + $interval = absint( $this->get_prop( 'recurring_interval', $context ) ); |
|
538 | 538 | |
539 | - if ( $interval < 1 ) { |
|
540 | - $interval = 1; |
|
541 | - } |
|
539 | + if ( $interval < 1 ) { |
|
540 | + $interval = 1; |
|
541 | + } |
|
542 | 542 | |
543 | 543 | return $interval; |
544 | 544 | } |
545 | 545 | |
546 | 546 | /** |
547 | - * Get the recurring limit. |
|
548 | - * |
|
549 | - * @since 1.0.19 |
|
550 | - * @param string $context View or edit context. |
|
551 | - * @return int |
|
552 | - */ |
|
553 | - public function get_recurring_limit( $context = 'view' ) { |
|
547 | + * Get the recurring limit. |
|
548 | + * |
|
549 | + * @since 1.0.19 |
|
550 | + * @param string $context View or edit context. |
|
551 | + * @return int |
|
552 | + */ |
|
553 | + public function get_recurring_limit( $context = 'view' ) { |
|
554 | 554 | return (int) $this->get_prop( 'recurring_limit', $context ); |
555 | 555 | } |
556 | 556 | |
557 | 557 | /** |
558 | - * Checks if we have a free trial. |
|
559 | - * |
|
560 | - * @since 1.0.19 |
|
561 | - * @param string $context View or edit context. |
|
562 | - * @return int |
|
563 | - */ |
|
564 | - public function get_is_free_trial( $context = 'view' ) { |
|
558 | + * Checks if we have a free trial. |
|
559 | + * |
|
560 | + * @since 1.0.19 |
|
561 | + * @param string $context View or edit context. |
|
562 | + * @return int |
|
563 | + */ |
|
564 | + public function get_is_free_trial( $context = 'view' ) { |
|
565 | 565 | return (int) $this->get_prop( 'is_free_trial', $context ); |
566 | 566 | } |
567 | 567 | |
568 | 568 | /** |
569 | - * Alias for self::get_is_free_trial(). |
|
570 | - * |
|
571 | - * @since 1.0.19 |
|
572 | - * @param string $context View or edit context. |
|
573 | - * @return int |
|
574 | - */ |
|
575 | - public function get_free_trial( $context = 'view' ) { |
|
569 | + * Alias for self::get_is_free_trial(). |
|
570 | + * |
|
571 | + * @since 1.0.19 |
|
572 | + * @param string $context View or edit context. |
|
573 | + * @return int |
|
574 | + */ |
|
575 | + public function get_free_trial( $context = 'view' ) { |
|
576 | 576 | return $this->get_is_free_trial( $context ); |
577 | 577 | } |
578 | 578 | |
579 | 579 | /** |
580 | - * Get the trial period. |
|
581 | - * |
|
582 | - * @since 1.0.19 |
|
583 | - * @param bool $full Return abbreviation or in full. |
|
584 | - * @return string |
|
585 | - */ |
|
586 | - public function get_trial_period( $full = false ) { |
|
580 | + * Get the trial period. |
|
581 | + * |
|
582 | + * @since 1.0.19 |
|
583 | + * @param bool $full Return abbreviation or in full. |
|
584 | + * @return string |
|
585 | + */ |
|
586 | + public function get_trial_period( $full = false ) { |
|
587 | 587 | $period = $this->get_prop( 'trial_period', 'view' ); |
588 | 588 | |
589 | 589 | if ( $full && ! is_bool( $full ) ) { |
@@ -594,104 +594,104 @@ discard block |
||
594 | 594 | } |
595 | 595 | |
596 | 596 | /** |
597 | - * Get the trial interval. |
|
598 | - * |
|
599 | - * @since 1.0.19 |
|
600 | - * @param string $context View or edit context. |
|
601 | - * @return int |
|
602 | - */ |
|
603 | - public function get_trial_interval( $context = 'view' ) { |
|
597 | + * Get the trial interval. |
|
598 | + * |
|
599 | + * @since 1.0.19 |
|
600 | + * @param string $context View or edit context. |
|
601 | + * @return int |
|
602 | + */ |
|
603 | + public function get_trial_interval( $context = 'view' ) { |
|
604 | 604 | return (int) $this->get_prop( 'trial_interval', $context ); |
605 | - } |
|
605 | + } |
|
606 | 606 | |
607 | - /** |
|
608 | - * Get the item's edit url. |
|
609 | - * |
|
610 | - * @since 1.0.19 |
|
611 | - * @return string |
|
612 | - */ |
|
613 | - public function get_edit_url() { |
|
607 | + /** |
|
608 | + * Get the item's edit url. |
|
609 | + * |
|
610 | + * @since 1.0.19 |
|
611 | + * @return string |
|
612 | + */ |
|
613 | + public function get_edit_url() { |
|
614 | 614 | return get_edit_post_link( $this->get_id() ); |
615 | - } |
|
616 | - |
|
617 | - /** |
|
618 | - * Given an item's name/custom id, it returns its id. |
|
619 | - * |
|
620 | - * |
|
621 | - * @static |
|
622 | - * @param string $value The item name or custom id. |
|
623 | - * @param string $field Either name or custom_id. |
|
624 | - * @param string $type in case you need to search for a given type. |
|
625 | - * @since 1.0.15 |
|
626 | - * @return int |
|
627 | - */ |
|
628 | - public static function get_item_id_by_field( $value, $field = 'custom_id', $type = '' ) { |
|
629 | - |
|
630 | - // Trim the value. |
|
631 | - $value = sanitize_text_field( $value ); |
|
632 | - if ( empty( $value ) ) { |
|
633 | - return 0; |
|
634 | - } |
|
615 | + } |
|
616 | + |
|
617 | + /** |
|
618 | + * Given an item's name/custom id, it returns its id. |
|
619 | + * |
|
620 | + * |
|
621 | + * @static |
|
622 | + * @param string $value The item name or custom id. |
|
623 | + * @param string $field Either name or custom_id. |
|
624 | + * @param string $type in case you need to search for a given type. |
|
625 | + * @since 1.0.15 |
|
626 | + * @return int |
|
627 | + */ |
|
628 | + public static function get_item_id_by_field( $value, $field = 'custom_id', $type = '' ) { |
|
629 | + |
|
630 | + // Trim the value. |
|
631 | + $value = sanitize_text_field( $value ); |
|
632 | + if ( empty( $value ) ) { |
|
633 | + return 0; |
|
634 | + } |
|
635 | 635 | |
636 | 636 | // Valid fields. |
637 | 637 | $fields = array( 'custom_id', 'name', 'slug' ); |
638 | 638 | |
639 | - // Ensure a field has been passed. |
|
640 | - if ( empty( $field ) || ! in_array( $field, $fields ) ) { |
|
641 | - return 0; |
|
642 | - } |
|
643 | - |
|
644 | - if ( $field == 'name' ) { |
|
645 | - $field = 'slug'; |
|
646 | - } |
|
647 | - |
|
648 | - // Maybe retrieve from the cache. |
|
649 | - $item_id = wp_cache_get( $value, "getpaid_{$type}_item_{$field}s_to_item_ids" ); |
|
650 | - if ( ! empty( $item_id ) ) { |
|
651 | - return $item_id; |
|
652 | - } |
|
653 | - |
|
654 | - // Fetch from the db. |
|
655 | - $items = array(); |
|
656 | - if ( $field == 'slug' ) { |
|
657 | - $items = get_posts( |
|
658 | - array( |
|
659 | - 'post_type' => 'wpi_item', |
|
660 | - 'name' => $value, |
|
661 | - 'posts_per_page' => 1, |
|
662 | - 'post_status' => 'any', |
|
663 | - ) |
|
664 | - ); |
|
665 | - } |
|
666 | - |
|
667 | - if ( $field =='custom_id' ) { |
|
668 | - $items = get_posts( |
|
669 | - array( |
|
670 | - 'post_type' => 'wpi_item', |
|
671 | - 'posts_per_page' => 1, |
|
672 | - 'post_status' => 'any', |
|
673 | - 'meta_query' => array( |
|
674 | - array( |
|
675 | - 'key' => '_wpinv_type', |
|
676 | - 'value' => $type, |
|
677 | - ), |
|
678 | - array( |
|
679 | - 'key' => '_wpinv_custom_id', |
|
680 | - 'value' => $value, |
|
681 | - ) |
|
682 | - ) |
|
683 | - ) |
|
684 | - ); |
|
685 | - } |
|
686 | - |
|
687 | - if ( empty( $items ) ) { |
|
688 | - return 0; |
|
689 | - } |
|
690 | - |
|
691 | - // Update the cache with our data |
|
692 | - wp_cache_set( $value, $items[0]->ID, "getpaid_{$type}_item_{$field}s_to_item_ids" ); |
|
693 | - |
|
694 | - return $items[0]->ID; |
|
639 | + // Ensure a field has been passed. |
|
640 | + if ( empty( $field ) || ! in_array( $field, $fields ) ) { |
|
641 | + return 0; |
|
642 | + } |
|
643 | + |
|
644 | + if ( $field == 'name' ) { |
|
645 | + $field = 'slug'; |
|
646 | + } |
|
647 | + |
|
648 | + // Maybe retrieve from the cache. |
|
649 | + $item_id = wp_cache_get( $value, "getpaid_{$type}_item_{$field}s_to_item_ids" ); |
|
650 | + if ( ! empty( $item_id ) ) { |
|
651 | + return $item_id; |
|
652 | + } |
|
653 | + |
|
654 | + // Fetch from the db. |
|
655 | + $items = array(); |
|
656 | + if ( $field == 'slug' ) { |
|
657 | + $items = get_posts( |
|
658 | + array( |
|
659 | + 'post_type' => 'wpi_item', |
|
660 | + 'name' => $value, |
|
661 | + 'posts_per_page' => 1, |
|
662 | + 'post_status' => 'any', |
|
663 | + ) |
|
664 | + ); |
|
665 | + } |
|
666 | + |
|
667 | + if ( $field =='custom_id' ) { |
|
668 | + $items = get_posts( |
|
669 | + array( |
|
670 | + 'post_type' => 'wpi_item', |
|
671 | + 'posts_per_page' => 1, |
|
672 | + 'post_status' => 'any', |
|
673 | + 'meta_query' => array( |
|
674 | + array( |
|
675 | + 'key' => '_wpinv_type', |
|
676 | + 'value' => $type, |
|
677 | + ), |
|
678 | + array( |
|
679 | + 'key' => '_wpinv_custom_id', |
|
680 | + 'value' => $value, |
|
681 | + ) |
|
682 | + ) |
|
683 | + ) |
|
684 | + ); |
|
685 | + } |
|
686 | + |
|
687 | + if ( empty( $items ) ) { |
|
688 | + return 0; |
|
689 | + } |
|
690 | + |
|
691 | + // Update the cache with our data |
|
692 | + wp_cache_set( $value, $items[0]->ID, "getpaid_{$type}_item_{$field}s_to_item_ids" ); |
|
693 | + |
|
694 | + return $items[0]->ID; |
|
695 | 695 | } |
696 | 696 | |
697 | 697 | /** |
@@ -724,52 +724,52 @@ discard block |
||
724 | 724 | */ |
725 | 725 | |
726 | 726 | /** |
727 | - * Set parent order ID. |
|
728 | - * |
|
729 | - * @since 1.0.19 |
|
730 | - */ |
|
731 | - public function set_parent_id( $value ) { |
|
732 | - if ( $value && ( $value === $this->get_id() || ! get_post( $value ) ) ) { |
|
733 | - return; |
|
734 | - } |
|
735 | - $this->set_prop( 'parent_id', absint( $value ) ); |
|
736 | - } |
|
737 | - |
|
738 | - /** |
|
739 | - * Sets item status. |
|
740 | - * |
|
741 | - * @since 1.0.19 |
|
742 | - * @param string $status New status. |
|
743 | - * @return array details of change. |
|
744 | - */ |
|
745 | - public function set_status( $status ) { |
|
727 | + * Set parent order ID. |
|
728 | + * |
|
729 | + * @since 1.0.19 |
|
730 | + */ |
|
731 | + public function set_parent_id( $value ) { |
|
732 | + if ( $value && ( $value === $this->get_id() || ! get_post( $value ) ) ) { |
|
733 | + return; |
|
734 | + } |
|
735 | + $this->set_prop( 'parent_id', absint( $value ) ); |
|
736 | + } |
|
737 | + |
|
738 | + /** |
|
739 | + * Sets item status. |
|
740 | + * |
|
741 | + * @since 1.0.19 |
|
742 | + * @param string $status New status. |
|
743 | + * @return array details of change. |
|
744 | + */ |
|
745 | + public function set_status( $status ) { |
|
746 | 746 | $old_status = $this->get_status(); |
747 | 747 | |
748 | 748 | $this->set_prop( 'status', $status ); |
749 | 749 | |
750 | - return array( |
|
751 | - 'from' => $old_status, |
|
752 | - 'to' => $status, |
|
753 | - ); |
|
750 | + return array( |
|
751 | + 'from' => $old_status, |
|
752 | + 'to' => $status, |
|
753 | + ); |
|
754 | 754 | } |
755 | 755 | |
756 | 756 | /** |
757 | - * Set plugin version when the item was created. |
|
758 | - * |
|
759 | - * @since 1.0.19 |
|
760 | - */ |
|
761 | - public function set_version( $value ) { |
|
762 | - $this->set_prop( 'version', $value ); |
|
757 | + * Set plugin version when the item was created. |
|
758 | + * |
|
759 | + * @since 1.0.19 |
|
760 | + */ |
|
761 | + public function set_version( $value ) { |
|
762 | + $this->set_prop( 'version', $value ); |
|
763 | 763 | } |
764 | 764 | |
765 | 765 | /** |
766 | - * Set date when the item was created. |
|
767 | - * |
|
768 | - * @since 1.0.19 |
|
769 | - * @param string $value Value to set. |
|
766 | + * Set date when the item was created. |
|
767 | + * |
|
768 | + * @since 1.0.19 |
|
769 | + * @param string $value Value to set. |
|
770 | 770 | * @return bool Whether or not the date was set. |
771 | - */ |
|
772 | - public function set_date_created( $value ) { |
|
771 | + */ |
|
772 | + public function set_date_created( $value ) { |
|
773 | 773 | $date = strtotime( $value ); |
774 | 774 | |
775 | 775 | if ( $date ) { |
@@ -782,13 +782,13 @@ discard block |
||
782 | 782 | } |
783 | 783 | |
784 | 784 | /** |
785 | - * Set date when the item was last modified. |
|
786 | - * |
|
787 | - * @since 1.0.19 |
|
788 | - * @param string $value Value to set. |
|
785 | + * Set date when the item was last modified. |
|
786 | + * |
|
787 | + * @since 1.0.19 |
|
788 | + * @param string $value Value to set. |
|
789 | 789 | * @return bool Whether or not the date was set. |
790 | - */ |
|
791 | - public function set_date_modified( $value ) { |
|
790 | + */ |
|
791 | + public function set_date_modified( $value ) { |
|
792 | 792 | $date = strtotime( $value ); |
793 | 793 | |
794 | 794 | if ( $date ) { |
@@ -801,115 +801,115 @@ discard block |
||
801 | 801 | } |
802 | 802 | |
803 | 803 | /** |
804 | - * Set the item name. |
|
805 | - * |
|
806 | - * @since 1.0.19 |
|
807 | - * @param string $value New name. |
|
808 | - */ |
|
809 | - public function set_name( $value ) { |
|
804 | + * Set the item name. |
|
805 | + * |
|
806 | + * @since 1.0.19 |
|
807 | + * @param string $value New name. |
|
808 | + */ |
|
809 | + public function set_name( $value ) { |
|
810 | 810 | $name = sanitize_text_field( $value ); |
811 | - $this->set_prop( 'name', $name ); |
|
811 | + $this->set_prop( 'name', $name ); |
|
812 | 812 | } |
813 | 813 | |
814 | 814 | /** |
815 | - * Alias of self::set_name(). |
|
816 | - * |
|
817 | - * @since 1.0.19 |
|
818 | - * @param string $value New name. |
|
819 | - */ |
|
820 | - public function set_title( $value ) { |
|
821 | - $this->set_name( $value ); |
|
815 | + * Alias of self::set_name(). |
|
816 | + * |
|
817 | + * @since 1.0.19 |
|
818 | + * @param string $value New name. |
|
819 | + */ |
|
820 | + public function set_title( $value ) { |
|
821 | + $this->set_name( $value ); |
|
822 | 822 | } |
823 | 823 | |
824 | 824 | /** |
825 | - * Set the item description. |
|
826 | - * |
|
827 | - * @since 1.0.19 |
|
828 | - * @param string $value New description. |
|
829 | - */ |
|
830 | - public function set_description( $value ) { |
|
831 | - $description = wp_kses_post( $value ); |
|
832 | - return $this->set_prop( 'description', $description ); |
|
825 | + * Set the item description. |
|
826 | + * |
|
827 | + * @since 1.0.19 |
|
828 | + * @param string $value New description. |
|
829 | + */ |
|
830 | + public function set_description( $value ) { |
|
831 | + $description = wp_kses_post( $value ); |
|
832 | + return $this->set_prop( 'description', $description ); |
|
833 | 833 | } |
834 | 834 | |
835 | 835 | /** |
836 | - * Alias of self::set_description(). |
|
837 | - * |
|
838 | - * @since 1.0.19 |
|
839 | - * @param string $value New description. |
|
840 | - */ |
|
841 | - public function set_excerpt( $value ) { |
|
842 | - $this->set_description( $value ); |
|
836 | + * Alias of self::set_description(). |
|
837 | + * |
|
838 | + * @since 1.0.19 |
|
839 | + * @param string $value New description. |
|
840 | + */ |
|
841 | + public function set_excerpt( $value ) { |
|
842 | + $this->set_description( $value ); |
|
843 | 843 | } |
844 | 844 | |
845 | 845 | /** |
846 | - * Alias of self::set_description(). |
|
847 | - * |
|
848 | - * @since 1.0.19 |
|
849 | - * @param string $value New description. |
|
850 | - */ |
|
851 | - public function set_summary( $value ) { |
|
852 | - $this->set_description( $value ); |
|
846 | + * Alias of self::set_description(). |
|
847 | + * |
|
848 | + * @since 1.0.19 |
|
849 | + * @param string $value New description. |
|
850 | + */ |
|
851 | + public function set_summary( $value ) { |
|
852 | + $this->set_description( $value ); |
|
853 | 853 | } |
854 | 854 | |
855 | 855 | /** |
856 | - * Set the owner of the item. |
|
857 | - * |
|
858 | - * @since 1.0.19 |
|
859 | - * @param int $value New author. |
|
860 | - */ |
|
861 | - public function set_author( $value ) { |
|
862 | - $this->set_prop( 'author', (int) $value ); |
|
863 | - } |
|
856 | + * Set the owner of the item. |
|
857 | + * |
|
858 | + * @since 1.0.19 |
|
859 | + * @param int $value New author. |
|
860 | + */ |
|
861 | + public function set_author( $value ) { |
|
862 | + $this->set_prop( 'author', (int) $value ); |
|
863 | + } |
|
864 | 864 | |
865 | - /** |
|
866 | - * Alias of self::set_author(). |
|
867 | - * |
|
868 | - * @since 1.0.19 |
|
869 | - * @param int $value New author. |
|
870 | - */ |
|
871 | - public function set_owner( $value ) { |
|
872 | - $this->set_author( $value ); |
|
873 | - } |
|
874 | - |
|
875 | - /** |
|
876 | - * Set the price of the item. |
|
877 | - * |
|
878 | - * @since 1.0.19 |
|
879 | - * @param float $value New price. |
|
880 | - */ |
|
881 | - public function set_price( $value ) { |
|
865 | + /** |
|
866 | + * Alias of self::set_author(). |
|
867 | + * |
|
868 | + * @since 1.0.19 |
|
869 | + * @param int $value New author. |
|
870 | + */ |
|
871 | + public function set_owner( $value ) { |
|
872 | + $this->set_author( $value ); |
|
873 | + } |
|
874 | + |
|
875 | + /** |
|
876 | + * Set the price of the item. |
|
877 | + * |
|
878 | + * @since 1.0.19 |
|
879 | + * @param float $value New price. |
|
880 | + */ |
|
881 | + public function set_price( $value ) { |
|
882 | 882 | $this->set_prop( 'price', (float) wpinv_sanitize_amount( $value ) ); |
883 | 883 | } |
884 | 884 | |
885 | 885 | /** |
886 | - * Set the VAT rule of the item. |
|
887 | - * |
|
888 | - * @since 1.0.19 |
|
889 | - * @param string $value new rule. |
|
890 | - */ |
|
891 | - public function set_vat_rule( $value ) { |
|
886 | + * Set the VAT rule of the item. |
|
887 | + * |
|
888 | + * @since 1.0.19 |
|
889 | + * @param string $value new rule. |
|
890 | + */ |
|
891 | + public function set_vat_rule( $value ) { |
|
892 | 892 | $this->set_prop( 'vat_rule', $value ); |
893 | 893 | } |
894 | 894 | |
895 | 895 | /** |
896 | - * Set the VAT class of the item. |
|
897 | - * |
|
898 | - * @since 1.0.19 |
|
899 | - * @param string $value new class. |
|
900 | - */ |
|
901 | - public function set_vat_class( $value ) { |
|
896 | + * Set the VAT class of the item. |
|
897 | + * |
|
898 | + * @since 1.0.19 |
|
899 | + * @param string $value new class. |
|
900 | + */ |
|
901 | + public function set_vat_class( $value ) { |
|
902 | 902 | $this->set_prop( 'vat_class', $value ); |
903 | 903 | } |
904 | 904 | |
905 | 905 | /** |
906 | - * Set the type of the item. |
|
907 | - * |
|
908 | - * @since 1.0.19 |
|
909 | - * @param string $value new item type. |
|
910 | - * @return string |
|
911 | - */ |
|
912 | - public function set_type( $value ) { |
|
906 | + * Set the type of the item. |
|
907 | + * |
|
908 | + * @since 1.0.19 |
|
909 | + * @param string $value new item type. |
|
910 | + * @return string |
|
911 | + */ |
|
912 | + public function set_type( $value ) { |
|
913 | 913 | |
914 | 914 | if ( empty( $value ) ) { |
915 | 915 | $value = 'custom'; |
@@ -919,132 +919,132 @@ discard block |
||
919 | 919 | } |
920 | 920 | |
921 | 921 | /** |
922 | - * Set the custom id of the item. |
|
923 | - * |
|
924 | - * @since 1.0.19 |
|
925 | - * @param string $value new custom id. |
|
926 | - */ |
|
927 | - public function set_custom_id( $value ) { |
|
922 | + * Set the custom id of the item. |
|
923 | + * |
|
924 | + * @since 1.0.19 |
|
925 | + * @param string $value new custom id. |
|
926 | + */ |
|
927 | + public function set_custom_id( $value ) { |
|
928 | 928 | $this->set_prop( 'custom_id', $value ); |
929 | 929 | } |
930 | 930 | |
931 | 931 | /** |
932 | - * Set the custom name of the item. |
|
933 | - * |
|
934 | - * @since 1.0.19 |
|
935 | - * @param string $value new custom name. |
|
936 | - */ |
|
937 | - public function set_custom_name( $value ) { |
|
932 | + * Set the custom name of the item. |
|
933 | + * |
|
934 | + * @since 1.0.19 |
|
935 | + * @param string $value new custom name. |
|
936 | + */ |
|
937 | + public function set_custom_name( $value ) { |
|
938 | 938 | $this->set_prop( 'custom_name', $value ); |
939 | 939 | } |
940 | 940 | |
941 | 941 | /** |
942 | - * Set the custom singular name of the item. |
|
943 | - * |
|
944 | - * @since 1.0.19 |
|
945 | - * @param string $value new custom singular name. |
|
946 | - */ |
|
947 | - public function set_custom_singular_name( $value ) { |
|
942 | + * Set the custom singular name of the item. |
|
943 | + * |
|
944 | + * @since 1.0.19 |
|
945 | + * @param string $value new custom singular name. |
|
946 | + */ |
|
947 | + public function set_custom_singular_name( $value ) { |
|
948 | 948 | $this->set_prop( 'custom_singular_name', $value ); |
949 | 949 | } |
950 | 950 | |
951 | 951 | /** |
952 | - * Sets if an item is editable.. |
|
953 | - * |
|
954 | - * @since 1.0.19 |
|
955 | - * @param int|bool $value whether or not the item is editable. |
|
956 | - */ |
|
957 | - public function set_is_editable( $value ) { |
|
958 | - $this->set_prop( 'is_editable', (int) $value ); |
|
952 | + * Sets if an item is editable.. |
|
953 | + * |
|
954 | + * @since 1.0.19 |
|
955 | + * @param int|bool $value whether or not the item is editable. |
|
956 | + */ |
|
957 | + public function set_is_editable( $value ) { |
|
958 | + $this->set_prop( 'is_editable', (int) $value ); |
|
959 | 959 | } |
960 | 960 | |
961 | 961 | /** |
962 | - * Sets if dynamic pricing is enabled. |
|
963 | - * |
|
964 | - * @since 1.0.19 |
|
965 | - * @param int|bool $value whether or not dynamic pricing is allowed. |
|
966 | - */ |
|
967 | - public function set_is_dynamic_pricing( $value ) { |
|
962 | + * Sets if dynamic pricing is enabled. |
|
963 | + * |
|
964 | + * @since 1.0.19 |
|
965 | + * @param int|bool $value whether or not dynamic pricing is allowed. |
|
966 | + */ |
|
967 | + public function set_is_dynamic_pricing( $value ) { |
|
968 | 968 | $this->set_prop( 'is_dynamic_pricing', (int) $value ); |
969 | 969 | } |
970 | 970 | |
971 | 971 | /** |
972 | - * Sets the minimum price if dynamic pricing is enabled. |
|
973 | - * |
|
974 | - * @since 1.0.19 |
|
975 | - * @param float $value minimum price. |
|
976 | - */ |
|
977 | - public function set_minimum_price( $value ) { |
|
972 | + * Sets the minimum price if dynamic pricing is enabled. |
|
973 | + * |
|
974 | + * @since 1.0.19 |
|
975 | + * @param float $value minimum price. |
|
976 | + */ |
|
977 | + public function set_minimum_price( $value ) { |
|
978 | 978 | $this->set_prop( 'minimum_price', (float) wpinv_sanitize_amount( $value ) ); |
979 | 979 | } |
980 | 980 | |
981 | 981 | /** |
982 | - * Sets if this is a recurring item. |
|
983 | - * |
|
984 | - * @since 1.0.19 |
|
985 | - * @param int|bool $value whether or not dynamic pricing is allowed. |
|
986 | - */ |
|
987 | - public function set_is_recurring( $value ) { |
|
982 | + * Sets if this is a recurring item. |
|
983 | + * |
|
984 | + * @since 1.0.19 |
|
985 | + * @param int|bool $value whether or not dynamic pricing is allowed. |
|
986 | + */ |
|
987 | + public function set_is_recurring( $value ) { |
|
988 | 988 | $this->set_prop( 'is_recurring', (int) $value ); |
989 | 989 | } |
990 | 990 | |
991 | 991 | /** |
992 | - * Set the recurring period. |
|
993 | - * |
|
994 | - * @since 1.0.19 |
|
995 | - * @param string $value new period. |
|
996 | - */ |
|
997 | - public function set_recurring_period( $value ) { |
|
992 | + * Set the recurring period. |
|
993 | + * |
|
994 | + * @since 1.0.19 |
|
995 | + * @param string $value new period. |
|
996 | + */ |
|
997 | + public function set_recurring_period( $value ) { |
|
998 | 998 | $this->set_prop( 'recurring_period', $value ); |
999 | 999 | } |
1000 | 1000 | |
1001 | 1001 | /** |
1002 | - * Set the recurring interval. |
|
1003 | - * |
|
1004 | - * @since 1.0.19 |
|
1005 | - * @param int $value recurring interval. |
|
1006 | - */ |
|
1007 | - public function set_recurring_interval( $value ) { |
|
1002 | + * Set the recurring interval. |
|
1003 | + * |
|
1004 | + * @since 1.0.19 |
|
1005 | + * @param int $value recurring interval. |
|
1006 | + */ |
|
1007 | + public function set_recurring_interval( $value ) { |
|
1008 | 1008 | return $this->set_prop( 'recurring_interval', (int) $value ); |
1009 | 1009 | } |
1010 | 1010 | |
1011 | 1011 | /** |
1012 | - * Get the recurring limit. |
|
1013 | - * @since 1.0.19 |
|
1014 | - * @param int $value The recurring limit. |
|
1015 | - * @return int |
|
1016 | - */ |
|
1017 | - public function set_recurring_limit( $value ) { |
|
1012 | + * Get the recurring limit. |
|
1013 | + * @since 1.0.19 |
|
1014 | + * @param int $value The recurring limit. |
|
1015 | + * @return int |
|
1016 | + */ |
|
1017 | + public function set_recurring_limit( $value ) { |
|
1018 | 1018 | $this->set_prop( 'recurring_limit', (int) $value ); |
1019 | 1019 | } |
1020 | 1020 | |
1021 | 1021 | /** |
1022 | - * Checks if we have a free trial. |
|
1023 | - * |
|
1024 | - * @since 1.0.19 |
|
1025 | - * @param int|bool $value whether or not it has a free trial. |
|
1026 | - */ |
|
1027 | - public function set_is_free_trial( $value ) { |
|
1022 | + * Checks if we have a free trial. |
|
1023 | + * |
|
1024 | + * @since 1.0.19 |
|
1025 | + * @param int|bool $value whether or not it has a free trial. |
|
1026 | + */ |
|
1027 | + public function set_is_free_trial( $value ) { |
|
1028 | 1028 | $this->set_prop( 'is_free_trial', (int) $value ); |
1029 | 1029 | } |
1030 | 1030 | |
1031 | 1031 | /** |
1032 | - * Set the trial period. |
|
1033 | - * |
|
1034 | - * @since 1.0.19 |
|
1035 | - * @param string $value trial period. |
|
1036 | - */ |
|
1037 | - public function set_trial_period( $value ) { |
|
1032 | + * Set the trial period. |
|
1033 | + * |
|
1034 | + * @since 1.0.19 |
|
1035 | + * @param string $value trial period. |
|
1036 | + */ |
|
1037 | + public function set_trial_period( $value ) { |
|
1038 | 1038 | $this->set_prop( 'trial_period', $value ); |
1039 | 1039 | } |
1040 | 1040 | |
1041 | 1041 | /** |
1042 | - * Set the trial interval. |
|
1043 | - * |
|
1044 | - * @since 1.0.19 |
|
1045 | - * @param int $value trial interval. |
|
1046 | - */ |
|
1047 | - public function set_trial_interval( $value ) { |
|
1042 | + * Set the trial interval. |
|
1043 | + * |
|
1044 | + * @since 1.0.19 |
|
1045 | + * @param int $value trial interval. |
|
1046 | + */ |
|
1047 | + public function set_trial_interval( $value ) { |
|
1048 | 1048 | $this->set_prop( 'trial_interval', $value ); |
1049 | 1049 | } |
1050 | 1050 | |
@@ -1052,17 +1052,17 @@ discard block |
||
1052 | 1052 | * Create an item. For backwards compatibilty. |
1053 | 1053 | * |
1054 | 1054 | * @deprecated |
1055 | - * @return int item id |
|
1055 | + * @return int item id |
|
1056 | 1056 | */ |
1057 | 1057 | public function create( $data = array() ) { |
1058 | 1058 | |
1059 | - // Set the properties. |
|
1060 | - if ( is_array( $data ) ) { |
|
1061 | - $this->set_props( $data ); |
|
1062 | - } |
|
1059 | + // Set the properties. |
|
1060 | + if ( is_array( $data ) ) { |
|
1061 | + $this->set_props( $data ); |
|
1062 | + } |
|
1063 | 1063 | |
1064 | - // Save the item. |
|
1065 | - return $this->save(); |
|
1064 | + // Save the item. |
|
1065 | + return $this->save(); |
|
1066 | 1066 | |
1067 | 1067 | } |
1068 | 1068 | |
@@ -1070,7 +1070,7 @@ discard block |
||
1070 | 1070 | * Updates an item. For backwards compatibilty. |
1071 | 1071 | * |
1072 | 1072 | * @deprecated |
1073 | - * @return int item id |
|
1073 | + * @return int item id |
|
1074 | 1074 | */ |
1075 | 1075 | public function update( $data = array() ) { |
1076 | 1076 | return $this->create( $data ); |
@@ -1086,93 +1086,93 @@ discard block |
||
1086 | 1086 | */ |
1087 | 1087 | |
1088 | 1088 | /** |
1089 | - * Checks whether the item has enabled dynamic pricing. |
|
1090 | - * |
|
1091 | - * @since 1.0.19 |
|
1092 | - * @return bool |
|
1093 | - */ |
|
1094 | - public function user_can_set_their_price() { |
|
1089 | + * Checks whether the item has enabled dynamic pricing. |
|
1090 | + * |
|
1091 | + * @since 1.0.19 |
|
1092 | + * @return bool |
|
1093 | + */ |
|
1094 | + public function user_can_set_their_price() { |
|
1095 | 1095 | return (bool) $this->get_is_dynamic_pricing(); |
1096 | - } |
|
1096 | + } |
|
1097 | 1097 | |
1098 | - /** |
|
1099 | - * Checks whether the item is recurring. |
|
1100 | - * |
|
1101 | - * @since 1.0.19 |
|
1102 | - * @return bool |
|
1103 | - */ |
|
1104 | - public function is_recurring() { |
|
1098 | + /** |
|
1099 | + * Checks whether the item is recurring. |
|
1100 | + * |
|
1101 | + * @since 1.0.19 |
|
1102 | + * @return bool |
|
1103 | + */ |
|
1104 | + public function is_recurring() { |
|
1105 | 1105 | return (bool) $this->get_is_recurring(); |
1106 | 1106 | } |
1107 | 1107 | |
1108 | 1108 | /** |
1109 | - * Checks whether the item has a free trial. |
|
1110 | - * |
|
1111 | - * @since 1.0.19 |
|
1112 | - * @return bool |
|
1113 | - */ |
|
1109 | + * Checks whether the item has a free trial. |
|
1110 | + * |
|
1111 | + * @since 1.0.19 |
|
1112 | + * @return bool |
|
1113 | + */ |
|
1114 | 1114 | public function has_free_trial() { |
1115 | 1115 | $has_trial = $this->is_recurring() && (bool) $this->get_free_trial() ? true : false; |
1116 | 1116 | return (bool) apply_filters( 'wpinv_item_has_free_trial', $has_trial, $this->ID, $this ); |
1117 | 1117 | } |
1118 | 1118 | |
1119 | 1119 | /** |
1120 | - * Checks whether the item is free. |
|
1121 | - * |
|
1122 | - * @since 1.0.19 |
|
1123 | - * @return bool |
|
1124 | - */ |
|
1120 | + * Checks whether the item is free. |
|
1121 | + * |
|
1122 | + * @since 1.0.19 |
|
1123 | + * @return bool |
|
1124 | + */ |
|
1125 | 1125 | public function is_free() { |
1126 | 1126 | $is_free = $this->get_price() == 0; |
1127 | 1127 | return (bool) apply_filters( 'wpinv_is_free_item', $is_free, $this->ID, $this ); |
1128 | 1128 | } |
1129 | 1129 | |
1130 | 1130 | /** |
1131 | - * Checks the item status against a passed in status. |
|
1132 | - * |
|
1133 | - * @param array|string $status Status to check. |
|
1134 | - * @return bool |
|
1135 | - */ |
|
1136 | - public function has_status( $status ) { |
|
1137 | - $has_status = ( is_array( $status ) && in_array( $this->get_status(), $status, true ) ) || $this->get_status() === $status; |
|
1138 | - return (bool) apply_filters( 'getpaid_item_has_status', $has_status, $this, $status ); |
|
1131 | + * Checks the item status against a passed in status. |
|
1132 | + * |
|
1133 | + * @param array|string $status Status to check. |
|
1134 | + * @return bool |
|
1135 | + */ |
|
1136 | + public function has_status( $status ) { |
|
1137 | + $has_status = ( is_array( $status ) && in_array( $this->get_status(), $status, true ) ) || $this->get_status() === $status; |
|
1138 | + return (bool) apply_filters( 'getpaid_item_has_status', $has_status, $this, $status ); |
|
1139 | 1139 | } |
1140 | 1140 | |
1141 | 1141 | /** |
1142 | - * Checks the item type against a passed in types. |
|
1143 | - * |
|
1144 | - * @param array|string $type Type to check. |
|
1145 | - * @return bool |
|
1146 | - */ |
|
1147 | - public function is_type( $type ) { |
|
1148 | - $is_type = ( is_array( $type ) && in_array( $this->get_type(), $type, true ) ) || $this->get_type() === $type; |
|
1149 | - return (bool) apply_filters( 'getpaid_item_is_type', $is_type, $this, $type ); |
|
1150 | - } |
|
1142 | + * Checks the item type against a passed in types. |
|
1143 | + * |
|
1144 | + * @param array|string $type Type to check. |
|
1145 | + * @return bool |
|
1146 | + */ |
|
1147 | + public function is_type( $type ) { |
|
1148 | + $is_type = ( is_array( $type ) && in_array( $this->get_type(), $type, true ) ) || $this->get_type() === $type; |
|
1149 | + return (bool) apply_filters( 'getpaid_item_is_type', $is_type, $this, $type ); |
|
1150 | + } |
|
1151 | 1151 | |
1152 | 1152 | /** |
1153 | - * Checks whether the item is editable. |
|
1154 | - * |
|
1155 | - * @since 1.0.19 |
|
1156 | - * @return bool |
|
1157 | - */ |
|
1153 | + * Checks whether the item is editable. |
|
1154 | + * |
|
1155 | + * @since 1.0.19 |
|
1156 | + * @return bool |
|
1157 | + */ |
|
1158 | 1158 | public function is_editable() { |
1159 | 1159 | $is_editable = $this->get_is_editable(); |
1160 | 1160 | return (bool) apply_filters( 'wpinv_item_is_editable', $is_editable, $this->ID, $this ); |
1161 | - } |
|
1161 | + } |
|
1162 | 1162 | |
1163 | - /** |
|
1164 | - * Returns an array of cart fees. |
|
1165 | - */ |
|
1166 | - public function get_fees() { |
|
1163 | + /** |
|
1164 | + * Returns an array of cart fees. |
|
1165 | + */ |
|
1166 | + public function get_fees() { |
|
1167 | 1167 | return array(); |
1168 | 1168 | } |
1169 | 1169 | |
1170 | 1170 | /** |
1171 | - * Checks whether the item is purchasable. |
|
1172 | - * |
|
1173 | - * @since 1.0.19 |
|
1174 | - * @return bool |
|
1175 | - */ |
|
1171 | + * Checks whether the item is purchasable. |
|
1172 | + * |
|
1173 | + * @since 1.0.19 |
|
1174 | + * @return bool |
|
1175 | + */ |
|
1176 | 1176 | public function can_purchase() { |
1177 | 1177 | $can_purchase = $this->exists(); |
1178 | 1178 | |
@@ -1184,11 +1184,11 @@ discard block |
||
1184 | 1184 | } |
1185 | 1185 | |
1186 | 1186 | /** |
1187 | - * Checks whether the item supports dynamic pricing. |
|
1188 | - * |
|
1189 | - * @since 1.0.19 |
|
1190 | - * @return bool |
|
1191 | - */ |
|
1187 | + * Checks whether the item supports dynamic pricing. |
|
1188 | + * |
|
1189 | + * @since 1.0.19 |
|
1190 | + * @return bool |
|
1191 | + */ |
|
1192 | 1192 | public function supports_dynamic_pricing() { |
1193 | 1193 | return (bool) apply_filters( 'wpinv_item_supports_dynamic_pricing', true, $this ); |
1194 | 1194 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | if ( ! defined( 'ABSPATH' ) ) { |
7 | - exit; |
|
7 | + exit; |
|
8 | 8 | } |
9 | 9 | |
10 | 10 | /** |
@@ -14,228 +14,228 @@ discard block |
||
14 | 14 | */ |
15 | 15 | class GetPaid_Item_Data_Store extends GetPaid_Data_Store_WP { |
16 | 16 | |
17 | - /** |
|
18 | - * Data stored in meta keys, but not considered "meta" for an item. |
|
19 | - * |
|
20 | - * @since 1.0.19 |
|
21 | - * @var array |
|
22 | - */ |
|
23 | - protected $internal_meta_keys = array( |
|
24 | - '_wpinv_price', |
|
25 | - '_wpinv_vat_rule', |
|
26 | - '_wpinv_vat_class', |
|
27 | - '_wpinv_type', |
|
28 | - '_wpinv_custom_id', |
|
29 | - '_wpinv_custom_name', |
|
30 | - '_wpinv_custom_singular_name', |
|
31 | - '_wpinv_editable', |
|
32 | - '_wpinv_dynamic_pricing', |
|
33 | - '_minimum_price', |
|
34 | - '_wpinv_is_recurring', |
|
35 | - '_wpinv_recurring_period', |
|
36 | - '_wpinv_recurring_interval', |
|
37 | - '_wpinv_recurring_limit', |
|
38 | - '_wpinv_free_trial', |
|
39 | - '_wpinv_trial_period', |
|
40 | - '_wpinv_trial_interval' |
|
41 | - ); |
|
42 | - |
|
43 | - /** |
|
44 | - * A map of meta keys to data props. |
|
45 | - * |
|
46 | - * @since 1.0.19 |
|
47 | - * |
|
48 | - * @var array |
|
49 | - */ |
|
50 | - protected $meta_key_to_props = array( |
|
51 | - '_wpinv_price' => 'price', |
|
52 | - '_wpinv_vat_rule' => 'vat_rule', |
|
53 | - '_wpinv_vat_class' => 'vat_class', |
|
54 | - '_wpinv_type' => 'type', |
|
55 | - '_wpinv_custom_id' => 'custom_id', |
|
56 | - '_wpinv_custom_name' => 'custom_name', |
|
57 | - '_wpinv_custom_singular_name' => 'custom_singular_name', |
|
58 | - '_wpinv_editable' => 'is_editable', |
|
59 | - '_wpinv_dynamic_pricing' => 'is_dynamic_pricing', |
|
60 | - '_minimum_price' => 'minimum_price', |
|
61 | - '_wpinv_custom_name' => 'custom_name', |
|
62 | - '_wpinv_is_recurring' => 'is_recurring', |
|
63 | - '_wpinv_recurring_period' => 'recurring_period', |
|
64 | - '_wpinv_recurring_interval' => 'recurring_interval', |
|
65 | - '_wpinv_recurring_limit' => 'recurring_limit', |
|
66 | - '_wpinv_free_trial' => 'is_free_trial', |
|
67 | - '_wpinv_trial_period' => 'trial_period', |
|
68 | - '_wpinv_trial_interval' => 'trial_interval', |
|
69 | - '_wpinv_version' => 'version', |
|
70 | - ); |
|
71 | - |
|
72 | - /* |
|
17 | + /** |
|
18 | + * Data stored in meta keys, but not considered "meta" for an item. |
|
19 | + * |
|
20 | + * @since 1.0.19 |
|
21 | + * @var array |
|
22 | + */ |
|
23 | + protected $internal_meta_keys = array( |
|
24 | + '_wpinv_price', |
|
25 | + '_wpinv_vat_rule', |
|
26 | + '_wpinv_vat_class', |
|
27 | + '_wpinv_type', |
|
28 | + '_wpinv_custom_id', |
|
29 | + '_wpinv_custom_name', |
|
30 | + '_wpinv_custom_singular_name', |
|
31 | + '_wpinv_editable', |
|
32 | + '_wpinv_dynamic_pricing', |
|
33 | + '_minimum_price', |
|
34 | + '_wpinv_is_recurring', |
|
35 | + '_wpinv_recurring_period', |
|
36 | + '_wpinv_recurring_interval', |
|
37 | + '_wpinv_recurring_limit', |
|
38 | + '_wpinv_free_trial', |
|
39 | + '_wpinv_trial_period', |
|
40 | + '_wpinv_trial_interval' |
|
41 | + ); |
|
42 | + |
|
43 | + /** |
|
44 | + * A map of meta keys to data props. |
|
45 | + * |
|
46 | + * @since 1.0.19 |
|
47 | + * |
|
48 | + * @var array |
|
49 | + */ |
|
50 | + protected $meta_key_to_props = array( |
|
51 | + '_wpinv_price' => 'price', |
|
52 | + '_wpinv_vat_rule' => 'vat_rule', |
|
53 | + '_wpinv_vat_class' => 'vat_class', |
|
54 | + '_wpinv_type' => 'type', |
|
55 | + '_wpinv_custom_id' => 'custom_id', |
|
56 | + '_wpinv_custom_name' => 'custom_name', |
|
57 | + '_wpinv_custom_singular_name' => 'custom_singular_name', |
|
58 | + '_wpinv_editable' => 'is_editable', |
|
59 | + '_wpinv_dynamic_pricing' => 'is_dynamic_pricing', |
|
60 | + '_minimum_price' => 'minimum_price', |
|
61 | + '_wpinv_custom_name' => 'custom_name', |
|
62 | + '_wpinv_is_recurring' => 'is_recurring', |
|
63 | + '_wpinv_recurring_period' => 'recurring_period', |
|
64 | + '_wpinv_recurring_interval' => 'recurring_interval', |
|
65 | + '_wpinv_recurring_limit' => 'recurring_limit', |
|
66 | + '_wpinv_free_trial' => 'is_free_trial', |
|
67 | + '_wpinv_trial_period' => 'trial_period', |
|
68 | + '_wpinv_trial_interval' => 'trial_interval', |
|
69 | + '_wpinv_version' => 'version', |
|
70 | + ); |
|
71 | + |
|
72 | + /* |
|
73 | 73 | |-------------------------------------------------------------------------- |
74 | 74 | | CRUD Methods |
75 | 75 | |-------------------------------------------------------------------------- |
76 | 76 | */ |
77 | 77 | |
78 | - /** |
|
79 | - * Method to create a new item in the database. |
|
80 | - * |
|
81 | - * @param WPInv_Item $item Item object. |
|
82 | - */ |
|
83 | - public function create( &$item ) { |
|
84 | - $item->set_version( WPINV_VERSION ); |
|
85 | - $item->set_date_created( current_time('mysql') ); |
|
86 | - |
|
87 | - // Create a new post. |
|
88 | - $id = wp_insert_post( |
|
89 | - apply_filters( |
|
90 | - 'getpaid_new_item_data', |
|
91 | - array( |
|
92 | - 'post_date' => $item->get_date_created( 'edit' ), |
|
93 | - 'post_type' => 'wpi_item', |
|
94 | - 'post_status' => $this->get_post_status( $item ), |
|
95 | - 'ping_status' => 'closed', |
|
96 | - 'post_author' => $item->get_author( 'edit' ), |
|
97 | - 'post_title' => $item->get_name( 'edit' ), |
|
98 | - 'post_parent' => 0, |
|
99 | - 'post_excerpt' => $item->get_description( 'edit' ), |
|
100 | - ) |
|
101 | - ), |
|
102 | - true |
|
103 | - ); |
|
104 | - |
|
105 | - if ( $id && ! is_wp_error( $id ) ) { |
|
106 | - $item->set_id( $id ); |
|
107 | - $this->update_post_meta( $item ); |
|
108 | - $item->save_meta_data(); |
|
109 | - $item->apply_changes(); |
|
110 | - $this->clear_caches( $item ); |
|
111 | - do_action( 'getpaid_new_item', $item ); |
|
112 | - return true; |
|
113 | - } |
|
114 | - |
|
115 | - if ( is_wp_error( $id ) ) { |
|
116 | - $item->last_error = $id->get_error_message(); |
|
117 | - } |
|
78 | + /** |
|
79 | + * Method to create a new item in the database. |
|
80 | + * |
|
81 | + * @param WPInv_Item $item Item object. |
|
82 | + */ |
|
83 | + public function create( &$item ) { |
|
84 | + $item->set_version( WPINV_VERSION ); |
|
85 | + $item->set_date_created( current_time('mysql') ); |
|
86 | + |
|
87 | + // Create a new post. |
|
88 | + $id = wp_insert_post( |
|
89 | + apply_filters( |
|
90 | + 'getpaid_new_item_data', |
|
91 | + array( |
|
92 | + 'post_date' => $item->get_date_created( 'edit' ), |
|
93 | + 'post_type' => 'wpi_item', |
|
94 | + 'post_status' => $this->get_post_status( $item ), |
|
95 | + 'ping_status' => 'closed', |
|
96 | + 'post_author' => $item->get_author( 'edit' ), |
|
97 | + 'post_title' => $item->get_name( 'edit' ), |
|
98 | + 'post_parent' => 0, |
|
99 | + 'post_excerpt' => $item->get_description( 'edit' ), |
|
100 | + ) |
|
101 | + ), |
|
102 | + true |
|
103 | + ); |
|
104 | + |
|
105 | + if ( $id && ! is_wp_error( $id ) ) { |
|
106 | + $item->set_id( $id ); |
|
107 | + $this->update_post_meta( $item ); |
|
108 | + $item->save_meta_data(); |
|
109 | + $item->apply_changes(); |
|
110 | + $this->clear_caches( $item ); |
|
111 | + do_action( 'getpaid_new_item', $item ); |
|
112 | + return true; |
|
113 | + } |
|
114 | + |
|
115 | + if ( is_wp_error( $id ) ) { |
|
116 | + $item->last_error = $id->get_error_message(); |
|
117 | + } |
|
118 | 118 | |
119 | - return false; |
|
120 | - } |
|
121 | - |
|
122 | - /** |
|
123 | - * Method to read an item from the database. |
|
124 | - * |
|
125 | - * @param WPInv_Item $item Item object. |
|
126 | - * |
|
127 | - */ |
|
128 | - public function read( &$item ) { |
|
129 | - |
|
130 | - $item->set_defaults(); |
|
131 | - $item_object = get_post( $item->get_id() ); |
|
132 | - |
|
133 | - if ( ! $item->get_id() || ! $item_object || $item_object->post_type != 'wpi_item' ) { |
|
134 | - $item->last_error = __( 'Invalid item.', 'invoicing' ); |
|
135 | - $item->set_id( 0 ); |
|
136 | - return false; |
|
137 | - } |
|
138 | - |
|
139 | - $item->set_props( |
|
140 | - array( |
|
141 | - 'parent_id' => $item_object->post_parent, |
|
142 | - 'date_created' => 0 < $item_object->post_date ? $item_object->post_date : null, |
|
143 | - 'date_modified' => 0 < $item_object->post_modified ? $item_object->post_modified : null, |
|
144 | - 'status' => $item_object->post_status, |
|
145 | - 'name' => $item_object->post_title, |
|
146 | - 'description' => $item_object->post_excerpt, |
|
147 | - 'author' => $item_object->post_author, |
|
148 | - ) |
|
149 | - ); |
|
150 | - |
|
151 | - $this->read_object_data( $item, $item_object ); |
|
152 | - $item->read_meta_data(); |
|
153 | - $item->set_object_read( true ); |
|
154 | - do_action( 'getpaid_read_item', $item ); |
|
155 | - |
|
156 | - } |
|
157 | - |
|
158 | - /** |
|
159 | - * Method to update an item in the database. |
|
160 | - * |
|
161 | - * @param WPInv_Item $item Item object. |
|
162 | - */ |
|
163 | - public function update( &$item ) { |
|
164 | - $item->save_meta_data(); |
|
165 | - $item->set_version( WPINV_VERSION ); |
|
166 | - |
|
167 | - if ( null === $item->get_date_created( 'edit' ) ) { |
|
168 | - $item->set_date_created( current_time('mysql') ); |
|
169 | - } |
|
170 | - |
|
171 | - // Grab the current status so we can compare. |
|
172 | - $previous_status = get_post_status( $item->get_id() ); |
|
173 | - |
|
174 | - $changes = $item->get_changes(); |
|
175 | - |
|
176 | - // Only update the post when the post data changes. |
|
177 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'parent_id', 'description', 'name', 'author' ), array_keys( $changes ) ) ) { |
|
178 | - $post_data = array( |
|
179 | - 'post_date' => $item->get_date_created( 'edit' ), |
|
180 | - 'post_status' => $item->get_status( 'edit' ), |
|
181 | - 'post_parent' => $item->get_parent_id( 'edit' ), |
|
182 | - 'post_excerpt' => $item->get_description( 'edit' ), |
|
183 | - 'post_modified' => $item->get_date_modified( 'edit' ), |
|
184 | - 'post_title' => $item->get_name( 'edit' ), |
|
185 | - 'post_author' => $item->get_author( 'edit' ), |
|
186 | - ); |
|
187 | - |
|
188 | - /** |
|
189 | - * When updating this object, to prevent infinite loops, use $wpdb |
|
190 | - * to update data, since wp_update_post spawns more calls to the |
|
191 | - * save_post action. |
|
192 | - * |
|
193 | - * This ensures hooks are fired by either WP itself (admin screen save), |
|
194 | - * or an update purely from CRUD. |
|
195 | - */ |
|
196 | - if ( doing_action( 'save_post' ) ) { |
|
197 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $item->get_id() ) ); |
|
198 | - clean_post_cache( $item->get_id() ); |
|
199 | - } else { |
|
200 | - wp_update_post( array_merge( array( 'ID' => $item->get_id() ), $post_data ) ); |
|
201 | - } |
|
202 | - $item->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
203 | - } |
|
204 | - $this->update_post_meta( $item ); |
|
205 | - $item->apply_changes(); |
|
206 | - $this->clear_caches( $item ); |
|
207 | - |
|
208 | - // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
209 | - $new_status = $item->get_status( 'edit' ); |
|
210 | - |
|
211 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
212 | - do_action( 'getpaid_new_item', $item ); |
|
213 | - } else { |
|
214 | - do_action( 'getpaid_update_item', $item ); |
|
215 | - } |
|
216 | - |
|
217 | - } |
|
218 | - |
|
219 | - /* |
|
119 | + return false; |
|
120 | + } |
|
121 | + |
|
122 | + /** |
|
123 | + * Method to read an item from the database. |
|
124 | + * |
|
125 | + * @param WPInv_Item $item Item object. |
|
126 | + * |
|
127 | + */ |
|
128 | + public function read( &$item ) { |
|
129 | + |
|
130 | + $item->set_defaults(); |
|
131 | + $item_object = get_post( $item->get_id() ); |
|
132 | + |
|
133 | + if ( ! $item->get_id() || ! $item_object || $item_object->post_type != 'wpi_item' ) { |
|
134 | + $item->last_error = __( 'Invalid item.', 'invoicing' ); |
|
135 | + $item->set_id( 0 ); |
|
136 | + return false; |
|
137 | + } |
|
138 | + |
|
139 | + $item->set_props( |
|
140 | + array( |
|
141 | + 'parent_id' => $item_object->post_parent, |
|
142 | + 'date_created' => 0 < $item_object->post_date ? $item_object->post_date : null, |
|
143 | + 'date_modified' => 0 < $item_object->post_modified ? $item_object->post_modified : null, |
|
144 | + 'status' => $item_object->post_status, |
|
145 | + 'name' => $item_object->post_title, |
|
146 | + 'description' => $item_object->post_excerpt, |
|
147 | + 'author' => $item_object->post_author, |
|
148 | + ) |
|
149 | + ); |
|
150 | + |
|
151 | + $this->read_object_data( $item, $item_object ); |
|
152 | + $item->read_meta_data(); |
|
153 | + $item->set_object_read( true ); |
|
154 | + do_action( 'getpaid_read_item', $item ); |
|
155 | + |
|
156 | + } |
|
157 | + |
|
158 | + /** |
|
159 | + * Method to update an item in the database. |
|
160 | + * |
|
161 | + * @param WPInv_Item $item Item object. |
|
162 | + */ |
|
163 | + public function update( &$item ) { |
|
164 | + $item->save_meta_data(); |
|
165 | + $item->set_version( WPINV_VERSION ); |
|
166 | + |
|
167 | + if ( null === $item->get_date_created( 'edit' ) ) { |
|
168 | + $item->set_date_created( current_time('mysql') ); |
|
169 | + } |
|
170 | + |
|
171 | + // Grab the current status so we can compare. |
|
172 | + $previous_status = get_post_status( $item->get_id() ); |
|
173 | + |
|
174 | + $changes = $item->get_changes(); |
|
175 | + |
|
176 | + // Only update the post when the post data changes. |
|
177 | + if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'parent_id', 'description', 'name', 'author' ), array_keys( $changes ) ) ) { |
|
178 | + $post_data = array( |
|
179 | + 'post_date' => $item->get_date_created( 'edit' ), |
|
180 | + 'post_status' => $item->get_status( 'edit' ), |
|
181 | + 'post_parent' => $item->get_parent_id( 'edit' ), |
|
182 | + 'post_excerpt' => $item->get_description( 'edit' ), |
|
183 | + 'post_modified' => $item->get_date_modified( 'edit' ), |
|
184 | + 'post_title' => $item->get_name( 'edit' ), |
|
185 | + 'post_author' => $item->get_author( 'edit' ), |
|
186 | + ); |
|
187 | + |
|
188 | + /** |
|
189 | + * When updating this object, to prevent infinite loops, use $wpdb |
|
190 | + * to update data, since wp_update_post spawns more calls to the |
|
191 | + * save_post action. |
|
192 | + * |
|
193 | + * This ensures hooks are fired by either WP itself (admin screen save), |
|
194 | + * or an update purely from CRUD. |
|
195 | + */ |
|
196 | + if ( doing_action( 'save_post' ) ) { |
|
197 | + $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $item->get_id() ) ); |
|
198 | + clean_post_cache( $item->get_id() ); |
|
199 | + } else { |
|
200 | + wp_update_post( array_merge( array( 'ID' => $item->get_id() ), $post_data ) ); |
|
201 | + } |
|
202 | + $item->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
203 | + } |
|
204 | + $this->update_post_meta( $item ); |
|
205 | + $item->apply_changes(); |
|
206 | + $this->clear_caches( $item ); |
|
207 | + |
|
208 | + // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
209 | + $new_status = $item->get_status( 'edit' ); |
|
210 | + |
|
211 | + if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
212 | + do_action( 'getpaid_new_item', $item ); |
|
213 | + } else { |
|
214 | + do_action( 'getpaid_update_item', $item ); |
|
215 | + } |
|
216 | + |
|
217 | + } |
|
218 | + |
|
219 | + /* |
|
220 | 220 | |-------------------------------------------------------------------------- |
221 | 221 | | Additional Methods |
222 | 222 | |-------------------------------------------------------------------------- |
223 | 223 | */ |
224 | 224 | |
225 | - /** |
|
226 | - * Helper method that updates all the post meta for an item based on it's settings in the WPInv_Item class. |
|
227 | - * |
|
228 | - * @param WPInv_Item $item WPInv_Item object. |
|
229 | - * @since 1.0.19 |
|
230 | - */ |
|
231 | - protected function update_post_meta( &$item ) { |
|
225 | + /** |
|
226 | + * Helper method that updates all the post meta for an item based on it's settings in the WPInv_Item class. |
|
227 | + * |
|
228 | + * @param WPInv_Item $item WPInv_Item object. |
|
229 | + * @since 1.0.19 |
|
230 | + */ |
|
231 | + protected function update_post_meta( &$item ) { |
|
232 | 232 | |
233 | - // Ensure that we have a custom id. |
|
233 | + // Ensure that we have a custom id. |
|
234 | 234 | if ( ! $item->get_custom_id() ) { |
235 | 235 | $item->set_custom_id( $item->get_id() ); |
236 | - } |
|
236 | + } |
|
237 | 237 | |
238 | - parent::update_post_meta( $item ); |
|
239 | - } |
|
238 | + parent::update_post_meta( $item ); |
|
239 | + } |
|
240 | 240 | |
241 | 241 | } |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if ( ! defined( 'ABSPATH' ) ) { |
3 | - exit; |
|
3 | + exit; |
|
4 | 4 | } |
5 | 5 | |
6 | 6 | /** |
@@ -10,55 +10,55 @@ discard block |
||
10 | 10 | class GetPaid_Payment_Form extends GetPaid_Data { |
11 | 11 | |
12 | 12 | /** |
13 | - * Which data store to load. |
|
14 | - * |
|
15 | - * @var string |
|
16 | - */ |
|
13 | + * Which data store to load. |
|
14 | + * |
|
15 | + * @var string |
|
16 | + */ |
|
17 | 17 | protected $data_store_name = 'payment_form'; |
18 | 18 | |
19 | 19 | /** |
20 | - * This is the name of this object type. |
|
21 | - * |
|
22 | - * @var string |
|
23 | - */ |
|
24 | - protected $object_type = 'payment_form'; |
|
20 | + * This is the name of this object type. |
|
21 | + * |
|
22 | + * @var string |
|
23 | + */ |
|
24 | + protected $object_type = 'payment_form'; |
|
25 | 25 | |
26 | 26 | /** |
27 | - * Form Data array. This is the core form data exposed in APIs. |
|
28 | - * |
|
29 | - * @since 1.0.19 |
|
30 | - * @var array |
|
31 | - */ |
|
32 | - protected $data = array( |
|
33 | - 'status' => 'draft', |
|
34 | - 'version' => '', |
|
35 | - 'date_created' => null, |
|
27 | + * Form Data array. This is the core form data exposed in APIs. |
|
28 | + * |
|
29 | + * @since 1.0.19 |
|
30 | + * @var array |
|
31 | + */ |
|
32 | + protected $data = array( |
|
33 | + 'status' => 'draft', |
|
34 | + 'version' => '', |
|
35 | + 'date_created' => null, |
|
36 | 36 | 'date_modified' => null, |
37 | 37 | 'name' => '', |
38 | 38 | 'author' => 1, |
39 | 39 | 'elements' => null, |
40 | - 'items' => null, |
|
41 | - 'earned' => 0, |
|
42 | - 'refunded' => 0, |
|
43 | - 'cancelled' => 0, |
|
44 | - 'failed' => 0, |
|
45 | - ); |
|
46 | - |
|
47 | - /** |
|
48 | - * Stores meta in cache for future reads. |
|
49 | - * |
|
50 | - * A group must be set to to enable caching. |
|
51 | - * |
|
52 | - * @var string |
|
53 | - */ |
|
54 | - protected $cache_group = 'getpaid_forms'; |
|
55 | - |
|
56 | - /** |
|
57 | - * Stores a reference to the invoice if the form is for an invoice.. |
|
58 | - * |
|
59 | - * @var WPInv_Invoice |
|
60 | - */ |
|
61 | - public $invoice = 0; |
|
40 | + 'items' => null, |
|
41 | + 'earned' => 0, |
|
42 | + 'refunded' => 0, |
|
43 | + 'cancelled' => 0, |
|
44 | + 'failed' => 0, |
|
45 | + ); |
|
46 | + |
|
47 | + /** |
|
48 | + * Stores meta in cache for future reads. |
|
49 | + * |
|
50 | + * A group must be set to to enable caching. |
|
51 | + * |
|
52 | + * @var string |
|
53 | + */ |
|
54 | + protected $cache_group = 'getpaid_forms'; |
|
55 | + |
|
56 | + /** |
|
57 | + * Stores a reference to the invoice if the form is for an invoice.. |
|
58 | + * |
|
59 | + * @var WPInv_Invoice |
|
60 | + */ |
|
61 | + public $invoice = 0; |
|
62 | 62 | |
63 | 63 | /** |
64 | 64 | * Stores a reference to the original WP_Post object |
@@ -68,35 +68,35 @@ discard block |
||
68 | 68 | protected $post = null; |
69 | 69 | |
70 | 70 | /** |
71 | - * Get the form if ID is passed, otherwise the form is new and empty. |
|
72 | - * |
|
73 | - * @param int|object|GetPaid_Payment_Form|WP_Post $form Form to read. |
|
74 | - */ |
|
75 | - public function __construct( $form = 0 ) { |
|
76 | - parent::__construct( $form ); |
|
71 | + * Get the form if ID is passed, otherwise the form is new and empty. |
|
72 | + * |
|
73 | + * @param int|object|GetPaid_Payment_Form|WP_Post $form Form to read. |
|
74 | + */ |
|
75 | + public function __construct( $form = 0 ) { |
|
76 | + parent::__construct( $form ); |
|
77 | 77 | |
78 | - if ( is_numeric( $form ) && $form > 0 ) { |
|
79 | - $this->set_id( $form ); |
|
80 | - } elseif ( $form instanceof self ) { |
|
78 | + if ( is_numeric( $form ) && $form > 0 ) { |
|
79 | + $this->set_id( $form ); |
|
80 | + } elseif ( $form instanceof self ) { |
|
81 | 81 | |
82 | - $this->set_id( $form->get_id() ); |
|
83 | - $this->invoice = $form->invoice; |
|
82 | + $this->set_id( $form->get_id() ); |
|
83 | + $this->invoice = $form->invoice; |
|
84 | 84 | |
85 | - } elseif ( ! empty( $form->ID ) ) { |
|
86 | - $this->set_id( $form->ID ); |
|
87 | - } else { |
|
88 | - $this->set_object_read( true ); |
|
89 | - } |
|
85 | + } elseif ( ! empty( $form->ID ) ) { |
|
86 | + $this->set_id( $form->ID ); |
|
87 | + } else { |
|
88 | + $this->set_object_read( true ); |
|
89 | + } |
|
90 | 90 | |
91 | 91 | // Load the datastore. |
92 | - $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
92 | + $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
93 | 93 | |
94 | - if ( $this->get_id() > 0 ) { |
|
94 | + if ( $this->get_id() > 0 ) { |
|
95 | 95 | $this->post = get_post( $this->get_id() ); |
96 | - $this->data_store->read( $this ); |
|
96 | + $this->data_store->read( $this ); |
|
97 | 97 | } |
98 | 98 | |
99 | - } |
|
99 | + } |
|
100 | 100 | |
101 | 101 | /* |
102 | 102 | |-------------------------------------------------------------------------- |
@@ -114,358 +114,358 @@ discard block |
||
114 | 114 | */ |
115 | 115 | |
116 | 116 | /** |
117 | - * Get plugin version when the form was created. |
|
118 | - * |
|
119 | - * @since 1.0.19 |
|
120 | - * @param string $context View or edit context. |
|
121 | - * @return string |
|
122 | - */ |
|
123 | - public function get_version( $context = 'view' ) { |
|
124 | - return $this->get_prop( 'version', $context ); |
|
117 | + * Get plugin version when the form was created. |
|
118 | + * |
|
119 | + * @since 1.0.19 |
|
120 | + * @param string $context View or edit context. |
|
121 | + * @return string |
|
122 | + */ |
|
123 | + public function get_version( $context = 'view' ) { |
|
124 | + return $this->get_prop( 'version', $context ); |
|
125 | 125 | } |
126 | 126 | |
127 | 127 | /** |
128 | - * Get date when the form was created. |
|
129 | - * |
|
130 | - * @since 1.0.19 |
|
131 | - * @param string $context View or edit context. |
|
132 | - * @return string |
|
133 | - */ |
|
134 | - public function get_date_created( $context = 'view' ) { |
|
135 | - return $this->get_prop( 'date_created', $context ); |
|
128 | + * Get date when the form was created. |
|
129 | + * |
|
130 | + * @since 1.0.19 |
|
131 | + * @param string $context View or edit context. |
|
132 | + * @return string |
|
133 | + */ |
|
134 | + public function get_date_created( $context = 'view' ) { |
|
135 | + return $this->get_prop( 'date_created', $context ); |
|
136 | 136 | } |
137 | 137 | |
138 | 138 | /** |
139 | - * Get GMT date when the form was created. |
|
140 | - * |
|
141 | - * @since 1.0.19 |
|
142 | - * @param string $context View or edit context. |
|
143 | - * @return string |
|
144 | - */ |
|
145 | - public function get_date_created_gmt( $context = 'view' ) { |
|
139 | + * Get GMT date when the form was created. |
|
140 | + * |
|
141 | + * @since 1.0.19 |
|
142 | + * @param string $context View or edit context. |
|
143 | + * @return string |
|
144 | + */ |
|
145 | + public function get_date_created_gmt( $context = 'view' ) { |
|
146 | 146 | $date = $this->get_date_created( $context ); |
147 | 147 | |
148 | 148 | if ( $date ) { |
149 | 149 | $date = get_gmt_from_date( $date ); |
150 | 150 | } |
151 | - return $date; |
|
151 | + return $date; |
|
152 | 152 | } |
153 | 153 | |
154 | 154 | /** |
155 | - * Get date when the form was last modified. |
|
156 | - * |
|
157 | - * @since 1.0.19 |
|
158 | - * @param string $context View or edit context. |
|
159 | - * @return string |
|
160 | - */ |
|
161 | - public function get_date_modified( $context = 'view' ) { |
|
162 | - return $this->get_prop( 'date_modified', $context ); |
|
155 | + * Get date when the form was last modified. |
|
156 | + * |
|
157 | + * @since 1.0.19 |
|
158 | + * @param string $context View or edit context. |
|
159 | + * @return string |
|
160 | + */ |
|
161 | + public function get_date_modified( $context = 'view' ) { |
|
162 | + return $this->get_prop( 'date_modified', $context ); |
|
163 | 163 | } |
164 | 164 | |
165 | 165 | /** |
166 | - * Get GMT date when the form was last modified. |
|
167 | - * |
|
168 | - * @since 1.0.19 |
|
169 | - * @param string $context View or edit context. |
|
170 | - * @return string |
|
171 | - */ |
|
172 | - public function get_date_modified_gmt( $context = 'view' ) { |
|
166 | + * Get GMT date when the form was last modified. |
|
167 | + * |
|
168 | + * @since 1.0.19 |
|
169 | + * @param string $context View or edit context. |
|
170 | + * @return string |
|
171 | + */ |
|
172 | + public function get_date_modified_gmt( $context = 'view' ) { |
|
173 | 173 | $date = $this->get_date_modified( $context ); |
174 | 174 | |
175 | 175 | if ( $date ) { |
176 | 176 | $date = get_gmt_from_date( $date ); |
177 | 177 | } |
178 | - return $date; |
|
178 | + return $date; |
|
179 | 179 | } |
180 | 180 | |
181 | 181 | /** |
182 | - * Get the form name. |
|
183 | - * |
|
184 | - * @since 1.0.19 |
|
185 | - * @param string $context View or edit context. |
|
186 | - * @return string |
|
187 | - */ |
|
188 | - public function get_name( $context = 'view' ) { |
|
189 | - return $this->get_prop( 'name', $context ); |
|
182 | + * Get the form name. |
|
183 | + * |
|
184 | + * @since 1.0.19 |
|
185 | + * @param string $context View or edit context. |
|
186 | + * @return string |
|
187 | + */ |
|
188 | + public function get_name( $context = 'view' ) { |
|
189 | + return $this->get_prop( 'name', $context ); |
|
190 | 190 | } |
191 | 191 | |
192 | 192 | /** |
193 | - * Alias of self::get_name(). |
|
194 | - * |
|
195 | - * @since 1.0.19 |
|
196 | - * @param string $context View or edit context. |
|
197 | - * @return string |
|
198 | - */ |
|
199 | - public function get_title( $context = 'view' ) { |
|
200 | - return $this->get_name( $context ); |
|
201 | - } |
|
193 | + * Alias of self::get_name(). |
|
194 | + * |
|
195 | + * @since 1.0.19 |
|
196 | + * @param string $context View or edit context. |
|
197 | + * @return string |
|
198 | + */ |
|
199 | + public function get_title( $context = 'view' ) { |
|
200 | + return $this->get_name( $context ); |
|
201 | + } |
|
202 | 202 | |
203 | 203 | /** |
204 | - * Get the owner of the form. |
|
205 | - * |
|
206 | - * @since 1.0.19 |
|
207 | - * @param string $context View or edit context. |
|
208 | - * @return int |
|
209 | - */ |
|
210 | - public function get_author( $context = 'view' ) { |
|
211 | - return (int) $this->get_prop( 'author', $context ); |
|
204 | + * Get the owner of the form. |
|
205 | + * |
|
206 | + * @since 1.0.19 |
|
207 | + * @param string $context View or edit context. |
|
208 | + * @return int |
|
209 | + */ |
|
210 | + public function get_author( $context = 'view' ) { |
|
211 | + return (int) $this->get_prop( 'author', $context ); |
|
212 | 212 | } |
213 | 213 | |
214 | 214 | /** |
215 | - * Get the elements that make up the form. |
|
216 | - * |
|
217 | - * @since 1.0.19 |
|
218 | - * @param string $context View or edit context. |
|
219 | - * @return array |
|
220 | - */ |
|
221 | - public function get_elements( $context = 'view' ) { |
|
222 | - $elements = $this->get_prop( 'elements', $context ); |
|
215 | + * Get the elements that make up the form. |
|
216 | + * |
|
217 | + * @since 1.0.19 |
|
218 | + * @param string $context View or edit context. |
|
219 | + * @return array |
|
220 | + */ |
|
221 | + public function get_elements( $context = 'view' ) { |
|
222 | + $elements = $this->get_prop( 'elements', $context ); |
|
223 | 223 | |
224 | - if ( empty( $elements ) || ! is_array( $elements ) ) { |
|
224 | + if ( empty( $elements ) || ! is_array( $elements ) ) { |
|
225 | 225 | return wpinv_get_data( 'sample-payment-form' ); |
226 | - } |
|
226 | + } |
|
227 | 227 | |
228 | - // Ensure that all required elements exist. |
|
229 | - $_elements = array(); |
|
230 | - foreach ( $elements as $element ) { |
|
228 | + // Ensure that all required elements exist. |
|
229 | + $_elements = array(); |
|
230 | + foreach ( $elements as $element ) { |
|
231 | 231 | |
232 | - if ( $element['type'] == 'pay_button' && ! $this->has_element_type( 'gateway_select' ) ) { |
|
232 | + if ( $element['type'] == 'pay_button' && ! $this->has_element_type( 'gateway_select' ) ) { |
|
233 | 233 | |
234 | - $_elements[] = array( |
|
235 | - 'text' => __( 'Select Payment Method', 'invoicing' ), |
|
236 | - 'id' => 'gtscicd', |
|
237 | - 'name' => 'gtscicd', |
|
238 | - 'type' => 'gateway_select', |
|
239 | - 'premade' => true |
|
234 | + $_elements[] = array( |
|
235 | + 'text' => __( 'Select Payment Method', 'invoicing' ), |
|
236 | + 'id' => 'gtscicd', |
|
237 | + 'name' => 'gtscicd', |
|
238 | + 'type' => 'gateway_select', |
|
239 | + 'premade' => true |
|
240 | 240 | |
241 | - ); |
|
241 | + ); |
|
242 | 242 | |
243 | - } |
|
243 | + } |
|
244 | 244 | |
245 | - $_elements[] = $element; |
|
245 | + $_elements[] = $element; |
|
246 | 246 | |
247 | - } |
|
247 | + } |
|
248 | 248 | |
249 | 249 | return $_elements; |
250 | - } |
|
251 | - |
|
252 | - /** |
|
253 | - * Get the items sold via the form. |
|
254 | - * |
|
255 | - * @since 1.0.19 |
|
256 | - * @param string $context View or edit context. |
|
257 | - * @param string $return objects or arrays. |
|
258 | - * @return GetPaid_Form_Item[] |
|
259 | - */ |
|
260 | - public function get_items( $context = 'view', $return = 'objects' ) { |
|
261 | - $items = $this->get_prop( 'items', $context ); |
|
262 | - |
|
263 | - if ( empty( $items ) || ! is_array( $items ) ) { |
|
250 | + } |
|
251 | + |
|
252 | + /** |
|
253 | + * Get the items sold via the form. |
|
254 | + * |
|
255 | + * @since 1.0.19 |
|
256 | + * @param string $context View or edit context. |
|
257 | + * @param string $return objects or arrays. |
|
258 | + * @return GetPaid_Form_Item[] |
|
259 | + */ |
|
260 | + public function get_items( $context = 'view', $return = 'objects' ) { |
|
261 | + $items = $this->get_prop( 'items', $context ); |
|
262 | + |
|
263 | + if ( empty( $items ) || ! is_array( $items ) ) { |
|
264 | 264 | $items = wpinv_get_data( 'sample-payment-form-items' ); |
265 | - } |
|
265 | + } |
|
266 | + |
|
267 | + // Convert the items. |
|
268 | + $prepared = array(); |
|
266 | 269 | |
267 | - // Convert the items. |
|
268 | - $prepared = array(); |
|
270 | + foreach ( $items as $key => $value ) { |
|
269 | 271 | |
270 | - foreach ( $items as $key => $value ) { |
|
272 | + // Form items. |
|
273 | + if ( $value instanceof GetPaid_Form_Item ) { |
|
271 | 274 | |
272 | - // Form items. |
|
273 | - if ( $value instanceof GetPaid_Form_Item ) { |
|
275 | + if ( $value->can_purchase() ) { |
|
276 | + $prepared[] = $value; |
|
277 | + } |
|
274 | 278 | |
275 | - if ( $value->can_purchase() ) { |
|
276 | - $prepared[] = $value; |
|
277 | - } |
|
279 | + continue; |
|
278 | 280 | |
279 | - continue; |
|
281 | + } |
|
280 | 282 | |
281 | - } |
|
283 | + // $item_id => $quantity (buy buttons) |
|
284 | + if ( is_numeric( $key ) && is_numeric( $value ) ) { |
|
285 | + $item = new GetPaid_Form_Item( $key ); |
|
282 | 286 | |
283 | - // $item_id => $quantity (buy buttons) |
|
284 | - if ( is_numeric( $key ) && is_numeric( $value ) ) { |
|
285 | - $item = new GetPaid_Form_Item( $key ); |
|
287 | + if ( $item->can_purchase() ) { |
|
286 | 288 | |
287 | - if ( $item->can_purchase() ) { |
|
289 | + $value = (float) $value; |
|
290 | + $item->set_quantity( $value ); |
|
291 | + if ( 0 == $value ) { |
|
292 | + $item->set_quantity( 1 ); |
|
293 | + $item->set_allow_quantities( true ); |
|
294 | + } |
|
288 | 295 | |
289 | - $value = (float) $value; |
|
290 | - $item->set_quantity( $value ); |
|
291 | - if ( 0 == $value ) { |
|
292 | - $item->set_quantity( 1 ); |
|
293 | - $item->set_allow_quantities( true ); |
|
294 | - } |
|
296 | + $prepared[] = $item; |
|
297 | + } |
|
295 | 298 | |
296 | - $prepared[] = $item; |
|
297 | - } |
|
299 | + continue; |
|
300 | + } |
|
298 | 301 | |
299 | - continue; |
|
300 | - } |
|
302 | + // Items saved via payment forms editor. |
|
303 | + if ( is_array( $value ) && isset( $value['id'] ) ) { |
|
301 | 304 | |
302 | - // Items saved via payment forms editor. |
|
303 | - if ( is_array( $value ) && isset( $value['id'] ) ) { |
|
305 | + $item = new GetPaid_Form_Item( $value['id'] ); |
|
304 | 306 | |
305 | - $item = new GetPaid_Form_Item( $value['id'] ); |
|
307 | + if ( ! $item->can_purchase() ) { |
|
308 | + continue; |
|
309 | + } |
|
306 | 310 | |
307 | - if ( ! $item->can_purchase() ) { |
|
308 | - continue; |
|
309 | - } |
|
311 | + // Sub-total (Cart items). |
|
312 | + if ( isset( $value['subtotal'] ) ) { |
|
313 | + $item->set_price( $value['subtotal'] ); |
|
314 | + } |
|
310 | 315 | |
311 | - // Sub-total (Cart items). |
|
312 | - if ( isset( $value['subtotal'] ) ) { |
|
313 | - $item->set_price( $value['subtotal'] ); |
|
314 | - } |
|
316 | + if ( isset( $value['quantity'] ) ) { |
|
317 | + $item->set_quantity( $value['quantity'] ); |
|
318 | + } |
|
315 | 319 | |
316 | - if ( isset( $value['quantity'] ) ) { |
|
317 | - $item->set_quantity( $value['quantity'] ); |
|
318 | - } |
|
320 | + if ( isset( $value['allow_quantities'] ) ) { |
|
321 | + $item->set_allow_quantities( $value['allow_quantities'] ); |
|
322 | + } |
|
319 | 323 | |
320 | - if ( isset( $value['allow_quantities'] ) ) { |
|
321 | - $item->set_allow_quantities( $value['allow_quantities'] ); |
|
322 | - } |
|
324 | + if ( isset( $value['required'] ) ) { |
|
325 | + $item->set_is_required( $value['required'] ); |
|
326 | + } |
|
323 | 327 | |
324 | - if ( isset( $value['required'] ) ) { |
|
325 | - $item->set_is_required( $value['required'] ); |
|
326 | - } |
|
328 | + if ( isset( $value['description'] ) ) { |
|
329 | + $item->set_custom_description( $value['description'] ); |
|
330 | + } |
|
327 | 331 | |
328 | - if ( isset( $value['description'] ) ) { |
|
329 | - $item->set_custom_description( $value['description'] ); |
|
330 | - } |
|
332 | + $prepared[] = $item; |
|
333 | + continue; |
|
331 | 334 | |
332 | - $prepared[] = $item; |
|
333 | - continue; |
|
335 | + } |
|
336 | + |
|
337 | + // $item_id => array( 'price' => 10 ) (item variations) |
|
338 | + if ( is_numeric( $key ) && is_array( $value ) ) { |
|
339 | + $item = new GetPaid_Form_Item( $key ); |
|
340 | + |
|
341 | + if ( isset( $value['price'] ) && $item->user_can_set_their_price() ) { |
|
342 | + $item->set_price( $value['price'] ); |
|
343 | + } |
|
344 | + |
|
345 | + if ( $item->can_purchase() ) { |
|
346 | + $prepared[] = $item; |
|
347 | + } |
|
348 | + |
|
349 | + continue; |
|
350 | + } |
|
351 | + |
|
352 | + } |
|
353 | + |
|
354 | + if ( 'objects' == $return && 'view' == $context ) { |
|
355 | + return $prepared; |
|
356 | + } |
|
357 | + |
|
358 | + $items = array(); |
|
359 | + foreach ( $prepared as $item ) { |
|
360 | + $items[] = $item->prepare_data_for_use(); |
|
361 | + } |
|
362 | + |
|
363 | + return $items; |
|
364 | + } |
|
365 | + |
|
366 | + /** |
|
367 | + * Get a single item belonging to the form. |
|
368 | + * |
|
369 | + * @since 1.0.19 |
|
370 | + * @param int $item_id The item id to return. |
|
371 | + * @return GetPaid_Form_Item|bool |
|
372 | + */ |
|
373 | + public function get_item( $item_id ) { |
|
374 | + |
|
375 | + if ( empty( $item_id ) || ! is_numeric( $item_id ) ) { |
|
376 | + return false; |
|
377 | + } |
|
378 | + |
|
379 | + foreach( $this->get_items() as $item ) { |
|
380 | + if ( $item->get_id() == (int) $item_id ) { |
|
381 | + return $item; |
|
382 | + } |
|
383 | + } |
|
384 | + |
|
385 | + return false; |
|
386 | + |
|
387 | + } |
|
388 | + |
|
389 | + /** |
|
390 | + * Gets a single element. |
|
391 | + * |
|
392 | + * @since 1.0.19 |
|
393 | + * @param string $element_type The element type to return. |
|
394 | + * @return array|bool |
|
395 | + */ |
|
396 | + public function get_element_type( $element_type ) { |
|
397 | + |
|
398 | + if ( empty( $element_type ) || ! is_scalar( $element_type ) ) { |
|
399 | + return false; |
|
400 | + } |
|
401 | + |
|
402 | + foreach ( $this->get_prop( 'elements' ) as $element ) { |
|
403 | + |
|
404 | + if ( $element['type'] == $element_type ) { |
|
405 | + return $element; |
|
406 | + } |
|
407 | + |
|
408 | + } |
|
409 | + |
|
410 | + return false; |
|
411 | + |
|
412 | + } |
|
413 | + |
|
414 | + /** |
|
415 | + * Get the total amount earned via this form. |
|
416 | + * |
|
417 | + * @since 1.0.19 |
|
418 | + * @param string $context View or edit context. |
|
419 | + * @return float |
|
420 | + */ |
|
421 | + public function get_earned( $context = 'view' ) { |
|
422 | + return $this->get_prop( 'earned', $context ); |
|
423 | + } |
|
424 | + |
|
425 | + /** |
|
426 | + * Get the total amount refunded via this form. |
|
427 | + * |
|
428 | + * @since 1.0.19 |
|
429 | + * @param string $context View or edit context. |
|
430 | + * @return float |
|
431 | + */ |
|
432 | + public function get_refunded( $context = 'view' ) { |
|
433 | + return $this->get_prop( 'refunded', $context ); |
|
434 | + } |
|
334 | 435 | |
335 | - } |
|
436 | + /** |
|
437 | + * Get the total amount cancelled via this form. |
|
438 | + * |
|
439 | + * @since 1.0.19 |
|
440 | + * @param string $context View or edit context. |
|
441 | + * @return float |
|
442 | + */ |
|
443 | + public function get_cancelled( $context = 'view' ) { |
|
444 | + return $this->get_prop( 'cancelled', $context ); |
|
445 | + } |
|
336 | 446 | |
337 | - // $item_id => array( 'price' => 10 ) (item variations) |
|
338 | - if ( is_numeric( $key ) && is_array( $value ) ) { |
|
339 | - $item = new GetPaid_Form_Item( $key ); |
|
447 | + /** |
|
448 | + * Get the total amount failed via this form. |
|
449 | + * |
|
450 | + * @since 1.0.19 |
|
451 | + * @param string $context View or edit context. |
|
452 | + * @return float |
|
453 | + */ |
|
454 | + public function get_failed( $context = 'view' ) { |
|
455 | + return $this->get_prop( 'failed', $context ); |
|
456 | + } |
|
340 | 457 | |
341 | - if ( isset( $value['price'] ) && $item->user_can_set_their_price() ) { |
|
342 | - $item->set_price( $value['price'] ); |
|
343 | - } |
|
344 | - |
|
345 | - if ( $item->can_purchase() ) { |
|
346 | - $prepared[] = $item; |
|
347 | - } |
|
348 | - |
|
349 | - continue; |
|
350 | - } |
|
351 | - |
|
352 | - } |
|
353 | - |
|
354 | - if ( 'objects' == $return && 'view' == $context ) { |
|
355 | - return $prepared; |
|
356 | - } |
|
357 | - |
|
358 | - $items = array(); |
|
359 | - foreach ( $prepared as $item ) { |
|
360 | - $items[] = $item->prepare_data_for_use(); |
|
361 | - } |
|
362 | - |
|
363 | - return $items; |
|
364 | - } |
|
365 | - |
|
366 | - /** |
|
367 | - * Get a single item belonging to the form. |
|
368 | - * |
|
369 | - * @since 1.0.19 |
|
370 | - * @param int $item_id The item id to return. |
|
371 | - * @return GetPaid_Form_Item|bool |
|
372 | - */ |
|
373 | - public function get_item( $item_id ) { |
|
374 | - |
|
375 | - if ( empty( $item_id ) || ! is_numeric( $item_id ) ) { |
|
376 | - return false; |
|
377 | - } |
|
378 | - |
|
379 | - foreach( $this->get_items() as $item ) { |
|
380 | - if ( $item->get_id() == (int) $item_id ) { |
|
381 | - return $item; |
|
382 | - } |
|
383 | - } |
|
384 | - |
|
385 | - return false; |
|
386 | - |
|
387 | - } |
|
388 | - |
|
389 | - /** |
|
390 | - * Gets a single element. |
|
391 | - * |
|
392 | - * @since 1.0.19 |
|
393 | - * @param string $element_type The element type to return. |
|
394 | - * @return array|bool |
|
395 | - */ |
|
396 | - public function get_element_type( $element_type ) { |
|
397 | - |
|
398 | - if ( empty( $element_type ) || ! is_scalar( $element_type ) ) { |
|
399 | - return false; |
|
400 | - } |
|
401 | - |
|
402 | - foreach ( $this->get_prop( 'elements' ) as $element ) { |
|
403 | - |
|
404 | - if ( $element['type'] == $element_type ) { |
|
405 | - return $element; |
|
406 | - } |
|
407 | - |
|
408 | - } |
|
409 | - |
|
410 | - return false; |
|
411 | - |
|
412 | - } |
|
413 | - |
|
414 | - /** |
|
415 | - * Get the total amount earned via this form. |
|
416 | - * |
|
417 | - * @since 1.0.19 |
|
418 | - * @param string $context View or edit context. |
|
419 | - * @return float |
|
420 | - */ |
|
421 | - public function get_earned( $context = 'view' ) { |
|
422 | - return $this->get_prop( 'earned', $context ); |
|
423 | - } |
|
424 | - |
|
425 | - /** |
|
426 | - * Get the total amount refunded via this form. |
|
427 | - * |
|
428 | - * @since 1.0.19 |
|
429 | - * @param string $context View or edit context. |
|
430 | - * @return float |
|
431 | - */ |
|
432 | - public function get_refunded( $context = 'view' ) { |
|
433 | - return $this->get_prop( 'refunded', $context ); |
|
434 | - } |
|
435 | - |
|
436 | - /** |
|
437 | - * Get the total amount cancelled via this form. |
|
438 | - * |
|
439 | - * @since 1.0.19 |
|
440 | - * @param string $context View or edit context. |
|
441 | - * @return float |
|
442 | - */ |
|
443 | - public function get_cancelled( $context = 'view' ) { |
|
444 | - return $this->get_prop( 'cancelled', $context ); |
|
445 | - } |
|
446 | - |
|
447 | - /** |
|
448 | - * Get the total amount failed via this form. |
|
449 | - * |
|
450 | - * @since 1.0.19 |
|
451 | - * @param string $context View or edit context. |
|
452 | - * @return float |
|
453 | - */ |
|
454 | - public function get_failed( $context = 'view' ) { |
|
455 | - return $this->get_prop( 'failed', $context ); |
|
456 | - } |
|
457 | - |
|
458 | - /** |
|
459 | - * Get the currency. |
|
460 | - * |
|
461 | - * @since 1.0.19 |
|
462 | - * @param string $context View or edit context. |
|
463 | - * @return string |
|
464 | - */ |
|
465 | - public function get_currency() { |
|
466 | - $currency = empty( $this->invoice ) ? wpinv_get_currency() : $this->invoice->get_currency(); |
|
467 | - return apply_filters( 'getpaid-payment-form-currency', $currency, $this ); |
|
468 | - } |
|
458 | + /** |
|
459 | + * Get the currency. |
|
460 | + * |
|
461 | + * @since 1.0.19 |
|
462 | + * @param string $context View or edit context. |
|
463 | + * @return string |
|
464 | + */ |
|
465 | + public function get_currency() { |
|
466 | + $currency = empty( $this->invoice ) ? wpinv_get_currency() : $this->invoice->get_currency(); |
|
467 | + return apply_filters( 'getpaid-payment-form-currency', $currency, $this ); |
|
468 | + } |
|
469 | 469 | |
470 | 470 | /* |
471 | 471 | |-------------------------------------------------------------------------- |
@@ -478,22 +478,22 @@ discard block |
||
478 | 478 | */ |
479 | 479 | |
480 | 480 | /** |
481 | - * Set plugin version when the item was created. |
|
482 | - * |
|
483 | - * @since 1.0.19 |
|
484 | - */ |
|
485 | - public function set_version( $value ) { |
|
486 | - $this->set_prop( 'version', $value ); |
|
481 | + * Set plugin version when the item was created. |
|
482 | + * |
|
483 | + * @since 1.0.19 |
|
484 | + */ |
|
485 | + public function set_version( $value ) { |
|
486 | + $this->set_prop( 'version', $value ); |
|
487 | 487 | } |
488 | 488 | |
489 | 489 | /** |
490 | - * Set date when the item was created. |
|
491 | - * |
|
492 | - * @since 1.0.19 |
|
493 | - * @param string $value Value to set. |
|
490 | + * Set date when the item was created. |
|
491 | + * |
|
492 | + * @since 1.0.19 |
|
493 | + * @param string $value Value to set. |
|
494 | 494 | * @return bool Whether or not the date was set. |
495 | - */ |
|
496 | - public function set_date_created( $value ) { |
|
495 | + */ |
|
496 | + public function set_date_created( $value ) { |
|
497 | 497 | $date = strtotime( $value ); |
498 | 498 | |
499 | 499 | if ( $date ) { |
@@ -506,13 +506,13 @@ discard block |
||
506 | 506 | } |
507 | 507 | |
508 | 508 | /** |
509 | - * Set date when the item was last modified. |
|
510 | - * |
|
511 | - * @since 1.0.19 |
|
512 | - * @param string $value Value to set. |
|
509 | + * Set date when the item was last modified. |
|
510 | + * |
|
511 | + * @since 1.0.19 |
|
512 | + * @param string $value Value to set. |
|
513 | 513 | * @return bool Whether or not the date was set. |
514 | - */ |
|
515 | - public function set_date_modified( $value ) { |
|
514 | + */ |
|
515 | + public function set_date_modified( $value ) { |
|
516 | 516 | $date = strtotime( $value ); |
517 | 517 | |
518 | 518 | if ( $date ) { |
@@ -525,118 +525,118 @@ discard block |
||
525 | 525 | } |
526 | 526 | |
527 | 527 | /** |
528 | - * Set the item name. |
|
529 | - * |
|
530 | - * @since 1.0.19 |
|
531 | - * @param string $value New name. |
|
532 | - */ |
|
533 | - public function set_name( $value ) { |
|
534 | - $this->set_prop( 'name', sanitize_text_field( $value ) ); |
|
535 | - } |
|
536 | - |
|
537 | - /** |
|
538 | - * Alias of self::set_name(). |
|
539 | - * |
|
540 | - * @since 1.0.19 |
|
541 | - * @param string $value New name. |
|
542 | - */ |
|
543 | - public function set_title( $value ) { |
|
544 | - $this->set_name( $value ); |
|
545 | - } |
|
546 | - |
|
547 | - /** |
|
548 | - * Set the owner of the item. |
|
549 | - * |
|
550 | - * @since 1.0.19 |
|
551 | - * @param int $value New author. |
|
552 | - */ |
|
553 | - public function set_author( $value ) { |
|
554 | - $this->set_prop( 'author', (int) $value ); |
|
555 | - } |
|
556 | - |
|
557 | - /** |
|
558 | - * Set the form elements. |
|
559 | - * |
|
560 | - * @since 1.0.19 |
|
561 | - * @param array $value Form elements. |
|
562 | - */ |
|
563 | - public function set_elements( $value ) { |
|
564 | - if ( is_array( $value ) ) { |
|
565 | - $this->set_prop( 'elements', $value ); |
|
566 | - } |
|
567 | - } |
|
568 | - |
|
569 | - /** |
|
570 | - * Set the form items. |
|
571 | - * |
|
572 | - * @since 1.0.19 |
|
573 | - * @param array $value Form elements. |
|
574 | - */ |
|
575 | - public function set_items( $value ) { |
|
576 | - if ( is_array( $value ) ) { |
|
577 | - $this->set_prop( 'items', $value ); |
|
578 | - } |
|
579 | - } |
|
580 | - |
|
581 | - /** |
|
582 | - * Set the total amount earned via this form. |
|
583 | - * |
|
584 | - * @since 1.0.19 |
|
585 | - * @param float $value Amount earned. |
|
586 | - */ |
|
587 | - public function set_earned( $value ) { |
|
588 | - $value = max( (float) $value, 0 ); |
|
589 | - $this->set_prop( 'earned', $value ); |
|
590 | - } |
|
591 | - |
|
592 | - /** |
|
593 | - * Set the total amount refunded via this form. |
|
594 | - * |
|
595 | - * @since 1.0.19 |
|
596 | - * @param float $value Amount refunded. |
|
597 | - */ |
|
598 | - public function set_refunded( $value ) { |
|
599 | - $value = max( (float) $value, 0 ); |
|
600 | - $this->set_prop( 'refunded', $value ); |
|
601 | - } |
|
602 | - |
|
603 | - /** |
|
604 | - * Set the total amount cancelled via this form. |
|
605 | - * |
|
606 | - * @since 1.0.19 |
|
607 | - * @param float $value Amount cancelled. |
|
608 | - */ |
|
609 | - public function set_cancelled( $value ) { |
|
610 | - $value = max( (float) $value, 0 ); |
|
611 | - $this->set_prop( 'cancelled', $value ); |
|
612 | - } |
|
613 | - |
|
614 | - /** |
|
615 | - * Set the total amount failed via this form. |
|
616 | - * |
|
617 | - * @since 1.0.19 |
|
618 | - * @param float $value Amount cancelled. |
|
619 | - */ |
|
620 | - public function set_failed( $value ) { |
|
621 | - $value = max( (float) $value, 0 ); |
|
622 | - $this->set_prop( 'failed', $value ); |
|
623 | - } |
|
528 | + * Set the item name. |
|
529 | + * |
|
530 | + * @since 1.0.19 |
|
531 | + * @param string $value New name. |
|
532 | + */ |
|
533 | + public function set_name( $value ) { |
|
534 | + $this->set_prop( 'name', sanitize_text_field( $value ) ); |
|
535 | + } |
|
536 | + |
|
537 | + /** |
|
538 | + * Alias of self::set_name(). |
|
539 | + * |
|
540 | + * @since 1.0.19 |
|
541 | + * @param string $value New name. |
|
542 | + */ |
|
543 | + public function set_title( $value ) { |
|
544 | + $this->set_name( $value ); |
|
545 | + } |
|
546 | + |
|
547 | + /** |
|
548 | + * Set the owner of the item. |
|
549 | + * |
|
550 | + * @since 1.0.19 |
|
551 | + * @param int $value New author. |
|
552 | + */ |
|
553 | + public function set_author( $value ) { |
|
554 | + $this->set_prop( 'author', (int) $value ); |
|
555 | + } |
|
556 | + |
|
557 | + /** |
|
558 | + * Set the form elements. |
|
559 | + * |
|
560 | + * @since 1.0.19 |
|
561 | + * @param array $value Form elements. |
|
562 | + */ |
|
563 | + public function set_elements( $value ) { |
|
564 | + if ( is_array( $value ) ) { |
|
565 | + $this->set_prop( 'elements', $value ); |
|
566 | + } |
|
567 | + } |
|
568 | + |
|
569 | + /** |
|
570 | + * Set the form items. |
|
571 | + * |
|
572 | + * @since 1.0.19 |
|
573 | + * @param array $value Form elements. |
|
574 | + */ |
|
575 | + public function set_items( $value ) { |
|
576 | + if ( is_array( $value ) ) { |
|
577 | + $this->set_prop( 'items', $value ); |
|
578 | + } |
|
579 | + } |
|
580 | + |
|
581 | + /** |
|
582 | + * Set the total amount earned via this form. |
|
583 | + * |
|
584 | + * @since 1.0.19 |
|
585 | + * @param float $value Amount earned. |
|
586 | + */ |
|
587 | + public function set_earned( $value ) { |
|
588 | + $value = max( (float) $value, 0 ); |
|
589 | + $this->set_prop( 'earned', $value ); |
|
590 | + } |
|
591 | + |
|
592 | + /** |
|
593 | + * Set the total amount refunded via this form. |
|
594 | + * |
|
595 | + * @since 1.0.19 |
|
596 | + * @param float $value Amount refunded. |
|
597 | + */ |
|
598 | + public function set_refunded( $value ) { |
|
599 | + $value = max( (float) $value, 0 ); |
|
600 | + $this->set_prop( 'refunded', $value ); |
|
601 | + } |
|
602 | + |
|
603 | + /** |
|
604 | + * Set the total amount cancelled via this form. |
|
605 | + * |
|
606 | + * @since 1.0.19 |
|
607 | + * @param float $value Amount cancelled. |
|
608 | + */ |
|
609 | + public function set_cancelled( $value ) { |
|
610 | + $value = max( (float) $value, 0 ); |
|
611 | + $this->set_prop( 'cancelled', $value ); |
|
612 | + } |
|
613 | + |
|
614 | + /** |
|
615 | + * Set the total amount failed via this form. |
|
616 | + * |
|
617 | + * @since 1.0.19 |
|
618 | + * @param float $value Amount cancelled. |
|
619 | + */ |
|
620 | + public function set_failed( $value ) { |
|
621 | + $value = max( (float) $value, 0 ); |
|
622 | + $this->set_prop( 'failed', $value ); |
|
623 | + } |
|
624 | 624 | |
625 | 625 | /** |
626 | 626 | * Create an item. For backwards compatibilty. |
627 | 627 | * |
628 | 628 | * @deprecated |
629 | - * @return int item id |
|
629 | + * @return int item id |
|
630 | 630 | */ |
631 | 631 | public function create( $data = array() ) { |
632 | 632 | |
633 | - // Set the properties. |
|
634 | - if ( is_array( $data ) ) { |
|
635 | - $this->set_props( $data ); |
|
636 | - } |
|
633 | + // Set the properties. |
|
634 | + if ( is_array( $data ) ) { |
|
635 | + $this->set_props( $data ); |
|
636 | + } |
|
637 | 637 | |
638 | - // Save the item. |
|
639 | - return $this->save(); |
|
638 | + // Save the item. |
|
639 | + return $this->save(); |
|
640 | 640 | |
641 | 641 | } |
642 | 642 | |
@@ -644,7 +644,7 @@ discard block |
||
644 | 644 | * Updates an item. For backwards compatibilty. |
645 | 645 | * |
646 | 646 | * @deprecated |
647 | - * @return int item id |
|
647 | + * @return int item id |
|
648 | 648 | */ |
649 | 649 | public function update( $data = array() ) { |
650 | 650 | return $this->create( $data ); |
@@ -660,22 +660,22 @@ discard block |
||
660 | 660 | */ |
661 | 661 | |
662 | 662 | /** |
663 | - * Checks whether this is the default payment form. |
|
664 | - * |
|
665 | - * @since 1.0.19 |
|
666 | - * @return bool |
|
667 | - */ |
|
663 | + * Checks whether this is the default payment form. |
|
664 | + * |
|
665 | + * @since 1.0.19 |
|
666 | + * @return bool |
|
667 | + */ |
|
668 | 668 | public function is_default() { |
669 | 669 | $is_default = $this->get_id() == wpinv_get_default_payment_form(); |
670 | 670 | return (bool) apply_filters( 'wpinv_is_default_payment_form', $is_default, $this->get_id(), $this ); |
671 | - } |
|
671 | + } |
|
672 | 672 | |
673 | 673 | /** |
674 | - * Checks whether the form is active. |
|
675 | - * |
|
676 | - * @since 1.0.19 |
|
677 | - * @return bool |
|
678 | - */ |
|
674 | + * Checks whether the form is active. |
|
675 | + * |
|
676 | + * @since 1.0.19 |
|
677 | + * @return bool |
|
678 | + */ |
|
679 | 679 | public function is_active() { |
680 | 680 | $is_active = 0 !== (int) $this->get_id(); |
681 | 681 | |
@@ -684,76 +684,76 @@ discard block |
||
684 | 684 | } |
685 | 685 | |
686 | 686 | return (bool) apply_filters( 'wpinv_is_payment_form_active', $is_active, $this ); |
687 | - } |
|
688 | - |
|
689 | - /** |
|
690 | - * Checks whether the form has a given item. |
|
691 | - * |
|
692 | - * @since 1.0.19 |
|
693 | - * @return bool |
|
694 | - */ |
|
687 | + } |
|
688 | + |
|
689 | + /** |
|
690 | + * Checks whether the form has a given item. |
|
691 | + * |
|
692 | + * @since 1.0.19 |
|
693 | + * @return bool |
|
694 | + */ |
|
695 | 695 | public function has_item( $item_id ) { |
696 | 696 | return false !== $this->get_item( $item_id ); |
697 | - } |
|
698 | - |
|
699 | - /** |
|
700 | - * Checks whether the form has a given element. |
|
701 | - * |
|
702 | - * @since 1.0.19 |
|
703 | - * @return bool |
|
704 | - */ |
|
697 | + } |
|
698 | + |
|
699 | + /** |
|
700 | + * Checks whether the form has a given element. |
|
701 | + * |
|
702 | + * @since 1.0.19 |
|
703 | + * @return bool |
|
704 | + */ |
|
705 | 705 | public function has_element_type( $element_type ) { |
706 | 706 | return false !== $this->get_element_type( $element_type ); |
707 | - } |
|
708 | - |
|
709 | - /** |
|
710 | - * Checks whether this form is recurring or not. |
|
711 | - * |
|
712 | - * @since 1.0.19 |
|
713 | - * @return bool |
|
714 | - */ |
|
707 | + } |
|
708 | + |
|
709 | + /** |
|
710 | + * Checks whether this form is recurring or not. |
|
711 | + * |
|
712 | + * @since 1.0.19 |
|
713 | + * @return bool |
|
714 | + */ |
|
715 | 715 | public function is_recurring() { |
716 | 716 | |
717 | - if ( ! empty( $this->invoice ) ) { |
|
718 | - return $this->invoice->is_recurring(); |
|
719 | - } |
|
717 | + if ( ! empty( $this->invoice ) ) { |
|
718 | + return $this->invoice->is_recurring(); |
|
719 | + } |
|
720 | 720 | |
721 | - foreach ( $this->get_items() as $item ) { |
|
721 | + foreach ( $this->get_items() as $item ) { |
|
722 | 722 | |
723 | - if ( $item->is_recurring() ) { |
|
724 | - return true; |
|
725 | - } |
|
723 | + if ( $item->is_recurring() ) { |
|
724 | + return true; |
|
725 | + } |
|
726 | 726 | |
727 | - } |
|
727 | + } |
|
728 | 728 | |
729 | 729 | return false; |
730 | - } |
|
730 | + } |
|
731 | 731 | |
732 | - /** |
|
733 | - * Retrieves the form's html. |
|
734 | - * |
|
735 | - * @since 1.0.19 |
|
736 | - */ |
|
732 | + /** |
|
733 | + * Retrieves the form's html. |
|
734 | + * |
|
735 | + * @since 1.0.19 |
|
736 | + */ |
|
737 | 737 | public function get_html( $extra_markup = '' ) { |
738 | 738 | |
739 | - // Return the HTML. |
|
740 | - return wpinv_get_template_html( |
|
741 | - 'payment-forms/form.php', |
|
742 | - array( |
|
743 | - 'form' => $this, |
|
744 | - 'extra_markup' => $extra_markup, |
|
745 | - ) |
|
746 | - ); |
|
747 | - |
|
748 | - } |
|
749 | - |
|
750 | - /** |
|
751 | - * Displays the payment form. |
|
752 | - * |
|
753 | - * @since 1.0.19 |
|
754 | - */ |
|
739 | + // Return the HTML. |
|
740 | + return wpinv_get_template_html( |
|
741 | + 'payment-forms/form.php', |
|
742 | + array( |
|
743 | + 'form' => $this, |
|
744 | + 'extra_markup' => $extra_markup, |
|
745 | + ) |
|
746 | + ); |
|
747 | + |
|
748 | + } |
|
749 | + |
|
750 | + /** |
|
751 | + * Displays the payment form. |
|
752 | + * |
|
753 | + * @since 1.0.19 |
|
754 | + */ |
|
755 | 755 | public function display( $extra_markup = '' ) { |
756 | - echo $this->get_html( $extra_markup ); |
|
756 | + echo $this->get_html( $extra_markup ); |
|
757 | 757 | } |
758 | 758 | |
759 | 759 | } |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | |
6 | 6 | class OxidInstaller extends BaseInstaller |
7 | 7 | { |
8 | - const VENDOR_PATTERN = '/^modules\/(?P<vendor>.+)\/.+/'; |
|
8 | + const VENDOR_PATTERN = '/^modules\/(?P<vendor>.+)\/.+/'; |
|
9 | 9 | |
10 | 10 | protected $locations = array( |
11 | 11 | 'module' => 'modules/{$name}/', |
@@ -13,47 +13,47 @@ discard block |
||
13 | 13 | 'out' => 'out/{$name}/', |
14 | 14 | ); |
15 | 15 | |
16 | - /** |
|
17 | - * getInstallPath |
|
18 | - * |
|
19 | - * @param PackageInterface $package |
|
20 | - * @param string $frameworkType |
|
21 | - * @return string |
|
22 | - */ |
|
23 | - public function getInstallPath(PackageInterface $package, $frameworkType = '') |
|
24 | - { |
|
25 | - $installPath = parent::getInstallPath($package, $frameworkType); |
|
26 | - $type = $this->package->getType(); |
|
27 | - if ($type === 'oxid-module') { |
|
28 | - $this->prepareVendorDirectory($installPath); |
|
29 | - } |
|
30 | - return $installPath; |
|
31 | - } |
|
16 | + /** |
|
17 | + * getInstallPath |
|
18 | + * |
|
19 | + * @param PackageInterface $package |
|
20 | + * @param string $frameworkType |
|
21 | + * @return string |
|
22 | + */ |
|
23 | + public function getInstallPath(PackageInterface $package, $frameworkType = '') |
|
24 | + { |
|
25 | + $installPath = parent::getInstallPath($package, $frameworkType); |
|
26 | + $type = $this->package->getType(); |
|
27 | + if ($type === 'oxid-module') { |
|
28 | + $this->prepareVendorDirectory($installPath); |
|
29 | + } |
|
30 | + return $installPath; |
|
31 | + } |
|
32 | 32 | |
33 | - /** |
|
34 | - * prepareVendorDirectory |
|
35 | - * |
|
36 | - * Makes sure there is a vendormetadata.php file inside |
|
37 | - * the vendor folder if there is a vendor folder. |
|
38 | - * |
|
39 | - * @param string $installPath |
|
40 | - * @return void |
|
41 | - */ |
|
42 | - protected function prepareVendorDirectory($installPath) |
|
43 | - { |
|
44 | - $matches = ''; |
|
45 | - $hasVendorDirectory = preg_match(self::VENDOR_PATTERN, $installPath, $matches); |
|
46 | - if (!$hasVendorDirectory) { |
|
47 | - return; |
|
48 | - } |
|
33 | + /** |
|
34 | + * prepareVendorDirectory |
|
35 | + * |
|
36 | + * Makes sure there is a vendormetadata.php file inside |
|
37 | + * the vendor folder if there is a vendor folder. |
|
38 | + * |
|
39 | + * @param string $installPath |
|
40 | + * @return void |
|
41 | + */ |
|
42 | + protected function prepareVendorDirectory($installPath) |
|
43 | + { |
|
44 | + $matches = ''; |
|
45 | + $hasVendorDirectory = preg_match(self::VENDOR_PATTERN, $installPath, $matches); |
|
46 | + if (!$hasVendorDirectory) { |
|
47 | + return; |
|
48 | + } |
|
49 | 49 | |
50 | - $vendorDirectory = $matches['vendor']; |
|
51 | - $vendorPath = getcwd() . '/modules/' . $vendorDirectory; |
|
52 | - if (!file_exists($vendorPath)) { |
|
53 | - mkdir($vendorPath, 0755, true); |
|
54 | - } |
|
50 | + $vendorDirectory = $matches['vendor']; |
|
51 | + $vendorPath = getcwd() . '/modules/' . $vendorDirectory; |
|
52 | + if (!file_exists($vendorPath)) { |
|
53 | + mkdir($vendorPath, 0755, true); |
|
54 | + } |
|
55 | 55 | |
56 | - $vendorMetaDataPath = $vendorPath . '/vendormetadata.php'; |
|
57 | - touch($vendorMetaDataPath); |
|
58 | - } |
|
56 | + $vendorMetaDataPath = $vendorPath . '/vendormetadata.php'; |
|
57 | + touch($vendorMetaDataPath); |
|
58 | + } |
|
59 | 59 | } |
@@ -1,7 +1,7 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | if ( ! defined( 'ABSPATH' ) ) { |
4 | - exit; // Exit if accessed directly |
|
4 | + exit; // Exit if accessed directly |
|
5 | 5 | } |
6 | 6 | |
7 | 7 | /** |
@@ -11,372 +11,372 @@ discard block |
||
11 | 11 | */ |
12 | 12 | class AUI_Component_Helper { |
13 | 13 | |
14 | - /** |
|
15 | - * A component helper for generating a input name. |
|
16 | - * |
|
17 | - * @param $text |
|
18 | - * @param $multiple bool If the name is set to be multiple but no brackets found then we add some. |
|
19 | - * |
|
20 | - * @return string |
|
21 | - */ |
|
22 | - public static function name($text,$multiple = false){ |
|
23 | - $output = ''; |
|
24 | - |
|
25 | - if($text){ |
|
26 | - $is_multiple = strpos($text, '[') === false && $multiple ? '[]' : ''; |
|
27 | - $output = ' name="'.esc_attr($text).$is_multiple.'" '; |
|
28 | - } |
|
29 | - |
|
30 | - return $output; |
|
31 | - } |
|
32 | - |
|
33 | - /** |
|
34 | - * A component helper for generating a item id. |
|
35 | - * |
|
36 | - * @param $text string The text to be used as the value. |
|
37 | - * |
|
38 | - * @return string The sanitized item. |
|
39 | - */ |
|
40 | - public static function id($text){ |
|
41 | - $output = ''; |
|
42 | - |
|
43 | - if($text){ |
|
44 | - $output = ' id="'.sanitize_html_class($text).'" '; |
|
45 | - } |
|
46 | - |
|
47 | - return $output; |
|
48 | - } |
|
49 | - |
|
50 | - /** |
|
51 | - * A component helper for generating a item title. |
|
52 | - * |
|
53 | - * @param $text string The text to be used as the value. |
|
54 | - * |
|
55 | - * @return string The sanitized item. |
|
56 | - */ |
|
57 | - public static function title($text){ |
|
58 | - $output = ''; |
|
59 | - |
|
60 | - if($text){ |
|
61 | - $output = ' title="'.esc_attr($text).'" '; |
|
62 | - } |
|
63 | - |
|
64 | - return $output; |
|
65 | - } |
|
66 | - |
|
67 | - /** |
|
68 | - * A component helper for generating a item value. |
|
69 | - * |
|
70 | - * @param $text string The text to be used as the value. |
|
71 | - * |
|
72 | - * @return string The sanitized item. |
|
73 | - */ |
|
74 | - public static function value($text){ |
|
75 | - $output = ''; |
|
76 | - |
|
77 | - if($text){ |
|
78 | - $output = ' value="'.sanitize_text_field($text).'" '; |
|
79 | - } |
|
80 | - |
|
81 | - return $output; |
|
82 | - } |
|
83 | - |
|
84 | - /** |
|
85 | - * A component helper for generating a item class attribute. |
|
86 | - * |
|
87 | - * @param $text string The text to be used as the value. |
|
88 | - * |
|
89 | - * @return string The sanitized item. |
|
90 | - */ |
|
91 | - public static function class_attr($text){ |
|
92 | - $output = ''; |
|
93 | - |
|
94 | - if($text){ |
|
95 | - $classes = self::esc_classes($text); |
|
96 | - if(!empty($classes)){ |
|
97 | - $output = ' class="'.$classes.'" '; |
|
98 | - } |
|
99 | - } |
|
100 | - |
|
101 | - return $output; |
|
102 | - } |
|
103 | - |
|
104 | - /** |
|
105 | - * Escape a string of classes. |
|
106 | - * |
|
107 | - * @param $text |
|
108 | - * |
|
109 | - * @return string |
|
110 | - */ |
|
111 | - public static function esc_classes($text){ |
|
112 | - $output = ''; |
|
113 | - |
|
114 | - if($text){ |
|
115 | - $classes = explode(" ",$text); |
|
116 | - $classes = array_map("trim",$classes); |
|
117 | - $classes = array_map("sanitize_html_class",$classes); |
|
118 | - if(!empty($classes)){ |
|
119 | - $output = implode(" ",$classes); |
|
120 | - } |
|
121 | - } |
|
122 | - |
|
123 | - return $output; |
|
124 | - |
|
125 | - } |
|
126 | - |
|
127 | - /** |
|
128 | - * @param $args |
|
129 | - * |
|
130 | - * @return string |
|
131 | - */ |
|
132 | - public static function data_attributes($args){ |
|
133 | - $output = ''; |
|
134 | - |
|
135 | - if(!empty($args)){ |
|
136 | - |
|
137 | - foreach($args as $key => $val){ |
|
138 | - if(substr( $key, 0, 5 ) === "data-"){ |
|
139 | - $output .= ' '.sanitize_html_class($key).'="'.esc_attr($val).'" '; |
|
140 | - } |
|
141 | - } |
|
142 | - } |
|
143 | - |
|
144 | - return $output; |
|
145 | - } |
|
146 | - |
|
147 | - /** |
|
148 | - * @param $args |
|
149 | - * |
|
150 | - * @return string |
|
151 | - */ |
|
152 | - public static function aria_attributes($args){ |
|
153 | - $output = ''; |
|
154 | - |
|
155 | - if(!empty($args)){ |
|
156 | - |
|
157 | - foreach($args as $key => $val){ |
|
158 | - if(substr( $key, 0, 5 ) === "aria-"){ |
|
159 | - $output .= ' '.sanitize_html_class($key).'="'.esc_attr($val).'" '; |
|
160 | - } |
|
161 | - } |
|
162 | - } |
|
163 | - |
|
164 | - return $output; |
|
165 | - } |
|
166 | - |
|
167 | - /** |
|
168 | - * Build a font awesome icon from a class. |
|
169 | - * |
|
170 | - * @param $class |
|
171 | - * @param bool $space_after |
|
172 | - * @param array $extra_attributes An array of extra attributes. |
|
173 | - * |
|
174 | - * @return string |
|
175 | - */ |
|
176 | - public static function icon($class,$space_after = false, $extra_attributes = array()){ |
|
177 | - $output = ''; |
|
178 | - |
|
179 | - if($class){ |
|
180 | - $classes = self::esc_classes($class); |
|
181 | - if(!empty($classes)){ |
|
182 | - $output = '<i class="'.$classes.'" '; |
|
183 | - // extra attributes |
|
184 | - if(!empty($extra_attributes)){ |
|
185 | - $output .= AUI_Component_Helper::extra_attributes($extra_attributes); |
|
186 | - } |
|
187 | - $output .= '></i>'; |
|
188 | - if($space_after){ |
|
189 | - $output .= " "; |
|
190 | - } |
|
191 | - } |
|
192 | - } |
|
193 | - |
|
194 | - return $output; |
|
195 | - } |
|
196 | - |
|
197 | - /** |
|
198 | - * @param $args |
|
199 | - * |
|
200 | - * @return string |
|
201 | - */ |
|
202 | - public static function extra_attributes($args){ |
|
203 | - $output = ''; |
|
204 | - |
|
205 | - if(!empty($args)){ |
|
206 | - |
|
207 | - if( is_array($args) ){ |
|
208 | - foreach($args as $key => $val){ |
|
209 | - $output .= ' '.sanitize_html_class($key).'="'.esc_attr($val).'" '; |
|
210 | - } |
|
211 | - }else{ |
|
212 | - $output .= ' '.$args.' '; |
|
213 | - } |
|
214 | - |
|
215 | - } |
|
216 | - |
|
217 | - return $output; |
|
218 | - } |
|
219 | - |
|
220 | - /** |
|
221 | - * @param $args |
|
222 | - * |
|
223 | - * @return string |
|
224 | - */ |
|
225 | - public static function help_text($text){ |
|
226 | - $output = ''; |
|
227 | - |
|
228 | - if($text){ |
|
229 | - $output .= '<small class="form-text text-muted">'.wp_kses_post($text).'</small>'; |
|
230 | - } |
|
231 | - |
|
232 | - |
|
233 | - return $output; |
|
234 | - } |
|
235 | - |
|
236 | - /** |
|
237 | - * Replace element require context with JS. |
|
238 | - * |
|
239 | - * @param $input |
|
240 | - * |
|
241 | - * @return string|void |
|
242 | - */ |
|
243 | - public static function element_require( $input ) { |
|
244 | - |
|
245 | - $input = str_replace( "'", '"', $input );// we only want double quotes |
|
246 | - |
|
247 | - $output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array( |
|
248 | - "jQuery(form).find('[data-argument=\"", |
|
249 | - "\"]').find('input,select,textarea').val()", |
|
250 | - "\"]').find('input:checked').val()", |
|
251 | - ), $input ) ); |
|
252 | - |
|
253 | - if($output){ |
|
254 | - $output = ' data-element-require="'.$output.'" '; |
|
255 | - } |
|
256 | - |
|
257 | - return $output; |
|
258 | - } |
|
259 | - |
|
260 | - /** |
|
261 | - * Returns an array of allowed HTML tags and attributes for a given context. |
|
262 | - * |
|
263 | - * @since 0.1.41 |
|
264 | - * |
|
265 | - * @param string|array $context The context for which to retrieve tags. Allowed values are 'post', |
|
266 | - * 'strip', 'data', 'entities', or the name of a field filter such as |
|
267 | - * 'pre_user_description'. |
|
268 | - * @param array $input Input. |
|
269 | - * @return array Array of allowed HTML tags and their allowed attributes. |
|
270 | - */ |
|
271 | - public static function kses_allowed_html( $context = 'post', $input = array() ) { |
|
272 | - $allowed_html = wp_kses_allowed_html( $context ); |
|
273 | - |
|
274 | - if ( is_array( $allowed_html ) ) { |
|
275 | - // <iframe> |
|
276 | - if ( ! isset( $allowed_html['iframe'] ) && $context == 'post' ) { |
|
277 | - $allowed_html['iframe'] = array( |
|
278 | - 'class' => true, |
|
279 | - 'id' => true, |
|
280 | - 'src' => true, |
|
281 | - 'width' => true, |
|
282 | - 'height' => true, |
|
283 | - 'frameborder' => true, |
|
284 | - 'marginwidth' => true, |
|
285 | - 'marginheight' => true, |
|
286 | - 'scrolling' => true, |
|
287 | - 'style' => true, |
|
288 | - 'title' => true, |
|
289 | - 'allow' => true, |
|
290 | - 'allowfullscreen' => true, |
|
291 | - 'data-*' => true, |
|
292 | - ); |
|
293 | - } |
|
294 | - } |
|
295 | - |
|
296 | - /** |
|
297 | - * Filters the allowed html tags. |
|
298 | - * |
|
299 | - * @since 0.1.41 |
|
300 | - * |
|
301 | - * @param array[]|string $allowed_html Allowed html tags. |
|
302 | - * @param @param string|array $context The context for which to retrieve tags. |
|
303 | - * @param array $input Input field. |
|
304 | - */ |
|
305 | - return apply_filters( 'ayecode_ui_kses_allowed_html', $allowed_html, $context, $input ); |
|
306 | - } |
|
307 | - |
|
308 | - /** |
|
309 | - * Filters content and keeps only allowable HTML elements. |
|
310 | - * |
|
311 | - * This function makes sure that only the allowed HTML element names, attribute |
|
312 | - * names and attribute values plus only sane HTML entities will occur in |
|
313 | - * $string. You have to remove any slashes from PHP's magic quotes before you |
|
314 | - * call this function. |
|
315 | - * |
|
316 | - * The default allowed protocols are 'http', 'https', 'ftp', 'mailto', 'news', |
|
317 | - * 'irc', 'gopher', 'nntp', 'feed', 'telnet, 'mms', 'rtsp' and 'svn'. This |
|
318 | - * covers all common link protocols, except for 'javascript' which should not |
|
319 | - * be allowed for untrusted users. |
|
320 | - * |
|
321 | - * @since 0.1.41 |
|
322 | - * |
|
323 | - * @param string|array $value Content to filter through kses. |
|
324 | - * @param array $input Input Field. |
|
325 | - * @return string Filtered content with only allowed HTML elements. |
|
326 | - */ |
|
327 | - public static function _sanitize_html_field( $value, $input = array() ) { |
|
328 | - if ( $value === '' ) { |
|
329 | - return $value; |
|
330 | - } |
|
331 | - |
|
332 | - $allowed_html = self::kses_allowed_html( 'post', $input ); |
|
333 | - |
|
334 | - if ( ! is_array( $allowed_html ) ) { |
|
335 | - $allowed_html = wp_kses_allowed_html( 'post' ); |
|
336 | - } |
|
337 | - |
|
338 | - $filtered = trim( wp_unslash( $value ) ); |
|
339 | - $filtered = wp_kses( $filtered, $allowed_html ); |
|
340 | - $filtered = balanceTags( $filtered ); // Balances tags |
|
341 | - |
|
342 | - return $filtered; |
|
343 | - } |
|
344 | - |
|
345 | - /** |
|
346 | - * Navigates through an array, object, or scalar, and removes slashes from the values. |
|
347 | - * |
|
348 | - * @since 0.1.41 |
|
349 | - * |
|
350 | - * @param mixed $value The value to be stripped. |
|
351 | - * @param array $input Input Field. |
|
352 | - * @return mixed Stripped value. |
|
353 | - */ |
|
354 | - public static function sanitize_html_field( $value, $input = array() ) { |
|
355 | - $original = $value; |
|
356 | - |
|
357 | - if ( is_array( $value ) ) { |
|
358 | - foreach ( $value as $index => $item ) { |
|
359 | - $value[ $index ] = self::_sanitize_html_field( $value, $input ); |
|
360 | - } |
|
361 | - } elseif ( is_object( $value ) ) { |
|
362 | - $object_vars = get_object_vars( $value ); |
|
363 | - |
|
364 | - foreach ( $object_vars as $property_name => $property_value ) { |
|
365 | - $value->$property_name = self::_sanitize_html_field( $property_value, $input ); |
|
366 | - } |
|
367 | - } else { |
|
368 | - $value = self::_sanitize_html_field( $value, $input ); |
|
369 | - } |
|
370 | - |
|
371 | - /** |
|
372 | - * Filters content and keeps only allowable HTML elements. |
|
373 | - * |
|
374 | - * @since 0.1.41 |
|
375 | - * |
|
376 | - * @param string|array $value Content to filter through kses. |
|
377 | - * @param string|array $value Original content without filter. |
|
378 | - * @param array $input Input Field. |
|
379 | - */ |
|
380 | - return apply_filters( 'ayecode_ui_sanitize_html_field', $value, $original, $input ); |
|
381 | - } |
|
14 | + /** |
|
15 | + * A component helper for generating a input name. |
|
16 | + * |
|
17 | + * @param $text |
|
18 | + * @param $multiple bool If the name is set to be multiple but no brackets found then we add some. |
|
19 | + * |
|
20 | + * @return string |
|
21 | + */ |
|
22 | + public static function name($text,$multiple = false){ |
|
23 | + $output = ''; |
|
24 | + |
|
25 | + if($text){ |
|
26 | + $is_multiple = strpos($text, '[') === false && $multiple ? '[]' : ''; |
|
27 | + $output = ' name="'.esc_attr($text).$is_multiple.'" '; |
|
28 | + } |
|
29 | + |
|
30 | + return $output; |
|
31 | + } |
|
32 | + |
|
33 | + /** |
|
34 | + * A component helper for generating a item id. |
|
35 | + * |
|
36 | + * @param $text string The text to be used as the value. |
|
37 | + * |
|
38 | + * @return string The sanitized item. |
|
39 | + */ |
|
40 | + public static function id($text){ |
|
41 | + $output = ''; |
|
42 | + |
|
43 | + if($text){ |
|
44 | + $output = ' id="'.sanitize_html_class($text).'" '; |
|
45 | + } |
|
46 | + |
|
47 | + return $output; |
|
48 | + } |
|
49 | + |
|
50 | + /** |
|
51 | + * A component helper for generating a item title. |
|
52 | + * |
|
53 | + * @param $text string The text to be used as the value. |
|
54 | + * |
|
55 | + * @return string The sanitized item. |
|
56 | + */ |
|
57 | + public static function title($text){ |
|
58 | + $output = ''; |
|
59 | + |
|
60 | + if($text){ |
|
61 | + $output = ' title="'.esc_attr($text).'" '; |
|
62 | + } |
|
63 | + |
|
64 | + return $output; |
|
65 | + } |
|
66 | + |
|
67 | + /** |
|
68 | + * A component helper for generating a item value. |
|
69 | + * |
|
70 | + * @param $text string The text to be used as the value. |
|
71 | + * |
|
72 | + * @return string The sanitized item. |
|
73 | + */ |
|
74 | + public static function value($text){ |
|
75 | + $output = ''; |
|
76 | + |
|
77 | + if($text){ |
|
78 | + $output = ' value="'.sanitize_text_field($text).'" '; |
|
79 | + } |
|
80 | + |
|
81 | + return $output; |
|
82 | + } |
|
83 | + |
|
84 | + /** |
|
85 | + * A component helper for generating a item class attribute. |
|
86 | + * |
|
87 | + * @param $text string The text to be used as the value. |
|
88 | + * |
|
89 | + * @return string The sanitized item. |
|
90 | + */ |
|
91 | + public static function class_attr($text){ |
|
92 | + $output = ''; |
|
93 | + |
|
94 | + if($text){ |
|
95 | + $classes = self::esc_classes($text); |
|
96 | + if(!empty($classes)){ |
|
97 | + $output = ' class="'.$classes.'" '; |
|
98 | + } |
|
99 | + } |
|
100 | + |
|
101 | + return $output; |
|
102 | + } |
|
103 | + |
|
104 | + /** |
|
105 | + * Escape a string of classes. |
|
106 | + * |
|
107 | + * @param $text |
|
108 | + * |
|
109 | + * @return string |
|
110 | + */ |
|
111 | + public static function esc_classes($text){ |
|
112 | + $output = ''; |
|
113 | + |
|
114 | + if($text){ |
|
115 | + $classes = explode(" ",$text); |
|
116 | + $classes = array_map("trim",$classes); |
|
117 | + $classes = array_map("sanitize_html_class",$classes); |
|
118 | + if(!empty($classes)){ |
|
119 | + $output = implode(" ",$classes); |
|
120 | + } |
|
121 | + } |
|
122 | + |
|
123 | + return $output; |
|
124 | + |
|
125 | + } |
|
126 | + |
|
127 | + /** |
|
128 | + * @param $args |
|
129 | + * |
|
130 | + * @return string |
|
131 | + */ |
|
132 | + public static function data_attributes($args){ |
|
133 | + $output = ''; |
|
134 | + |
|
135 | + if(!empty($args)){ |
|
136 | + |
|
137 | + foreach($args as $key => $val){ |
|
138 | + if(substr( $key, 0, 5 ) === "data-"){ |
|
139 | + $output .= ' '.sanitize_html_class($key).'="'.esc_attr($val).'" '; |
|
140 | + } |
|
141 | + } |
|
142 | + } |
|
143 | + |
|
144 | + return $output; |
|
145 | + } |
|
146 | + |
|
147 | + /** |
|
148 | + * @param $args |
|
149 | + * |
|
150 | + * @return string |
|
151 | + */ |
|
152 | + public static function aria_attributes($args){ |
|
153 | + $output = ''; |
|
154 | + |
|
155 | + if(!empty($args)){ |
|
156 | + |
|
157 | + foreach($args as $key => $val){ |
|
158 | + if(substr( $key, 0, 5 ) === "aria-"){ |
|
159 | + $output .= ' '.sanitize_html_class($key).'="'.esc_attr($val).'" '; |
|
160 | + } |
|
161 | + } |
|
162 | + } |
|
163 | + |
|
164 | + return $output; |
|
165 | + } |
|
166 | + |
|
167 | + /** |
|
168 | + * Build a font awesome icon from a class. |
|
169 | + * |
|
170 | + * @param $class |
|
171 | + * @param bool $space_after |
|
172 | + * @param array $extra_attributes An array of extra attributes. |
|
173 | + * |
|
174 | + * @return string |
|
175 | + */ |
|
176 | + public static function icon($class,$space_after = false, $extra_attributes = array()){ |
|
177 | + $output = ''; |
|
178 | + |
|
179 | + if($class){ |
|
180 | + $classes = self::esc_classes($class); |
|
181 | + if(!empty($classes)){ |
|
182 | + $output = '<i class="'.$classes.'" '; |
|
183 | + // extra attributes |
|
184 | + if(!empty($extra_attributes)){ |
|
185 | + $output .= AUI_Component_Helper::extra_attributes($extra_attributes); |
|
186 | + } |
|
187 | + $output .= '></i>'; |
|
188 | + if($space_after){ |
|
189 | + $output .= " "; |
|
190 | + } |
|
191 | + } |
|
192 | + } |
|
193 | + |
|
194 | + return $output; |
|
195 | + } |
|
196 | + |
|
197 | + /** |
|
198 | + * @param $args |
|
199 | + * |
|
200 | + * @return string |
|
201 | + */ |
|
202 | + public static function extra_attributes($args){ |
|
203 | + $output = ''; |
|
204 | + |
|
205 | + if(!empty($args)){ |
|
206 | + |
|
207 | + if( is_array($args) ){ |
|
208 | + foreach($args as $key => $val){ |
|
209 | + $output .= ' '.sanitize_html_class($key).'="'.esc_attr($val).'" '; |
|
210 | + } |
|
211 | + }else{ |
|
212 | + $output .= ' '.$args.' '; |
|
213 | + } |
|
214 | + |
|
215 | + } |
|
216 | + |
|
217 | + return $output; |
|
218 | + } |
|
219 | + |
|
220 | + /** |
|
221 | + * @param $args |
|
222 | + * |
|
223 | + * @return string |
|
224 | + */ |
|
225 | + public static function help_text($text){ |
|
226 | + $output = ''; |
|
227 | + |
|
228 | + if($text){ |
|
229 | + $output .= '<small class="form-text text-muted">'.wp_kses_post($text).'</small>'; |
|
230 | + } |
|
231 | + |
|
232 | + |
|
233 | + return $output; |
|
234 | + } |
|
235 | + |
|
236 | + /** |
|
237 | + * Replace element require context with JS. |
|
238 | + * |
|
239 | + * @param $input |
|
240 | + * |
|
241 | + * @return string|void |
|
242 | + */ |
|
243 | + public static function element_require( $input ) { |
|
244 | + |
|
245 | + $input = str_replace( "'", '"', $input );// we only want double quotes |
|
246 | + |
|
247 | + $output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array( |
|
248 | + "jQuery(form).find('[data-argument=\"", |
|
249 | + "\"]').find('input,select,textarea').val()", |
|
250 | + "\"]').find('input:checked').val()", |
|
251 | + ), $input ) ); |
|
252 | + |
|
253 | + if($output){ |
|
254 | + $output = ' data-element-require="'.$output.'" '; |
|
255 | + } |
|
256 | + |
|
257 | + return $output; |
|
258 | + } |
|
259 | + |
|
260 | + /** |
|
261 | + * Returns an array of allowed HTML tags and attributes for a given context. |
|
262 | + * |
|
263 | + * @since 0.1.41 |
|
264 | + * |
|
265 | + * @param string|array $context The context for which to retrieve tags. Allowed values are 'post', |
|
266 | + * 'strip', 'data', 'entities', or the name of a field filter such as |
|
267 | + * 'pre_user_description'. |
|
268 | + * @param array $input Input. |
|
269 | + * @return array Array of allowed HTML tags and their allowed attributes. |
|
270 | + */ |
|
271 | + public static function kses_allowed_html( $context = 'post', $input = array() ) { |
|
272 | + $allowed_html = wp_kses_allowed_html( $context ); |
|
273 | + |
|
274 | + if ( is_array( $allowed_html ) ) { |
|
275 | + // <iframe> |
|
276 | + if ( ! isset( $allowed_html['iframe'] ) && $context == 'post' ) { |
|
277 | + $allowed_html['iframe'] = array( |
|
278 | + 'class' => true, |
|
279 | + 'id' => true, |
|
280 | + 'src' => true, |
|
281 | + 'width' => true, |
|
282 | + 'height' => true, |
|
283 | + 'frameborder' => true, |
|
284 | + 'marginwidth' => true, |
|
285 | + 'marginheight' => true, |
|
286 | + 'scrolling' => true, |
|
287 | + 'style' => true, |
|
288 | + 'title' => true, |
|
289 | + 'allow' => true, |
|
290 | + 'allowfullscreen' => true, |
|
291 | + 'data-*' => true, |
|
292 | + ); |
|
293 | + } |
|
294 | + } |
|
295 | + |
|
296 | + /** |
|
297 | + * Filters the allowed html tags. |
|
298 | + * |
|
299 | + * @since 0.1.41 |
|
300 | + * |
|
301 | + * @param array[]|string $allowed_html Allowed html tags. |
|
302 | + * @param @param string|array $context The context for which to retrieve tags. |
|
303 | + * @param array $input Input field. |
|
304 | + */ |
|
305 | + return apply_filters( 'ayecode_ui_kses_allowed_html', $allowed_html, $context, $input ); |
|
306 | + } |
|
307 | + |
|
308 | + /** |
|
309 | + * Filters content and keeps only allowable HTML elements. |
|
310 | + * |
|
311 | + * This function makes sure that only the allowed HTML element names, attribute |
|
312 | + * names and attribute values plus only sane HTML entities will occur in |
|
313 | + * $string. You have to remove any slashes from PHP's magic quotes before you |
|
314 | + * call this function. |
|
315 | + * |
|
316 | + * The default allowed protocols are 'http', 'https', 'ftp', 'mailto', 'news', |
|
317 | + * 'irc', 'gopher', 'nntp', 'feed', 'telnet, 'mms', 'rtsp' and 'svn'. This |
|
318 | + * covers all common link protocols, except for 'javascript' which should not |
|
319 | + * be allowed for untrusted users. |
|
320 | + * |
|
321 | + * @since 0.1.41 |
|
322 | + * |
|
323 | + * @param string|array $value Content to filter through kses. |
|
324 | + * @param array $input Input Field. |
|
325 | + * @return string Filtered content with only allowed HTML elements. |
|
326 | + */ |
|
327 | + public static function _sanitize_html_field( $value, $input = array() ) { |
|
328 | + if ( $value === '' ) { |
|
329 | + return $value; |
|
330 | + } |
|
331 | + |
|
332 | + $allowed_html = self::kses_allowed_html( 'post', $input ); |
|
333 | + |
|
334 | + if ( ! is_array( $allowed_html ) ) { |
|
335 | + $allowed_html = wp_kses_allowed_html( 'post' ); |
|
336 | + } |
|
337 | + |
|
338 | + $filtered = trim( wp_unslash( $value ) ); |
|
339 | + $filtered = wp_kses( $filtered, $allowed_html ); |
|
340 | + $filtered = balanceTags( $filtered ); // Balances tags |
|
341 | + |
|
342 | + return $filtered; |
|
343 | + } |
|
344 | + |
|
345 | + /** |
|
346 | + * Navigates through an array, object, or scalar, and removes slashes from the values. |
|
347 | + * |
|
348 | + * @since 0.1.41 |
|
349 | + * |
|
350 | + * @param mixed $value The value to be stripped. |
|
351 | + * @param array $input Input Field. |
|
352 | + * @return mixed Stripped value. |
|
353 | + */ |
|
354 | + public static function sanitize_html_field( $value, $input = array() ) { |
|
355 | + $original = $value; |
|
356 | + |
|
357 | + if ( is_array( $value ) ) { |
|
358 | + foreach ( $value as $index => $item ) { |
|
359 | + $value[ $index ] = self::_sanitize_html_field( $value, $input ); |
|
360 | + } |
|
361 | + } elseif ( is_object( $value ) ) { |
|
362 | + $object_vars = get_object_vars( $value ); |
|
363 | + |
|
364 | + foreach ( $object_vars as $property_name => $property_value ) { |
|
365 | + $value->$property_name = self::_sanitize_html_field( $property_value, $input ); |
|
366 | + } |
|
367 | + } else { |
|
368 | + $value = self::_sanitize_html_field( $value, $input ); |
|
369 | + } |
|
370 | + |
|
371 | + /** |
|
372 | + * Filters content and keeps only allowable HTML elements. |
|
373 | + * |
|
374 | + * @since 0.1.41 |
|
375 | + * |
|
376 | + * @param string|array $value Content to filter through kses. |
|
377 | + * @param string|array $value Original content without filter. |
|
378 | + * @param array $input Input Field. |
|
379 | + */ |
|
380 | + return apply_filters( 'ayecode_ui_sanitize_html_field', $value, $original, $input ); |
|
381 | + } |
|
382 | 382 | } |
383 | 383 | \ No newline at end of file |
@@ -13,646 +13,646 @@ discard block |
||
13 | 13 | class GetPaid_Post_Types_Admin { |
14 | 14 | |
15 | 15 | /** |
16 | - * Hook in methods. |
|
17 | - */ |
|
18 | - public static function init() { |
|
19 | - |
|
20 | - // Init metaboxes. |
|
21 | - GetPaid_Metaboxes::init(); |
|
22 | - |
|
23 | - // Filter the post updated messages. |
|
24 | - add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' ); |
|
25 | - |
|
26 | - // Filter post actions. |
|
27 | - add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 ); |
|
28 | - add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 ); |
|
29 | - |
|
30 | - // Invoice table columns. |
|
31 | - add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 ); |
|
32 | - add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 ); |
|
33 | - |
|
34 | - // Items table columns. |
|
35 | - add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 ); |
|
36 | - add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 ); |
|
37 | - add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 ); |
|
38 | - add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 ); |
|
39 | - add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 ); |
|
40 | - add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 ); |
|
41 | - |
|
42 | - // Payment forms columns. |
|
43 | - add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 ); |
|
44 | - add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 ); |
|
45 | - add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 ); |
|
46 | - |
|
47 | - // Discount table columns. |
|
48 | - add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 ); |
|
49 | - add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 ); |
|
50 | - |
|
51 | - // Deleting posts. |
|
52 | - add_action( 'delete_post', array( __CLASS__, 'delete_post' ) ); |
|
53 | - add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 ); |
|
54 | - } |
|
55 | - |
|
56 | - /** |
|
57 | - * Post updated messages. |
|
58 | - */ |
|
59 | - public static function post_updated_messages( $messages ) { |
|
60 | - global $post; |
|
61 | - |
|
62 | - $messages['wpi_discount'] = array( |
|
63 | - 0 => '', |
|
64 | - 1 => __( 'Discount updated.', 'invoicing' ), |
|
65 | - 2 => __( 'Custom field updated.', 'invoicing' ), |
|
66 | - 3 => __( 'Custom field deleted.', 'invoicing' ), |
|
67 | - 4 => __( 'Discount updated.', 'invoicing' ), |
|
68 | - 5 => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, |
|
69 | - 6 => __( 'Discount updated.', 'invoicing' ), |
|
70 | - 7 => __( 'Discount saved.', 'invoicing' ), |
|
71 | - 8 => __( 'Discount submitted.', 'invoicing' ), |
|
72 | - 9 => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ), |
|
73 | - 10 => __( 'Discount draft updated.', 'invoicing' ), |
|
74 | - ); |
|
75 | - |
|
76 | - $messages['wpi_payment_form'] = array( |
|
77 | - 0 => '', |
|
78 | - 1 => __( 'Payment Form updated.', 'invoicing' ), |
|
79 | - 2 => __( 'Custom field updated.', 'invoicing' ), |
|
80 | - 3 => __( 'Custom field deleted.', 'invoicing' ), |
|
81 | - 4 => __( 'Payment Form updated.', 'invoicing' ), |
|
82 | - 5 => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, |
|
83 | - 6 => __( 'Payment Form updated.', 'invoicing' ), |
|
84 | - 7 => __( 'Payment Form saved.', 'invoicing' ), |
|
85 | - 8 => __( 'Payment Form submitted.', 'invoicing' ), |
|
86 | - 9 => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ), |
|
87 | - 10 => __( 'Payment Form draft updated.', 'invoicing' ), |
|
88 | - ); |
|
89 | - |
|
90 | - return $messages; |
|
91 | - |
|
92 | - } |
|
93 | - |
|
94 | - /** |
|
95 | - * Post row actions. |
|
96 | - */ |
|
97 | - public static function post_row_actions( $actions, $post ) { |
|
98 | - |
|
99 | - $post = get_post( $post ); |
|
100 | - |
|
101 | - // We do not want to edit the default payment form. |
|
102 | - if ( 'wpi_payment_form' == $post->post_type && $post->ID == wpinv_get_default_payment_form() ) { |
|
103 | - unset( $actions['trash'] ); |
|
104 | - unset( $actions['inline hide-if-no-js'] ); |
|
105 | - } |
|
106 | - |
|
107 | - return $actions; |
|
108 | - } |
|
109 | - |
|
110 | - /** |
|
16 | + * Hook in methods. |
|
17 | + */ |
|
18 | + public static function init() { |
|
19 | + |
|
20 | + // Init metaboxes. |
|
21 | + GetPaid_Metaboxes::init(); |
|
22 | + |
|
23 | + // Filter the post updated messages. |
|
24 | + add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' ); |
|
25 | + |
|
26 | + // Filter post actions. |
|
27 | + add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 ); |
|
28 | + add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 ); |
|
29 | + |
|
30 | + // Invoice table columns. |
|
31 | + add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 ); |
|
32 | + add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 ); |
|
33 | + |
|
34 | + // Items table columns. |
|
35 | + add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 ); |
|
36 | + add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 ); |
|
37 | + add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 ); |
|
38 | + add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 ); |
|
39 | + add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 ); |
|
40 | + add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 ); |
|
41 | + |
|
42 | + // Payment forms columns. |
|
43 | + add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 ); |
|
44 | + add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 ); |
|
45 | + add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 ); |
|
46 | + |
|
47 | + // Discount table columns. |
|
48 | + add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 ); |
|
49 | + add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 ); |
|
50 | + |
|
51 | + // Deleting posts. |
|
52 | + add_action( 'delete_post', array( __CLASS__, 'delete_post' ) ); |
|
53 | + add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 ); |
|
54 | + } |
|
55 | + |
|
56 | + /** |
|
57 | + * Post updated messages. |
|
58 | + */ |
|
59 | + public static function post_updated_messages( $messages ) { |
|
60 | + global $post; |
|
61 | + |
|
62 | + $messages['wpi_discount'] = array( |
|
63 | + 0 => '', |
|
64 | + 1 => __( 'Discount updated.', 'invoicing' ), |
|
65 | + 2 => __( 'Custom field updated.', 'invoicing' ), |
|
66 | + 3 => __( 'Custom field deleted.', 'invoicing' ), |
|
67 | + 4 => __( 'Discount updated.', 'invoicing' ), |
|
68 | + 5 => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, |
|
69 | + 6 => __( 'Discount updated.', 'invoicing' ), |
|
70 | + 7 => __( 'Discount saved.', 'invoicing' ), |
|
71 | + 8 => __( 'Discount submitted.', 'invoicing' ), |
|
72 | + 9 => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ), |
|
73 | + 10 => __( 'Discount draft updated.', 'invoicing' ), |
|
74 | + ); |
|
75 | + |
|
76 | + $messages['wpi_payment_form'] = array( |
|
77 | + 0 => '', |
|
78 | + 1 => __( 'Payment Form updated.', 'invoicing' ), |
|
79 | + 2 => __( 'Custom field updated.', 'invoicing' ), |
|
80 | + 3 => __( 'Custom field deleted.', 'invoicing' ), |
|
81 | + 4 => __( 'Payment Form updated.', 'invoicing' ), |
|
82 | + 5 => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, |
|
83 | + 6 => __( 'Payment Form updated.', 'invoicing' ), |
|
84 | + 7 => __( 'Payment Form saved.', 'invoicing' ), |
|
85 | + 8 => __( 'Payment Form submitted.', 'invoicing' ), |
|
86 | + 9 => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ), |
|
87 | + 10 => __( 'Payment Form draft updated.', 'invoicing' ), |
|
88 | + ); |
|
89 | + |
|
90 | + return $messages; |
|
91 | + |
|
92 | + } |
|
93 | + |
|
94 | + /** |
|
95 | + * Post row actions. |
|
96 | + */ |
|
97 | + public static function post_row_actions( $actions, $post ) { |
|
98 | + |
|
99 | + $post = get_post( $post ); |
|
100 | + |
|
101 | + // We do not want to edit the default payment form. |
|
102 | + if ( 'wpi_payment_form' == $post->post_type && $post->ID == wpinv_get_default_payment_form() ) { |
|
103 | + unset( $actions['trash'] ); |
|
104 | + unset( $actions['inline hide-if-no-js'] ); |
|
105 | + } |
|
106 | + |
|
107 | + return $actions; |
|
108 | + } |
|
109 | + |
|
110 | + /** |
|
111 | 111 | * Remove bulk edit option from admin side quote listing |
112 | 112 | * |
113 | 113 | * @since 1.0.0 |
114 | 114 | * @param array $actions post actions |
115 | - * @param WP_Post $post |
|
115 | + * @param WP_Post $post |
|
116 | 116 | * @return array $actions actions without edit option |
117 | 117 | */ |
118 | 118 | public static function filter_invoice_row_actions( $actions, $post ) { |
119 | 119 | |
120 | 120 | if ( getpaid_is_invoice_post_type( $post->post_type ) ) { |
121 | 121 | |
122 | - $actions = array(); |
|
123 | - $invoice = new WPInv_Invoice( $post ); |
|
124 | - |
|
125 | - $actions['edit'] = sprintf( |
|
126 | - '<a href="%1$s">%2$s</a>', |
|
127 | - esc_url( get_edit_post_link( $invoice->get_id() ) ), |
|
128 | - esc_html( __( 'Edit', 'invoicing' ) ) |
|
129 | - ); |
|
130 | - |
|
131 | - if ( ! $invoice->is_draft() ) { |
|
132 | - |
|
133 | - $actions['view'] = sprintf( |
|
134 | - '<a href="%1$s">%2$s</a>', |
|
135 | - esc_url( $invoice->get_view_url() ), |
|
136 | - sprintf( |
|
137 | - esc_html( __( 'View %s', 'invoicing' ) ), |
|
138 | - getpaid_get_post_type_label( $invoice->get_post_type(), false ) |
|
139 | - ) |
|
140 | - ); |
|
141 | - |
|
142 | - $actions['send'] = sprintf( |
|
143 | - '<a href="%1$s">%2$s</a>', |
|
144 | - esc_url( |
|
145 | - wp_nonce_url( |
|
146 | - add_query_arg( |
|
147 | - array( |
|
148 | - 'getpaid-admin-action' => 'send_invoice', |
|
149 | - 'invoice_id' => $invoice->get_id() |
|
150 | - ) |
|
151 | - ), |
|
152 | - 'getpaid-nonce', |
|
153 | - 'getpaid-nonce' |
|
154 | - ) |
|
155 | - ), |
|
156 | - esc_html( __( 'Send to Customer', 'invoicing' ) ) |
|
157 | - ); |
|
158 | - |
|
159 | - } |
|
122 | + $actions = array(); |
|
123 | + $invoice = new WPInv_Invoice( $post ); |
|
124 | + |
|
125 | + $actions['edit'] = sprintf( |
|
126 | + '<a href="%1$s">%2$s</a>', |
|
127 | + esc_url( get_edit_post_link( $invoice->get_id() ) ), |
|
128 | + esc_html( __( 'Edit', 'invoicing' ) ) |
|
129 | + ); |
|
130 | + |
|
131 | + if ( ! $invoice->is_draft() ) { |
|
132 | + |
|
133 | + $actions['view'] = sprintf( |
|
134 | + '<a href="%1$s">%2$s</a>', |
|
135 | + esc_url( $invoice->get_view_url() ), |
|
136 | + sprintf( |
|
137 | + esc_html( __( 'View %s', 'invoicing' ) ), |
|
138 | + getpaid_get_post_type_label( $invoice->get_post_type(), false ) |
|
139 | + ) |
|
140 | + ); |
|
141 | + |
|
142 | + $actions['send'] = sprintf( |
|
143 | + '<a href="%1$s">%2$s</a>', |
|
144 | + esc_url( |
|
145 | + wp_nonce_url( |
|
146 | + add_query_arg( |
|
147 | + array( |
|
148 | + 'getpaid-admin-action' => 'send_invoice', |
|
149 | + 'invoice_id' => $invoice->get_id() |
|
150 | + ) |
|
151 | + ), |
|
152 | + 'getpaid-nonce', |
|
153 | + 'getpaid-nonce' |
|
154 | + ) |
|
155 | + ), |
|
156 | + esc_html( __( 'Send to Customer', 'invoicing' ) ) |
|
157 | + ); |
|
158 | + |
|
159 | + } |
|
160 | 160 | |
161 | 161 | } |
162 | 162 | |
163 | 163 | return $actions; |
164 | - } |
|
165 | - |
|
166 | - /** |
|
167 | - * Returns an array of invoice table columns. |
|
168 | - */ |
|
169 | - public static function invoice_columns( $columns ) { |
|
170 | - |
|
171 | - $columns = array( |
|
172 | - 'cb' => $columns['cb'], |
|
173 | - 'number' => __( 'Invoice', 'invoicing' ), |
|
174 | - 'customer' => __( 'Customer', 'invoicing' ), |
|
175 | - 'invoice_date' => __( 'Created', 'invoicing' ), |
|
176 | - 'payment_date' => __( 'Completed', 'invoicing' ), |
|
177 | - 'amount' => __( 'Amount', 'invoicing' ), |
|
178 | - 'recurring' => __( 'Recurring', 'invoicing' ), |
|
179 | - 'status' => __( 'Status', 'invoicing' ), |
|
180 | - ); |
|
181 | - |
|
182 | - return apply_filters( 'wpi_invoice_table_columns', $columns ); |
|
183 | - } |
|
184 | - |
|
185 | - /** |
|
186 | - * Displays invoice table columns. |
|
187 | - */ |
|
188 | - public static function display_invoice_columns( $column_name, $post_id ) { |
|
189 | - |
|
190 | - $invoice = new WPInv_Invoice( $post_id ); |
|
191 | - |
|
192 | - switch ( $column_name ) { |
|
193 | - |
|
194 | - case 'invoice_date' : |
|
195 | - $date_time = esc_attr( $invoice->get_created_date() ); |
|
196 | - $date = getpaid_format_date_value( $date_time, "—", true ); |
|
197 | - echo "<span title='$date_time'>$date</span>"; |
|
198 | - break; |
|
199 | - |
|
200 | - case 'payment_date' : |
|
201 | - |
|
202 | - if ( $invoice->is_paid() ) { |
|
203 | - $date_time = esc_attr( $invoice->get_completed_date() ); |
|
204 | - $date = getpaid_format_date_value( $date_time, "—", true ); |
|
205 | - echo "<span title='$date_time'>$date</span>"; |
|
206 | - } else { |
|
207 | - echo "—"; |
|
208 | - } |
|
164 | + } |
|
165 | + |
|
166 | + /** |
|
167 | + * Returns an array of invoice table columns. |
|
168 | + */ |
|
169 | + public static function invoice_columns( $columns ) { |
|
170 | + |
|
171 | + $columns = array( |
|
172 | + 'cb' => $columns['cb'], |
|
173 | + 'number' => __( 'Invoice', 'invoicing' ), |
|
174 | + 'customer' => __( 'Customer', 'invoicing' ), |
|
175 | + 'invoice_date' => __( 'Created', 'invoicing' ), |
|
176 | + 'payment_date' => __( 'Completed', 'invoicing' ), |
|
177 | + 'amount' => __( 'Amount', 'invoicing' ), |
|
178 | + 'recurring' => __( 'Recurring', 'invoicing' ), |
|
179 | + 'status' => __( 'Status', 'invoicing' ), |
|
180 | + ); |
|
181 | + |
|
182 | + return apply_filters( 'wpi_invoice_table_columns', $columns ); |
|
183 | + } |
|
184 | + |
|
185 | + /** |
|
186 | + * Displays invoice table columns. |
|
187 | + */ |
|
188 | + public static function display_invoice_columns( $column_name, $post_id ) { |
|
189 | + |
|
190 | + $invoice = new WPInv_Invoice( $post_id ); |
|
191 | + |
|
192 | + switch ( $column_name ) { |
|
193 | + |
|
194 | + case 'invoice_date' : |
|
195 | + $date_time = esc_attr( $invoice->get_created_date() ); |
|
196 | + $date = getpaid_format_date_value( $date_time, "—", true ); |
|
197 | + echo "<span title='$date_time'>$date</span>"; |
|
198 | + break; |
|
199 | + |
|
200 | + case 'payment_date' : |
|
201 | + |
|
202 | + if ( $invoice->is_paid() ) { |
|
203 | + $date_time = esc_attr( $invoice->get_completed_date() ); |
|
204 | + $date = getpaid_format_date_value( $date_time, "—", true ); |
|
205 | + echo "<span title='$date_time'>$date</span>"; |
|
206 | + } else { |
|
207 | + echo "—"; |
|
208 | + } |
|
209 | 209 | |
210 | - break; |
|
210 | + break; |
|
211 | 211 | |
212 | - case 'amount' : |
|
212 | + case 'amount' : |
|
213 | 213 | |
214 | - $amount = $invoice->get_total(); |
|
215 | - $formated_amount = wpinv_price( $amount, $invoice->get_currency() ); |
|
214 | + $amount = $invoice->get_total(); |
|
215 | + $formated_amount = wpinv_price( $amount, $invoice->get_currency() ); |
|
216 | 216 | |
217 | - if ( $invoice->is_refunded() ) { |
|
218 | - $refunded_amount = wpinv_price( 0, $invoice->get_currency() ); |
|
219 | - echo "<del>$formated_amount</del> <ins>$refunded_amount</ins>"; |
|
220 | - } else { |
|
217 | + if ( $invoice->is_refunded() ) { |
|
218 | + $refunded_amount = wpinv_price( 0, $invoice->get_currency() ); |
|
219 | + echo "<del>$formated_amount</del> <ins>$refunded_amount</ins>"; |
|
220 | + } else { |
|
221 | 221 | |
222 | - $discount = $invoice->get_total_discount(); |
|
222 | + $discount = $invoice->get_total_discount(); |
|
223 | 223 | |
224 | - if ( ! empty( $discount ) ) { |
|
225 | - $new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() ); |
|
226 | - echo "<del>$new_amount</del> <ins>$formated_amount</ins>"; |
|
227 | - } else { |
|
228 | - echo $formated_amount; |
|
229 | - } |
|
224 | + if ( ! empty( $discount ) ) { |
|
225 | + $new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() ); |
|
226 | + echo "<del>$new_amount</del> <ins>$formated_amount</ins>"; |
|
227 | + } else { |
|
228 | + echo $formated_amount; |
|
229 | + } |
|
230 | 230 | |
231 | - } |
|
231 | + } |
|
232 | 232 | |
233 | - break; |
|
233 | + break; |
|
234 | 234 | |
235 | - case 'status' : |
|
236 | - $status = sanitize_text_field( $invoice->get_status() ); |
|
237 | - $status_label = sanitize_text_field( $invoice->get_status_nicename() ); |
|
235 | + case 'status' : |
|
236 | + $status = sanitize_text_field( $invoice->get_status() ); |
|
237 | + $status_label = sanitize_text_field( $invoice->get_status_nicename() ); |
|
238 | 238 | |
239 | - // If it is paid, show the gateway title. |
|
240 | - if ( $invoice->is_paid() ) { |
|
241 | - $gateway = sanitize_text_field( $invoice->get_gateway_title() ); |
|
242 | - $gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), $gateway ); |
|
239 | + // If it is paid, show the gateway title. |
|
240 | + if ( $invoice->is_paid() ) { |
|
241 | + $gateway = sanitize_text_field( $invoice->get_gateway_title() ); |
|
242 | + $gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), $gateway ); |
|
243 | 243 | |
244 | - echo "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>"; |
|
245 | - } else { |
|
246 | - echo "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>"; |
|
247 | - } |
|
244 | + echo "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>"; |
|
245 | + } else { |
|
246 | + echo "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>"; |
|
247 | + } |
|
248 | 248 | |
249 | - // If it is not paid, display the overdue and view status. |
|
250 | - if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) { |
|
249 | + // If it is not paid, display the overdue and view status. |
|
250 | + if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) { |
|
251 | 251 | |
252 | - // Invoice view status. |
|
253 | - if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) { |
|
254 | - echo ' <i class="fa fa-eye wpi-help-tip" title="'. esc_attr__( 'Viewed by Customer', 'invoicing' ).'"></i>'; |
|
255 | - } else { |
|
256 | - echo ' <i class="fa fa-eye-slash wpi-help-tip" title="'. esc_attr__( 'Not Viewed by Customer', 'invoicing' ).'"></i>'; |
|
257 | - } |
|
252 | + // Invoice view status. |
|
253 | + if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) { |
|
254 | + echo ' <i class="fa fa-eye wpi-help-tip" title="'. esc_attr__( 'Viewed by Customer', 'invoicing' ).'"></i>'; |
|
255 | + } else { |
|
256 | + echo ' <i class="fa fa-eye-slash wpi-help-tip" title="'. esc_attr__( 'Not Viewed by Customer', 'invoicing' ).'"></i>'; |
|
257 | + } |
|
258 | 258 | |
259 | - // Display the overview status. |
|
260 | - if ( wpinv_get_option( 'overdue_active' ) ) { |
|
261 | - $due_date = $invoice->get_due_date(); |
|
262 | - $fomatted = getpaid_format_date( $due_date ); |
|
259 | + // Display the overview status. |
|
260 | + if ( wpinv_get_option( 'overdue_active' ) ) { |
|
261 | + $due_date = $invoice->get_due_date(); |
|
262 | + $fomatted = getpaid_format_date( $due_date ); |
|
263 | 263 | |
264 | - if ( ! empty( $fomatted ) ) { |
|
265 | - $date = wp_sprintf( __( 'Due %s', 'invoicing' ), $fomatted ); |
|
266 | - echo "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>"; |
|
267 | - } |
|
268 | - } |
|
264 | + if ( ! empty( $fomatted ) ) { |
|
265 | + $date = wp_sprintf( __( 'Due %s', 'invoicing' ), $fomatted ); |
|
266 | + echo "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>"; |
|
267 | + } |
|
268 | + } |
|
269 | 269 | |
270 | - } |
|
270 | + } |
|
271 | 271 | |
272 | - break; |
|
272 | + break; |
|
273 | 273 | |
274 | - case 'recurring': |
|
274 | + case 'recurring': |
|
275 | 275 | |
276 | - if ( $invoice->is_recurring() ) { |
|
277 | - echo '<i class="fa fa-check" style="color:#43850a;"></i>'; |
|
278 | - } else { |
|
279 | - echo '<i class="fa fa-times" style="color:#616161;"></i>'; |
|
280 | - } |
|
281 | - break; |
|
276 | + if ( $invoice->is_recurring() ) { |
|
277 | + echo '<i class="fa fa-check" style="color:#43850a;"></i>'; |
|
278 | + } else { |
|
279 | + echo '<i class="fa fa-times" style="color:#616161;"></i>'; |
|
280 | + } |
|
281 | + break; |
|
282 | 282 | |
283 | - case 'number' : |
|
283 | + case 'number' : |
|
284 | 284 | |
285 | - $edit_link = esc_url( get_edit_post_link( $invoice->get_id() ) ); |
|
286 | - $invoice_number = sanitize_text_field( $invoice->get_number() ); |
|
287 | - $invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' ); |
|
285 | + $edit_link = esc_url( get_edit_post_link( $invoice->get_id() ) ); |
|
286 | + $invoice_number = sanitize_text_field( $invoice->get_number() ); |
|
287 | + $invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' ); |
|
288 | 288 | |
289 | - echo "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>"; |
|
289 | + echo "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>"; |
|
290 | 290 | |
291 | - break; |
|
291 | + break; |
|
292 | 292 | |
293 | - case 'customer' : |
|
293 | + case 'customer' : |
|
294 | 294 | |
295 | - $customer_name = $invoice->get_user_full_name(); |
|
295 | + $customer_name = $invoice->get_user_full_name(); |
|
296 | 296 | |
297 | - if ( empty( $customer_name ) ) { |
|
298 | - $customer_name = $invoice->get_email(); |
|
299 | - } |
|
297 | + if ( empty( $customer_name ) ) { |
|
298 | + $customer_name = $invoice->get_email(); |
|
299 | + } |
|
300 | 300 | |
301 | - if ( ! empty( $customer_name ) ) { |
|
302 | - $customer_details = esc_attr__( 'View Customer Details', 'invoicing' ); |
|
303 | - $view_link = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) ); |
|
304 | - echo "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>"; |
|
305 | - } else { |
|
306 | - echo '<div>—</div>'; |
|
307 | - } |
|
301 | + if ( ! empty( $customer_name ) ) { |
|
302 | + $customer_details = esc_attr__( 'View Customer Details', 'invoicing' ); |
|
303 | + $view_link = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) ); |
|
304 | + echo "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>"; |
|
305 | + } else { |
|
306 | + echo '<div>—</div>'; |
|
307 | + } |
|
308 | 308 | |
309 | - break; |
|
309 | + break; |
|
310 | 310 | |
311 | - } |
|
311 | + } |
|
312 | 312 | |
313 | - } |
|
313 | + } |
|
314 | 314 | |
315 | - /** |
|
316 | - * Returns an array of payment forms table columns. |
|
317 | - */ |
|
318 | - public static function payment_form_columns( $columns ) { |
|
315 | + /** |
|
316 | + * Returns an array of payment forms table columns. |
|
317 | + */ |
|
318 | + public static function payment_form_columns( $columns ) { |
|
319 | 319 | |
320 | - $columns = array( |
|
321 | - 'cb' => $columns['cb'], |
|
322 | - 'title' => __( 'Name', 'invoicing' ), |
|
323 | - 'shortcode' => __( 'Shortcode', 'invoicing' ), |
|
324 | - 'earnings' => __( 'Revenue', 'invoicing' ), |
|
325 | - 'refunds' => __( 'Refunded', 'invoicing' ), |
|
326 | - 'items' => __( 'Items', 'invoicing' ), |
|
327 | - 'date' => __( 'Date', 'invoicing' ), |
|
328 | - ); |
|
320 | + $columns = array( |
|
321 | + 'cb' => $columns['cb'], |
|
322 | + 'title' => __( 'Name', 'invoicing' ), |
|
323 | + 'shortcode' => __( 'Shortcode', 'invoicing' ), |
|
324 | + 'earnings' => __( 'Revenue', 'invoicing' ), |
|
325 | + 'refunds' => __( 'Refunded', 'invoicing' ), |
|
326 | + 'items' => __( 'Items', 'invoicing' ), |
|
327 | + 'date' => __( 'Date', 'invoicing' ), |
|
328 | + ); |
|
329 | 329 | |
330 | - return apply_filters( 'wpi_payment_form_table_columns', $columns ); |
|
330 | + return apply_filters( 'wpi_payment_form_table_columns', $columns ); |
|
331 | 331 | |
332 | - } |
|
332 | + } |
|
333 | 333 | |
334 | - /** |
|
335 | - * Displays payment form table columns. |
|
336 | - */ |
|
337 | - public static function display_payment_form_columns( $column_name, $post_id ) { |
|
334 | + /** |
|
335 | + * Displays payment form table columns. |
|
336 | + */ |
|
337 | + public static function display_payment_form_columns( $column_name, $post_id ) { |
|
338 | 338 | |
339 | - // Retrieve the payment form. |
|
340 | - $form = new GetPaid_Payment_Form( $post_id ); |
|
339 | + // Retrieve the payment form. |
|
340 | + $form = new GetPaid_Payment_Form( $post_id ); |
|
341 | 341 | |
342 | - switch ( $column_name ) { |
|
342 | + switch ( $column_name ) { |
|
343 | 343 | |
344 | - case 'earnings' : |
|
345 | - echo wpinv_price( $form->get_earned() ); |
|
346 | - break; |
|
344 | + case 'earnings' : |
|
345 | + echo wpinv_price( $form->get_earned() ); |
|
346 | + break; |
|
347 | 347 | |
348 | - case 'refunds' : |
|
349 | - echo wpinv_price( $form->get_refunded() ); |
|
350 | - break; |
|
348 | + case 'refunds' : |
|
349 | + echo wpinv_price( $form->get_refunded() ); |
|
350 | + break; |
|
351 | 351 | |
352 | - case 'refunds' : |
|
353 | - echo wpinv_price( $form->get_refunded() ); |
|
354 | - break; |
|
352 | + case 'refunds' : |
|
353 | + echo wpinv_price( $form->get_refunded() ); |
|
354 | + break; |
|
355 | 355 | |
356 | - case 'shortcode' : |
|
356 | + case 'shortcode' : |
|
357 | 357 | |
358 | - if ( $form->is_default() ) { |
|
359 | - echo '—'; |
|
360 | - } else { |
|
361 | - echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>'; |
|
362 | - } |
|
358 | + if ( $form->is_default() ) { |
|
359 | + echo '—'; |
|
360 | + } else { |
|
361 | + echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>'; |
|
362 | + } |
|
363 | 363 | |
364 | - break; |
|
364 | + break; |
|
365 | 365 | |
366 | - case 'items' : |
|
366 | + case 'items' : |
|
367 | 367 | |
368 | - $items = $form->get_items(); |
|
368 | + $items = $form->get_items(); |
|
369 | 369 | |
370 | - if ( $form->is_default() || empty( $items ) ) { |
|
371 | - echo '—'; |
|
372 | - return; |
|
373 | - } |
|
370 | + if ( $form->is_default() || empty( $items ) ) { |
|
371 | + echo '—'; |
|
372 | + return; |
|
373 | + } |
|
374 | 374 | |
375 | - $_items = array(); |
|
375 | + $_items = array(); |
|
376 | 376 | |
377 | - foreach ( $items as $item ) { |
|
378 | - $url = $item->get_edit_url(); |
|
377 | + foreach ( $items as $item ) { |
|
378 | + $url = $item->get_edit_url(); |
|
379 | 379 | |
380 | - if ( empty( $url ) ) { |
|
381 | - $_items[] = sanitize_text_field( $item->get_name() ); |
|
382 | - } else { |
|
383 | - $_items[] = sprintf( |
|
384 | - '<a href="%s">%s</a>', |
|
385 | - esc_url( $url ), |
|
386 | - sanitize_text_field( $item->get_name() ) |
|
387 | - ); |
|
388 | - } |
|
380 | + if ( empty( $url ) ) { |
|
381 | + $_items[] = sanitize_text_field( $item->get_name() ); |
|
382 | + } else { |
|
383 | + $_items[] = sprintf( |
|
384 | + '<a href="%s">%s</a>', |
|
385 | + esc_url( $url ), |
|
386 | + sanitize_text_field( $item->get_name() ) |
|
387 | + ); |
|
388 | + } |
|
389 | 389 | |
390 | - } |
|
390 | + } |
|
391 | 391 | |
392 | - echo implode( '<br>', $_items ); |
|
392 | + echo implode( '<br>', $_items ); |
|
393 | 393 | |
394 | - break; |
|
394 | + break; |
|
395 | 395 | |
396 | - } |
|
396 | + } |
|
397 | 397 | |
398 | - } |
|
398 | + } |
|
399 | 399 | |
400 | - /** |
|
401 | - * Filters post states. |
|
402 | - */ |
|
403 | - public static function filter_payment_form_state( $post_states, $post ) { |
|
400 | + /** |
|
401 | + * Filters post states. |
|
402 | + */ |
|
403 | + public static function filter_payment_form_state( $post_states, $post ) { |
|
404 | 404 | |
405 | - if ( 'wpi_payment_form' == $post->post_type && wpinv_get_default_payment_form() == $post->ID ) { |
|
406 | - $post_states[ 'default_form' ] = __( 'Default Payment Form', 'invoicing' ); |
|
407 | - } |
|
405 | + if ( 'wpi_payment_form' == $post->post_type && wpinv_get_default_payment_form() == $post->ID ) { |
|
406 | + $post_states[ 'default_form' ] = __( 'Default Payment Form', 'invoicing' ); |
|
407 | + } |
|
408 | 408 | |
409 | - return $post_states; |
|
410 | - |
|
411 | - } |
|
412 | - |
|
413 | - /** |
|
414 | - * Returns an array of coupon table columns. |
|
415 | - */ |
|
416 | - public static function discount_columns( $columns ) { |
|
417 | - |
|
418 | - $columns = array( |
|
419 | - 'cb' => $columns['cb'], |
|
420 | - 'title' => __( 'Name', 'invoicing' ), |
|
421 | - 'code' => __( 'Code', 'invoicing' ), |
|
422 | - 'amount' => __( 'Amount', 'invoicing' ), |
|
423 | - 'usage' => __( 'Usage / Limit', 'invoicing' ), |
|
424 | - 'start_date' => __( 'Start Date', 'invoicing' ), |
|
425 | - 'expiry_date' => __( 'Expiry Date', 'invoicing' ), |
|
426 | - ); |
|
427 | - |
|
428 | - return apply_filters( 'wpi_discount_table_columns', $columns ); |
|
429 | - } |
|
430 | - |
|
431 | - /** |
|
432 | - * Filters post states. |
|
433 | - */ |
|
434 | - public static function filter_discount_state( $post_states, $post ) { |
|
435 | - |
|
436 | - if ( 'wpi_discount' == $post->post_type ) { |
|
437 | - |
|
438 | - $discount = new WPInv_Discount( $post ); |
|
439 | - |
|
440 | - $status = $discount->is_expired() ? 'expired' : $discount->get_status(); |
|
441 | - |
|
442 | - if ( $status != 'publish' ) { |
|
443 | - return array( |
|
444 | - 'discount_status' => wpinv_discount_status( $status ), |
|
445 | - ); |
|
446 | - } |
|
447 | - |
|
448 | - return array(); |
|
449 | - |
|
450 | - } |
|
451 | - |
|
452 | - return $post_states; |
|
453 | - |
|
454 | - } |
|
455 | - |
|
456 | - /** |
|
457 | - * Returns an array of items table columns. |
|
458 | - */ |
|
459 | - public static function item_columns( $columns ) { |
|
460 | - |
|
461 | - $columns = array( |
|
462 | - 'cb' => $columns['cb'], |
|
463 | - 'title' => __( 'Name', 'invoicing' ), |
|
464 | - 'price' => __( 'Price', 'invoicing' ), |
|
465 | - 'vat_rule' => __( 'VAT rule', 'invoicing' ), |
|
466 | - 'vat_class' => __( 'VAT class', 'invoicing' ), |
|
467 | - 'type' => __( 'Type', 'invoicing' ), |
|
468 | - 'shortcode' => __( 'Shortcode', 'invoicing' ), |
|
469 | - ); |
|
470 | - |
|
471 | - if ( ! wpinv_use_taxes() ) { |
|
472 | - unset( $columns['vat_rule'] ); |
|
473 | - unset( $columns['vat_class'] ); |
|
474 | - } |
|
475 | - |
|
476 | - return apply_filters( 'wpi_item_table_columns', $columns ); |
|
477 | - } |
|
478 | - |
|
479 | - /** |
|
480 | - * Returns an array of sortable items table columns. |
|
481 | - */ |
|
482 | - public static function sortable_item_columns( $columns ) { |
|
483 | - |
|
484 | - return array_merge( |
|
485 | - $columns, |
|
486 | - array( |
|
487 | - 'price' => 'price', |
|
488 | - 'vat_rule' => 'vat_rule', |
|
489 | - 'vat_class' => 'vat_class', |
|
490 | - 'type' => 'type', |
|
491 | - ) |
|
492 | - ); |
|
493 | - |
|
494 | - } |
|
495 | - |
|
496 | - /** |
|
497 | - * Displays items table columns. |
|
498 | - */ |
|
499 | - public static function display_item_columns( $column_name, $post_id ) { |
|
409 | + return $post_states; |
|
410 | + |
|
411 | + } |
|
412 | + |
|
413 | + /** |
|
414 | + * Returns an array of coupon table columns. |
|
415 | + */ |
|
416 | + public static function discount_columns( $columns ) { |
|
417 | + |
|
418 | + $columns = array( |
|
419 | + 'cb' => $columns['cb'], |
|
420 | + 'title' => __( 'Name', 'invoicing' ), |
|
421 | + 'code' => __( 'Code', 'invoicing' ), |
|
422 | + 'amount' => __( 'Amount', 'invoicing' ), |
|
423 | + 'usage' => __( 'Usage / Limit', 'invoicing' ), |
|
424 | + 'start_date' => __( 'Start Date', 'invoicing' ), |
|
425 | + 'expiry_date' => __( 'Expiry Date', 'invoicing' ), |
|
426 | + ); |
|
427 | + |
|
428 | + return apply_filters( 'wpi_discount_table_columns', $columns ); |
|
429 | + } |
|
430 | + |
|
431 | + /** |
|
432 | + * Filters post states. |
|
433 | + */ |
|
434 | + public static function filter_discount_state( $post_states, $post ) { |
|
435 | + |
|
436 | + if ( 'wpi_discount' == $post->post_type ) { |
|
437 | + |
|
438 | + $discount = new WPInv_Discount( $post ); |
|
439 | + |
|
440 | + $status = $discount->is_expired() ? 'expired' : $discount->get_status(); |
|
441 | + |
|
442 | + if ( $status != 'publish' ) { |
|
443 | + return array( |
|
444 | + 'discount_status' => wpinv_discount_status( $status ), |
|
445 | + ); |
|
446 | + } |
|
447 | + |
|
448 | + return array(); |
|
449 | + |
|
450 | + } |
|
451 | + |
|
452 | + return $post_states; |
|
453 | + |
|
454 | + } |
|
455 | + |
|
456 | + /** |
|
457 | + * Returns an array of items table columns. |
|
458 | + */ |
|
459 | + public static function item_columns( $columns ) { |
|
460 | + |
|
461 | + $columns = array( |
|
462 | + 'cb' => $columns['cb'], |
|
463 | + 'title' => __( 'Name', 'invoicing' ), |
|
464 | + 'price' => __( 'Price', 'invoicing' ), |
|
465 | + 'vat_rule' => __( 'VAT rule', 'invoicing' ), |
|
466 | + 'vat_class' => __( 'VAT class', 'invoicing' ), |
|
467 | + 'type' => __( 'Type', 'invoicing' ), |
|
468 | + 'shortcode' => __( 'Shortcode', 'invoicing' ), |
|
469 | + ); |
|
470 | + |
|
471 | + if ( ! wpinv_use_taxes() ) { |
|
472 | + unset( $columns['vat_rule'] ); |
|
473 | + unset( $columns['vat_class'] ); |
|
474 | + } |
|
475 | + |
|
476 | + return apply_filters( 'wpi_item_table_columns', $columns ); |
|
477 | + } |
|
478 | + |
|
479 | + /** |
|
480 | + * Returns an array of sortable items table columns. |
|
481 | + */ |
|
482 | + public static function sortable_item_columns( $columns ) { |
|
483 | + |
|
484 | + return array_merge( |
|
485 | + $columns, |
|
486 | + array( |
|
487 | + 'price' => 'price', |
|
488 | + 'vat_rule' => 'vat_rule', |
|
489 | + 'vat_class' => 'vat_class', |
|
490 | + 'type' => 'type', |
|
491 | + ) |
|
492 | + ); |
|
493 | + |
|
494 | + } |
|
495 | + |
|
496 | + /** |
|
497 | + * Displays items table columns. |
|
498 | + */ |
|
499 | + public static function display_item_columns( $column_name, $post_id ) { |
|
500 | 500 | |
501 | - $item = new WPInv_Item( $post_id ); |
|
501 | + $item = new WPInv_Item( $post_id ); |
|
502 | 502 | |
503 | - switch ( $column_name ) { |
|
503 | + switch ( $column_name ) { |
|
504 | 504 | |
505 | - case 'price' : |
|
505 | + case 'price' : |
|
506 | 506 | |
507 | - if ( ! $item->is_recurring() ) { |
|
508 | - echo $item->get_the_price(); |
|
509 | - break; |
|
510 | - } |
|
507 | + if ( ! $item->is_recurring() ) { |
|
508 | + echo $item->get_the_price(); |
|
509 | + break; |
|
510 | + } |
|
511 | 511 | |
512 | - $price = wp_sprintf( |
|
513 | - __( '%s / %s', 'invoicing' ), |
|
514 | - $item->get_the_price(), |
|
515 | - getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' ) |
|
516 | - ); |
|
512 | + $price = wp_sprintf( |
|
513 | + __( '%s / %s', 'invoicing' ), |
|
514 | + $item->get_the_price(), |
|
515 | + getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' ) |
|
516 | + ); |
|
517 | 517 | |
518 | - if ( $item->get_the_price() == $item->get_the_initial_price() ) { |
|
519 | - echo $price; |
|
520 | - break; |
|
521 | - } |
|
518 | + if ( $item->get_the_price() == $item->get_the_initial_price() ) { |
|
519 | + echo $price; |
|
520 | + break; |
|
521 | + } |
|
522 | 522 | |
523 | - echo $item->get_the_initial_price(); |
|
523 | + echo $item->get_the_initial_price(); |
|
524 | 524 | |
525 | - echo '<span class="meta">' . wp_sprintf( __( 'then %s', 'invoicing' ), $price ) .'</span>'; |
|
526 | - break; |
|
525 | + echo '<span class="meta">' . wp_sprintf( __( 'then %s', 'invoicing' ), $price ) .'</span>'; |
|
526 | + break; |
|
527 | 527 | |
528 | - case 'vat_rule' : |
|
529 | - echo getpaid_get_tax_rule_label( $item->get_vat_rule() ); |
|
530 | - break; |
|
528 | + case 'vat_rule' : |
|
529 | + echo getpaid_get_tax_rule_label( $item->get_vat_rule() ); |
|
530 | + break; |
|
531 | 531 | |
532 | - case 'vat_class' : |
|
533 | - echo getpaid_get_tax_class_label( $item->get_vat_class() ); |
|
534 | - break; |
|
532 | + case 'vat_class' : |
|
533 | + echo getpaid_get_tax_class_label( $item->get_vat_class() ); |
|
534 | + break; |
|
535 | 535 | |
536 | - case 'shortcode' : |
|
537 | - echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>'; |
|
538 | - break; |
|
536 | + case 'shortcode' : |
|
537 | + echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>'; |
|
538 | + break; |
|
539 | 539 | |
540 | - case 'type' : |
|
541 | - echo wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>'; |
|
542 | - break; |
|
540 | + case 'type' : |
|
541 | + echo wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>'; |
|
542 | + break; |
|
543 | 543 | |
544 | - } |
|
544 | + } |
|
545 | 545 | |
546 | - } |
|
546 | + } |
|
547 | 547 | |
548 | - /** |
|
549 | - * Lets users filter items using taxes. |
|
550 | - */ |
|
551 | - public static function add_item_filters( $post_type ) { |
|
548 | + /** |
|
549 | + * Lets users filter items using taxes. |
|
550 | + */ |
|
551 | + public static function add_item_filters( $post_type ) { |
|
552 | 552 | |
553 | - // Abort if we're not dealing with items. |
|
554 | - if ( $post_type != 'wpi_item' ) { |
|
555 | - return; |
|
556 | - } |
|
553 | + // Abort if we're not dealing with items. |
|
554 | + if ( $post_type != 'wpi_item' ) { |
|
555 | + return; |
|
556 | + } |
|
557 | 557 | |
558 | - // Filter by vat rules. |
|
559 | - if ( wpinv_use_taxes() ) { |
|
558 | + // Filter by vat rules. |
|
559 | + if ( wpinv_use_taxes() ) { |
|
560 | 560 | |
561 | - // Sanitize selected vat rule. |
|
562 | - $vat_rule = ''; |
|
563 | - $vat_rules = getpaid_get_tax_rules(); |
|
564 | - if ( isset( $_GET['vat_rule'] ) ) { |
|
565 | - $vat_rule = $_GET['vat_rule']; |
|
566 | - } |
|
567 | - |
|
568 | - // Filter by VAT rule. |
|
569 | - echo wpinv_html_select( |
|
570 | - array( |
|
571 | - 'options' => array_merge( |
|
572 | - array( |
|
573 | - '' => __( 'All VAT rules', 'invoicing' ) |
|
574 | - ), |
|
575 | - $vat_rules |
|
576 | - ), |
|
577 | - 'name' => 'vat_rule', |
|
578 | - 'id' => 'vat_rule', |
|
579 | - 'selected' => in_array( $vat_rule, array_keys( $vat_rules ) ) ? $vat_rule : '', |
|
580 | - 'show_option_all' => false, |
|
581 | - 'show_option_none' => false, |
|
582 | - ) |
|
583 | - ); |
|
584 | - |
|
585 | - // Filter by VAT class. |
|
561 | + // Sanitize selected vat rule. |
|
562 | + $vat_rule = ''; |
|
563 | + $vat_rules = getpaid_get_tax_rules(); |
|
564 | + if ( isset( $_GET['vat_rule'] ) ) { |
|
565 | + $vat_rule = $_GET['vat_rule']; |
|
566 | + } |
|
567 | + |
|
568 | + // Filter by VAT rule. |
|
569 | + echo wpinv_html_select( |
|
570 | + array( |
|
571 | + 'options' => array_merge( |
|
572 | + array( |
|
573 | + '' => __( 'All VAT rules', 'invoicing' ) |
|
574 | + ), |
|
575 | + $vat_rules |
|
576 | + ), |
|
577 | + 'name' => 'vat_rule', |
|
578 | + 'id' => 'vat_rule', |
|
579 | + 'selected' => in_array( $vat_rule, array_keys( $vat_rules ) ) ? $vat_rule : '', |
|
580 | + 'show_option_all' => false, |
|
581 | + 'show_option_none' => false, |
|
582 | + ) |
|
583 | + ); |
|
584 | + |
|
585 | + // Filter by VAT class. |
|
586 | 586 | |
587 | - // Sanitize selected vat rule. |
|
588 | - $vat_class = ''; |
|
589 | - $vat_classes = getpaid_get_tax_classes(); |
|
590 | - if ( isset( $_GET['vat_class'] ) ) { |
|
591 | - $vat_class = $_GET['vat_class']; |
|
592 | - } |
|
593 | - |
|
594 | - echo wpinv_html_select( |
|
595 | - array( |
|
596 | - 'options' => array_merge( |
|
597 | - array( |
|
598 | - '' => __( 'All VAT classes', 'invoicing' ) |
|
599 | - ), |
|
600 | - $vat_classes |
|
601 | - ), |
|
602 | - 'name' => 'vat_class', |
|
603 | - 'id' => 'vat_class', |
|
604 | - 'selected' => in_array( $vat_class, array_keys( $vat_classes ) ) ? $vat_class : '', |
|
605 | - 'show_option_all' => false, |
|
606 | - 'show_option_none' => false, |
|
607 | - ) |
|
608 | - ); |
|
609 | - |
|
610 | - } |
|
611 | - |
|
612 | - // Filter by item type. |
|
613 | - $type = ''; |
|
614 | - if ( isset( $_GET['type'] ) ) { |
|
615 | - $type = $_GET['type']; |
|
616 | - } |
|
617 | - |
|
618 | - echo wpinv_html_select( |
|
619 | - array( |
|
620 | - 'options' => array_merge( |
|
621 | - array( |
|
622 | - '' => __( 'All item types', 'invoicing' ) |
|
623 | - ), |
|
624 | - wpinv_get_item_types() |
|
625 | - ), |
|
626 | - 'name' => 'type', |
|
627 | - 'id' => 'type', |
|
628 | - 'selected' => in_array( $type, wpinv_item_types() ) ? $type : '', |
|
629 | - 'show_option_all' => false, |
|
630 | - 'show_option_none' => false, |
|
631 | - ) |
|
632 | - ); |
|
633 | - |
|
634 | - } |
|
635 | - |
|
636 | - /** |
|
637 | - * Filters the item query. |
|
638 | - */ |
|
639 | - public static function filter_item_query( $query ) { |
|
640 | - |
|
641 | - // modify the query only if it admin and main query. |
|
642 | - if ( ! ( is_admin() && $query->is_main_query() ) ){ |
|
643 | - return $query; |
|
644 | - } |
|
645 | - |
|
646 | - // we want to modify the query for our items. |
|
647 | - if ( empty( $query->query['post_type'] ) || 'wpi_item' != $query->query['post_type'] ){ |
|
648 | - return $query; |
|
649 | - } |
|
650 | - |
|
651 | - if ( empty( $query->query_vars['meta_query'] ) ) { |
|
652 | - $query->query_vars['meta_query'] = array(); |
|
653 | - } |
|
654 | - |
|
655 | - // Filter vat rule type |
|
587 | + // Sanitize selected vat rule. |
|
588 | + $vat_class = ''; |
|
589 | + $vat_classes = getpaid_get_tax_classes(); |
|
590 | + if ( isset( $_GET['vat_class'] ) ) { |
|
591 | + $vat_class = $_GET['vat_class']; |
|
592 | + } |
|
593 | + |
|
594 | + echo wpinv_html_select( |
|
595 | + array( |
|
596 | + 'options' => array_merge( |
|
597 | + array( |
|
598 | + '' => __( 'All VAT classes', 'invoicing' ) |
|
599 | + ), |
|
600 | + $vat_classes |
|
601 | + ), |
|
602 | + 'name' => 'vat_class', |
|
603 | + 'id' => 'vat_class', |
|
604 | + 'selected' => in_array( $vat_class, array_keys( $vat_classes ) ) ? $vat_class : '', |
|
605 | + 'show_option_all' => false, |
|
606 | + 'show_option_none' => false, |
|
607 | + ) |
|
608 | + ); |
|
609 | + |
|
610 | + } |
|
611 | + |
|
612 | + // Filter by item type. |
|
613 | + $type = ''; |
|
614 | + if ( isset( $_GET['type'] ) ) { |
|
615 | + $type = $_GET['type']; |
|
616 | + } |
|
617 | + |
|
618 | + echo wpinv_html_select( |
|
619 | + array( |
|
620 | + 'options' => array_merge( |
|
621 | + array( |
|
622 | + '' => __( 'All item types', 'invoicing' ) |
|
623 | + ), |
|
624 | + wpinv_get_item_types() |
|
625 | + ), |
|
626 | + 'name' => 'type', |
|
627 | + 'id' => 'type', |
|
628 | + 'selected' => in_array( $type, wpinv_item_types() ) ? $type : '', |
|
629 | + 'show_option_all' => false, |
|
630 | + 'show_option_none' => false, |
|
631 | + ) |
|
632 | + ); |
|
633 | + |
|
634 | + } |
|
635 | + |
|
636 | + /** |
|
637 | + * Filters the item query. |
|
638 | + */ |
|
639 | + public static function filter_item_query( $query ) { |
|
640 | + |
|
641 | + // modify the query only if it admin and main query. |
|
642 | + if ( ! ( is_admin() && $query->is_main_query() ) ){ |
|
643 | + return $query; |
|
644 | + } |
|
645 | + |
|
646 | + // we want to modify the query for our items. |
|
647 | + if ( empty( $query->query['post_type'] ) || 'wpi_item' != $query->query['post_type'] ){ |
|
648 | + return $query; |
|
649 | + } |
|
650 | + |
|
651 | + if ( empty( $query->query_vars['meta_query'] ) ) { |
|
652 | + $query->query_vars['meta_query'] = array(); |
|
653 | + } |
|
654 | + |
|
655 | + // Filter vat rule type |
|
656 | 656 | if ( ! empty( $_GET['vat_rule'] ) ) { |
657 | 657 | $query->query_vars['meta_query'][] = array( |
658 | 658 | 'key' => '_wpinv_vat_rule', |
@@ -677,94 +677,94 @@ discard block |
||
677 | 677 | 'value' => sanitize_text_field( $_GET['type'] ), |
678 | 678 | 'compare' => '=' |
679 | 679 | ); |
680 | - } |
|
681 | - |
|
682 | - } |
|
683 | - |
|
684 | - /** |
|
685 | - * Reorders items. |
|
686 | - */ |
|
687 | - public static function reorder_items( $vars ) { |
|
688 | - global $typenow; |
|
689 | - |
|
690 | - if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) { |
|
691 | - return $vars; |
|
692 | - } |
|
693 | - |
|
694 | - // By item type. |
|
695 | - if ( 'type' == $vars['orderby'] ) { |
|
696 | - return array_merge( |
|
697 | - $vars, |
|
698 | - array( |
|
699 | - 'meta_key' => '_wpinv_type', |
|
700 | - 'orderby' => 'meta_value' |
|
701 | - ) |
|
702 | - ); |
|
703 | - } |
|
704 | - |
|
705 | - // By vat class. |
|
706 | - if ( 'vat_class' == $vars['orderby'] ) { |
|
707 | - return array_merge( |
|
708 | - $vars, |
|
709 | - array( |
|
710 | - 'meta_key' => '_wpinv_vat_class', |
|
711 | - 'orderby' => 'meta_value' |
|
712 | - ) |
|
713 | - ); |
|
714 | - } |
|
715 | - |
|
716 | - // By vat rule. |
|
717 | - if ( 'vat_rule' == $vars['orderby'] ) { |
|
718 | - return array_merge( |
|
719 | - $vars, |
|
720 | - array( |
|
721 | - 'meta_key' => '_wpinv_vat_rule', |
|
722 | - 'orderby' => 'meta_value' |
|
723 | - ) |
|
724 | - ); |
|
725 | - } |
|
726 | - |
|
727 | - // By price. |
|
728 | - if ( 'price' == $vars['orderby'] ) { |
|
729 | - return array_merge( |
|
730 | - $vars, |
|
731 | - array( |
|
732 | - 'meta_key' => '_wpinv_price', |
|
733 | - 'orderby' => 'meta_value_num' |
|
734 | - ) |
|
735 | - ); |
|
736 | - } |
|
737 | - |
|
738 | - return $vars; |
|
739 | - |
|
740 | - } |
|
741 | - |
|
742 | - /** |
|
743 | - * Fired when deleting a post. |
|
744 | - */ |
|
745 | - public static function delete_post( $post_id ) { |
|
746 | - |
|
747 | - switch ( get_post_type( $post_id ) ) { |
|
748 | - |
|
749 | - case 'wpi_item' : |
|
750 | - do_action( "getpaid_before_delete_item", new WPInv_Item( $post_id ) ); |
|
751 | - break; |
|
752 | - |
|
753 | - case 'wpi_payment_form' : |
|
754 | - do_action( "getpaid_before_delete_payment_form", new GetPaid_Payment_Form( $post_id ) ); |
|
755 | - break; |
|
756 | - |
|
757 | - case 'wpi_discount' : |
|
758 | - do_action( "getpaid_before_delete_discount", new WPInv_Discount( $post_id ) ); |
|
759 | - break; |
|
760 | - |
|
761 | - case 'wpi_invoice' : |
|
762 | - $invoice = new WPInv_Invoice( $post_id ); |
|
763 | - do_action( "getpaid_before_delete_invoice", $invoice ); |
|
764 | - $invoice->get_data_store()->delete_items( $invoice ); |
|
765 | - $invoice->get_data_store()->delete_special_fields( $invoice ); |
|
766 | - break; |
|
767 | - } |
|
768 | - } |
|
680 | + } |
|
681 | + |
|
682 | + } |
|
683 | + |
|
684 | + /** |
|
685 | + * Reorders items. |
|
686 | + */ |
|
687 | + public static function reorder_items( $vars ) { |
|
688 | + global $typenow; |
|
689 | + |
|
690 | + if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) { |
|
691 | + return $vars; |
|
692 | + } |
|
693 | + |
|
694 | + // By item type. |
|
695 | + if ( 'type' == $vars['orderby'] ) { |
|
696 | + return array_merge( |
|
697 | + $vars, |
|
698 | + array( |
|
699 | + 'meta_key' => '_wpinv_type', |
|
700 | + 'orderby' => 'meta_value' |
|
701 | + ) |
|
702 | + ); |
|
703 | + } |
|
704 | + |
|
705 | + // By vat class. |
|
706 | + if ( 'vat_class' == $vars['orderby'] ) { |
|
707 | + return array_merge( |
|
708 | + $vars, |
|
709 | + array( |
|
710 | + 'meta_key' => '_wpinv_vat_class', |
|
711 | + 'orderby' => 'meta_value' |
|
712 | + ) |
|
713 | + ); |
|
714 | + } |
|
715 | + |
|
716 | + // By vat rule. |
|
717 | + if ( 'vat_rule' == $vars['orderby'] ) { |
|
718 | + return array_merge( |
|
719 | + $vars, |
|
720 | + array( |
|
721 | + 'meta_key' => '_wpinv_vat_rule', |
|
722 | + 'orderby' => 'meta_value' |
|
723 | + ) |
|
724 | + ); |
|
725 | + } |
|
726 | + |
|
727 | + // By price. |
|
728 | + if ( 'price' == $vars['orderby'] ) { |
|
729 | + return array_merge( |
|
730 | + $vars, |
|
731 | + array( |
|
732 | + 'meta_key' => '_wpinv_price', |
|
733 | + 'orderby' => 'meta_value_num' |
|
734 | + ) |
|
735 | + ); |
|
736 | + } |
|
737 | + |
|
738 | + return $vars; |
|
739 | + |
|
740 | + } |
|
741 | + |
|
742 | + /** |
|
743 | + * Fired when deleting a post. |
|
744 | + */ |
|
745 | + public static function delete_post( $post_id ) { |
|
746 | + |
|
747 | + switch ( get_post_type( $post_id ) ) { |
|
748 | + |
|
749 | + case 'wpi_item' : |
|
750 | + do_action( "getpaid_before_delete_item", new WPInv_Item( $post_id ) ); |
|
751 | + break; |
|
752 | + |
|
753 | + case 'wpi_payment_form' : |
|
754 | + do_action( "getpaid_before_delete_payment_form", new GetPaid_Payment_Form( $post_id ) ); |
|
755 | + break; |
|
756 | + |
|
757 | + case 'wpi_discount' : |
|
758 | + do_action( "getpaid_before_delete_discount", new WPInv_Discount( $post_id ) ); |
|
759 | + break; |
|
760 | + |
|
761 | + case 'wpi_invoice' : |
|
762 | + $invoice = new WPInv_Invoice( $post_id ); |
|
763 | + do_action( "getpaid_before_delete_invoice", $invoice ); |
|
764 | + $invoice->get_data_store()->delete_items( $invoice ); |
|
765 | + $invoice->get_data_store()->delete_special_fields( $invoice ); |
|
766 | + break; |
|
767 | + } |
|
768 | + } |
|
769 | 769 | |
770 | 770 | } |
@@ -9,31 +9,31 @@ |
||
9 | 9 | defined( 'ABSPATH' ) || exit; |
10 | 10 | |
11 | 11 | return array( |
12 | - 'AT', |
|
13 | - 'BE', |
|
14 | - 'BG', |
|
15 | - 'HR', |
|
16 | - 'CY', |
|
17 | - 'CZ', |
|
18 | - 'DK', |
|
19 | - 'EE', |
|
20 | - 'FI', |
|
21 | - 'FR', |
|
22 | - 'DE', |
|
23 | - 'GR', |
|
24 | - 'HU', |
|
25 | - 'IE', |
|
26 | - 'IT', |
|
27 | - 'LV', |
|
28 | - 'LT', |
|
29 | - 'LU', |
|
30 | - 'MT', |
|
31 | - 'NL', |
|
32 | - 'PL', |
|
33 | - 'PT', |
|
34 | - 'RO', |
|
35 | - 'SK', |
|
36 | - 'SI', |
|
37 | - 'ES', |
|
38 | - 'SE' |
|
12 | + 'AT', |
|
13 | + 'BE', |
|
14 | + 'BG', |
|
15 | + 'HR', |
|
16 | + 'CY', |
|
17 | + 'CZ', |
|
18 | + 'DK', |
|
19 | + 'EE', |
|
20 | + 'FI', |
|
21 | + 'FR', |
|
22 | + 'DE', |
|
23 | + 'GR', |
|
24 | + 'HU', |
|
25 | + 'IE', |
|
26 | + 'IT', |
|
27 | + 'LV', |
|
28 | + 'LT', |
|
29 | + 'LU', |
|
30 | + 'MT', |
|
31 | + 'NL', |
|
32 | + 'PL', |
|
33 | + 'PT', |
|
34 | + 'RO', |
|
35 | + 'SK', |
|
36 | + 'SI', |
|
37 | + 'ES', |
|
38 | + 'SE' |
|
39 | 39 | ); |
@@ -34,11 +34,11 @@ discard block |
||
34 | 34 | */ |
35 | 35 | function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) { |
36 | 36 | |
37 | - if ( current_user_can( 'manage_options' ) ) { |
|
38 | - return 'manage_options'; |
|
39 | - }; |
|
37 | + if ( current_user_can( 'manage_options' ) ) { |
|
38 | + return 'manage_options'; |
|
39 | + }; |
|
40 | 40 | |
41 | - return $capalibilty; |
|
41 | + return $capalibilty; |
|
42 | 42 | } |
43 | 43 | |
44 | 44 | /** |
@@ -62,10 +62,10 @@ discard block |
||
62 | 62 | // Prepare user values. |
63 | 63 | $prefix = preg_replace( '/\s+/', '', $prefix ); |
64 | 64 | $prefix = empty( $prefix ) ? $email : $prefix; |
65 | - $args = array( |
|
66 | - 'user_login' => wpinv_generate_user_name( $prefix ), |
|
67 | - 'user_pass' => wp_generate_password(), |
|
68 | - 'user_email' => $email, |
|
65 | + $args = array( |
|
66 | + 'user_login' => wpinv_generate_user_name( $prefix ), |
|
67 | + 'user_pass' => wp_generate_password(), |
|
68 | + 'user_email' => $email, |
|
69 | 69 | 'role' => 'subscriber', |
70 | 70 | ); |
71 | 71 | |
@@ -82,16 +82,16 @@ discard block |
||
82 | 82 | function wpinv_generate_user_name( $prefix = '' ) { |
83 | 83 | |
84 | 84 | // If prefix is an email, retrieve the part before the email. |
85 | - $prefix = strtok( $prefix, '@' ); |
|
85 | + $prefix = strtok( $prefix, '@' ); |
|
86 | 86 | $prefix = trim( $prefix, '.' ); |
87 | 87 | |
88 | - // Sanitize the username. |
|
89 | - $prefix = sanitize_user( $prefix, true ); |
|
88 | + // Sanitize the username. |
|
89 | + $prefix = sanitize_user( $prefix, true ); |
|
90 | 90 | |
91 | - $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); |
|
92 | - if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) { |
|
93 | - $prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 ); |
|
94 | - } |
|
91 | + $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); |
|
92 | + if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) { |
|
93 | + $prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 ); |
|
94 | + } |
|
95 | 95 | |
96 | 96 | $username = $prefix; |
97 | 97 | $postfix = 2; |
@@ -13,30 +13,30 @@ discard block |
||
13 | 13 | class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'bank_transfer'; |
21 | 21 | |
22 | - /** |
|
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
27 | - protected $supports = array( 'addons' ); |
|
22 | + /** |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | + protected $supports = array( 'addons' ); |
|
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
34 | - public $order = 8; |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | + public $order = 8; |
|
35 | 35 | |
36 | 36 | /** |
37 | - * Class constructor. |
|
38 | - */ |
|
39 | - public function __construct() { |
|
37 | + * Class constructor. |
|
38 | + */ |
|
39 | + public function __construct() { |
|
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | 42 | $this->title = __( 'Direct bank transfer', 'invoicing' ); |
@@ -44,23 +44,23 @@ discard block |
||
44 | 44 | $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
45 | 45 | $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
46 | 46 | |
47 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | - add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
47 | + add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | + add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | + add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | + add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
51 | 51 | |
52 | 52 | } |
53 | 53 | |
54 | 54 | /** |
55 | - * Process Payment. |
|
56 | - * |
|
57 | - * |
|
58 | - * @param WPInv_Invoice $invoice Invoice. |
|
59 | - * @param array $submission_data Posted checkout fields. |
|
60 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
61 | - * @return array |
|
62 | - */ |
|
63 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
55 | + * Process Payment. |
|
56 | + * |
|
57 | + * |
|
58 | + * @param WPInv_Invoice $invoice Invoice. |
|
59 | + * @param array $submission_data Posted checkout fields. |
|
60 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
61 | + * @return array |
|
62 | + */ |
|
63 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
64 | 64 | |
65 | 65 | // Add a transaction id. |
66 | 66 | $invoice->set_transaction_id( $invoice->generate_key('trans_') ); |
@@ -81,66 +81,66 @@ discard block |
||
81 | 81 | } |
82 | 82 | |
83 | 83 | /** |
84 | - * Output for the order received page. |
|
85 | - * |
|
86 | - * @param WPInv_Invoice $invoice Invoice. |
|
87 | - */ |
|
88 | - public function thankyou_page( $invoice ) { |
|
84 | + * Output for the order received page. |
|
85 | + * |
|
86 | + * @param WPInv_Invoice $invoice Invoice. |
|
87 | + */ |
|
88 | + public function thankyou_page( $invoice ) { |
|
89 | 89 | |
90 | 90 | if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
91 | 91 | |
92 | - echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
92 | + echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
93 | 93 | |
94 | 94 | if ( ! empty( $this->instructions ) ) { |
95 | 95 | echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
96 | - } |
|
96 | + } |
|
97 | 97 | |
98 | - $this->bank_details( $invoice ); |
|
98 | + $this->bank_details( $invoice ); |
|
99 | 99 | |
100 | - echo '</div>'; |
|
100 | + echo '</div>'; |
|
101 | 101 | |
102 | 102 | } |
103 | 103 | |
104 | - } |
|
104 | + } |
|
105 | 105 | |
106 | 106 | /** |
107 | - * Add content to the WPI emails. |
|
108 | - * |
|
109 | - * @param WPInv_Invoice $invoice Invoice. |
|
110 | - * @param string $email_type Email format: plain text or HTML. |
|
111 | - * @param bool $sent_to_admin Sent to admin. |
|
112 | - */ |
|
113 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
107 | + * Add content to the WPI emails. |
|
108 | + * |
|
109 | + * @param WPInv_Invoice $invoice Invoice. |
|
110 | + * @param string $email_type Email format: plain text or HTML. |
|
111 | + * @param bool $sent_to_admin Sent to admin. |
|
112 | + */ |
|
113 | + public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
114 | 114 | |
115 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
115 | + if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
116 | 116 | |
117 | - echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
117 | + echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
118 | 118 | |
119 | - if ( $this->instructions ) { |
|
120 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
119 | + if ( $this->instructions ) { |
|
120 | + echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
121 | 121 | } |
122 | 122 | |
123 | - $this->bank_details( $invoice ); |
|
123 | + $this->bank_details( $invoice ); |
|
124 | 124 | |
125 | - echo '</div>'; |
|
125 | + echo '</div>'; |
|
126 | 126 | |
127 | - } |
|
127 | + } |
|
128 | 128 | |
129 | 129 | } |
130 | 130 | |
131 | 131 | /** |
132 | - * Get bank details and place into a list format. |
|
133 | - * |
|
134 | - * @param WPInv_Invoice $invoice Invoice. |
|
135 | - */ |
|
136 | - protected function bank_details( $invoice ) { |
|
132 | + * Get bank details and place into a list format. |
|
133 | + * |
|
134 | + * @param WPInv_Invoice $invoice Invoice. |
|
135 | + */ |
|
136 | + protected function bank_details( $invoice ) { |
|
137 | 137 | |
138 | - // Get the invoice country and country $locale. |
|
139 | - $country = $invoice->get_country(); |
|
140 | - $locale = $this->get_country_locale(); |
|
138 | + // Get the invoice country and country $locale. |
|
139 | + $country = $invoice->get_country(); |
|
140 | + $locale = $this->get_country_locale(); |
|
141 | 141 | |
142 | - // Get sortcode label in the $locale array and use appropriate one. |
|
143 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
142 | + // Get sortcode label in the $locale array and use appropriate one. |
|
143 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
144 | 144 | |
145 | 145 | $bank_fields = array( |
146 | 146 | 'ac_name' => __( 'Account Name', 'invoicing' ), |
@@ -169,144 +169,144 @@ discard block |
||
169 | 169 | return; |
170 | 170 | } |
171 | 171 | |
172 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
172 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
173 | 173 | |
174 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
174 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
175 | 175 | |
176 | - foreach ( $bank_info as $key => $data ) { |
|
176 | + foreach ( $bank_info as $key => $data ) { |
|
177 | 177 | |
178 | - $key = sanitize_html_class( $key ); |
|
179 | - $label = wp_kses_post( $data['label'] ); |
|
180 | - $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
178 | + $key = sanitize_html_class( $key ); |
|
179 | + $label = wp_kses_post( $data['label'] ); |
|
180 | + $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
181 | 181 | |
182 | - echo "<tr class='getpaid-bank-transfer-$key'><th class='font-weight-bold'>$label</th><td class='w-75'>$value</td></tr>" . PHP_EOL; |
|
183 | - } |
|
182 | + echo "<tr class='getpaid-bank-transfer-$key'><th class='font-weight-bold'>$label</th><td class='w-75'>$value</td></tr>" . PHP_EOL; |
|
183 | + } |
|
184 | 184 | |
185 | - echo '</table>'; |
|
185 | + echo '</table>'; |
|
186 | 186 | |
187 | 187 | } |
188 | 188 | |
189 | 189 | /** |
190 | - * Get country locale if localized. |
|
191 | - * |
|
192 | - * @return array |
|
193 | - */ |
|
194 | - public function get_country_locale() { |
|
195 | - |
|
196 | - if ( empty( $this->locale ) ) { |
|
197 | - |
|
198 | - // Locale information to be used - only those that are not 'Sort Code'. |
|
199 | - $this->locale = apply_filters( |
|
200 | - 'getpaid_get_bank_transfer_locale', |
|
201 | - array( |
|
202 | - 'AU' => array( |
|
203 | - 'sortcode' => array( |
|
204 | - 'label' => __( 'BSB', 'invoicing' ), |
|
205 | - ), |
|
206 | - ), |
|
207 | - 'CA' => array( |
|
208 | - 'sortcode' => array( |
|
209 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
210 | - ), |
|
211 | - ), |
|
212 | - 'IN' => array( |
|
213 | - 'sortcode' => array( |
|
214 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
215 | - ), |
|
216 | - ), |
|
217 | - 'IT' => array( |
|
218 | - 'sortcode' => array( |
|
219 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
220 | - ), |
|
221 | - ), |
|
222 | - 'NZ' => array( |
|
223 | - 'sortcode' => array( |
|
224 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
225 | - ), |
|
226 | - ), |
|
227 | - 'SE' => array( |
|
228 | - 'sortcode' => array( |
|
229 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
230 | - ), |
|
231 | - ), |
|
232 | - 'US' => array( |
|
233 | - 'sortcode' => array( |
|
234 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
235 | - ), |
|
236 | - ), |
|
237 | - 'ZA' => array( |
|
238 | - 'sortcode' => array( |
|
239 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
240 | - ), |
|
241 | - ), |
|
242 | - ) |
|
243 | - ); |
|
244 | - |
|
245 | - } |
|
246 | - |
|
247 | - return $this->locale; |
|
248 | - |
|
249 | - } |
|
250 | - |
|
251 | - /** |
|
252 | - * Filters the gateway settings. |
|
253 | - * |
|
254 | - * @param array $admin_settings |
|
255 | - */ |
|
256 | - public function admin_settings( $admin_settings ) { |
|
190 | + * Get country locale if localized. |
|
191 | + * |
|
192 | + * @return array |
|
193 | + */ |
|
194 | + public function get_country_locale() { |
|
195 | + |
|
196 | + if ( empty( $this->locale ) ) { |
|
197 | + |
|
198 | + // Locale information to be used - only those that are not 'Sort Code'. |
|
199 | + $this->locale = apply_filters( |
|
200 | + 'getpaid_get_bank_transfer_locale', |
|
201 | + array( |
|
202 | + 'AU' => array( |
|
203 | + 'sortcode' => array( |
|
204 | + 'label' => __( 'BSB', 'invoicing' ), |
|
205 | + ), |
|
206 | + ), |
|
207 | + 'CA' => array( |
|
208 | + 'sortcode' => array( |
|
209 | + 'label' => __( 'Bank transit number', 'invoicing' ), |
|
210 | + ), |
|
211 | + ), |
|
212 | + 'IN' => array( |
|
213 | + 'sortcode' => array( |
|
214 | + 'label' => __( 'IFSC', 'invoicing' ), |
|
215 | + ), |
|
216 | + ), |
|
217 | + 'IT' => array( |
|
218 | + 'sortcode' => array( |
|
219 | + 'label' => __( 'Branch sort', 'invoicing' ), |
|
220 | + ), |
|
221 | + ), |
|
222 | + 'NZ' => array( |
|
223 | + 'sortcode' => array( |
|
224 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
225 | + ), |
|
226 | + ), |
|
227 | + 'SE' => array( |
|
228 | + 'sortcode' => array( |
|
229 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
230 | + ), |
|
231 | + ), |
|
232 | + 'US' => array( |
|
233 | + 'sortcode' => array( |
|
234 | + 'label' => __( 'Routing number', 'invoicing' ), |
|
235 | + ), |
|
236 | + ), |
|
237 | + 'ZA' => array( |
|
238 | + 'sortcode' => array( |
|
239 | + 'label' => __( 'Branch code', 'invoicing' ), |
|
240 | + ), |
|
241 | + ), |
|
242 | + ) |
|
243 | + ); |
|
244 | + |
|
245 | + } |
|
246 | + |
|
247 | + return $this->locale; |
|
248 | + |
|
249 | + } |
|
250 | + |
|
251 | + /** |
|
252 | + * Filters the gateway settings. |
|
253 | + * |
|
254 | + * @param array $admin_settings |
|
255 | + */ |
|
256 | + public function admin_settings( $admin_settings ) { |
|
257 | 257 | |
258 | 258 | $admin_settings['bank_transfer_desc']['std'] = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ); |
259 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
259 | + $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
260 | 260 | |
261 | - $locale = $this->get_country_locale(); |
|
261 | + $locale = $this->get_country_locale(); |
|
262 | 262 | |
263 | - // Get sortcode label in the $locale array and use appropriate one. |
|
264 | - $country = wpinv_default_billing_country(); |
|
265 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
263 | + // Get sortcode label in the $locale array and use appropriate one. |
|
264 | + $country = wpinv_default_billing_country(); |
|
265 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
266 | 266 | |
267 | - $admin_settings['bank_transfer_ac_name'] = array( |
|
267 | + $admin_settings['bank_transfer_ac_name'] = array( |
|
268 | 268 | 'type' => 'text', |
269 | 269 | 'id' => 'bank_transfer_ac_name', |
270 | 270 | 'name' => __( 'Account Name', 'invoicing' ), |
271 | - ); |
|
271 | + ); |
|
272 | 272 | |
273 | - $admin_settings['bank_transfer_ac_no'] = array( |
|
273 | + $admin_settings['bank_transfer_ac_no'] = array( |
|
274 | 274 | 'type' => 'text', |
275 | 275 | 'id' => 'bank_transfer_ac_no', |
276 | 276 | 'name' => __( 'Account Number', 'invoicing' ), |
277 | - ); |
|
277 | + ); |
|
278 | 278 | |
279 | - $admin_settings['bank_transfer_bank_name'] = array( |
|
279 | + $admin_settings['bank_transfer_bank_name'] = array( |
|
280 | 280 | 'type' => 'text', |
281 | 281 | 'id' => 'bank_transfer_bank_name', |
282 | 282 | 'name' => __( 'Bank Name', 'invoicing' ), |
283 | - ); |
|
283 | + ); |
|
284 | 284 | |
285 | - $admin_settings['bank_transfer_ifsc'] = array( |
|
285 | + $admin_settings['bank_transfer_ifsc'] = array( |
|
286 | 286 | 'type' => 'text', |
287 | 287 | 'id' => 'bank_transfer_ifsc', |
288 | 288 | 'name' => __( 'IFSC Code', 'invoicing' ), |
289 | - ); |
|
289 | + ); |
|
290 | 290 | |
291 | - $admin_settings['bank_transfer_iban'] = array( |
|
291 | + $admin_settings['bank_transfer_iban'] = array( |
|
292 | 292 | 'type' => 'text', |
293 | 293 | 'id' => 'bank_transfer_iban', |
294 | 294 | 'name' => __( 'IBAN', 'invoicing' ), |
295 | - ); |
|
295 | + ); |
|
296 | 296 | |
297 | - $admin_settings['bank_transfer_bic'] = array( |
|
297 | + $admin_settings['bank_transfer_bic'] = array( |
|
298 | 298 | 'type' => 'text', |
299 | 299 | 'id' => 'bank_transfer_bic', |
300 | 300 | 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
301 | - ); |
|
301 | + ); |
|
302 | 302 | |
303 | - $admin_settings['bank_transfer_sort_code'] = array( |
|
304 | - 'type' => 'text', |
|
305 | - 'id' => 'bank_transfer_sort_code', |
|
306 | - 'name' => $sortcode, |
|
307 | - ); |
|
303 | + $admin_settings['bank_transfer_sort_code'] = array( |
|
304 | + 'type' => 'text', |
|
305 | + 'id' => 'bank_transfer_sort_code', |
|
306 | + 'name' => $sortcode, |
|
307 | + ); |
|
308 | 308 | |
309 | - $admin_settings['bank_transfer_info'] = array( |
|
309 | + $admin_settings['bank_transfer_info'] = array( |
|
310 | 310 | 'id' => 'bank_transfer_info', |
311 | 311 | 'name' => __( 'Instructions', 'invoicing' ), |
312 | 312 | 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
@@ -316,17 +316,17 @@ discard block |
||
316 | 316 | 'rows' => 5 |
317 | 317 | ); |
318 | 318 | |
319 | - return $admin_settings; |
|
320 | - } |
|
319 | + return $admin_settings; |
|
320 | + } |
|
321 | 321 | |
322 | - /** |
|
323 | - * Processes invoice addons. |
|
324 | - * |
|
325 | - * @param WPInv_Invoice $invoice |
|
326 | - * @param GetPaid_Form_Item[] $items |
|
327 | - * @return WPInv_Invoice |
|
328 | - */ |
|
329 | - public function process_addons( $invoice, $items ) { |
|
322 | + /** |
|
323 | + * Processes invoice addons. |
|
324 | + * |
|
325 | + * @param WPInv_Invoice $invoice |
|
326 | + * @param GetPaid_Form_Item[] $items |
|
327 | + * @return WPInv_Invoice |
|
328 | + */ |
|
329 | + public function process_addons( $invoice, $items ) { |
|
330 | 330 | |
331 | 331 | foreach ( $items as $item ) { |
332 | 332 | $invoice->add_item( $item ); |
@@ -334,6 +334,6 @@ discard block |
||
334 | 334 | |
335 | 335 | $invoice->recalculate_total(); |
336 | 336 | $invoice->save(); |
337 | - } |
|
337 | + } |
|
338 | 338 | |
339 | 339 | } |