@@ -187,7 +187,7 @@ discard block |
||
187 | 187 | public function set_settings($settings_array) |
188 | 188 | { |
189 | 189 | foreach ($settings_array as $name => $value) { |
190 | - $property_name = "_" . $name; |
|
190 | + $property_name = "_".$name; |
|
191 | 191 | $this->{$property_name} = $value; |
192 | 192 | } |
193 | 193 | } |
@@ -251,7 +251,7 @@ discard block |
||
251 | 251 | */ |
252 | 252 | public function set_gateway_data_formatter(GatewayDataFormatterInterface $gateway_data_formatter) |
253 | 253 | { |
254 | - if (! $gateway_data_formatter instanceof GatewayDataFormatterInterface) { |
|
254 | + if ( ! $gateway_data_formatter instanceof GatewayDataFormatterInterface) { |
|
255 | 255 | throw new InvalidEntityException( |
256 | 256 | is_object($gateway_data_formatter) |
257 | 257 | ? get_class($gateway_data_formatter) |
@@ -270,7 +270,7 @@ discard block |
||
270 | 270 | */ |
271 | 271 | protected function _get_gateway_formatter() |
272 | 272 | { |
273 | - if (! $this->_gateway_data_formatter instanceof GatewayDataFormatterInterface) { |
|
273 | + if ( ! $this->_gateway_data_formatter instanceof GatewayDataFormatterInterface) { |
|
274 | 274 | throw new InvalidEntityException( |
275 | 275 | is_object($this->_gateway_data_formatter) |
276 | 276 | ? get_class($this->_gateway_data_formatter) |
@@ -291,7 +291,7 @@ discard block |
||
291 | 291 | */ |
292 | 292 | public function set_unsupported_character_remover(FormatterInterface $formatter) |
293 | 293 | { |
294 | - if (! $formatter instanceof FormatterInterface) { |
|
294 | + if ( ! $formatter instanceof FormatterInterface) { |
|
295 | 295 | throw new InvalidEntityException( |
296 | 296 | is_object($formatter) |
297 | 297 | ? get_class($formatter) |
@@ -310,7 +310,7 @@ discard block |
||
310 | 310 | */ |
311 | 311 | protected function _get_unsupported_character_remover() |
312 | 312 | { |
313 | - if (! $this->_unsupported_character_remover instanceof FormatterInterface) { |
|
313 | + if ( ! $this->_unsupported_character_remover instanceof FormatterInterface) { |
|
314 | 314 | throw new InvalidEntityException( |
315 | 315 | is_object($this->_unsupported_character_remover) |
316 | 316 | ? get_class($this->_unsupported_character_remover) |
@@ -23,495 +23,495 @@ |
||
23 | 23 | */ |
24 | 24 | abstract class EE_Gateway |
25 | 25 | { |
26 | - /** |
|
27 | - * a constant used as a possible value for $_currencies_supported to indicate |
|
28 | - * that ALL currencies are supported by this gateway |
|
29 | - */ |
|
30 | - const all_currencies_supported = 'all_currencies_supported'; |
|
31 | - /** |
|
32 | - * Where values are 3-letter currency codes |
|
33 | - * |
|
34 | - * @var array |
|
35 | - */ |
|
36 | - protected $_currencies_supported = array(); |
|
37 | - /** |
|
38 | - * Whether or not this gateway can support SENDING a refund request (ie, initiated by |
|
39 | - * admin in EE's wp-admin page) |
|
40 | - * |
|
41 | - * @var boolean |
|
42 | - */ |
|
43 | - protected $_supports_sending_refunds = false; |
|
44 | - |
|
45 | - /** |
|
46 | - * Whether or not this gateway can support RECEIVING a refund request from the payment |
|
47 | - * provider (ie, initiated by admin on the payment prover's website who sends an IPN to EE) |
|
48 | - * |
|
49 | - * @var boolean |
|
50 | - */ |
|
51 | - protected $_supports_receiving_refunds = false; |
|
52 | - /** |
|
53 | - * Model for querying for existing payments |
|
54 | - * |
|
55 | - * @var EEMI_Payment |
|
56 | - */ |
|
57 | - protected $_pay_model; |
|
58 | - |
|
59 | - /** |
|
60 | - * Model used for adding to the payments log |
|
61 | - * |
|
62 | - * @var EEMI_Payment_Log |
|
63 | - */ |
|
64 | - protected $_pay_log; |
|
65 | - |
|
66 | - /** |
|
67 | - * Used for formatting some input to gateways |
|
68 | - * |
|
69 | - * @var EEHI_Template |
|
70 | - */ |
|
71 | - protected $_template; |
|
72 | - |
|
73 | - /** |
|
74 | - * Concrete class that implements EEHI_Money, used by most gateways |
|
75 | - * |
|
76 | - * @var EEHI_Money |
|
77 | - */ |
|
78 | - protected $_money; |
|
79 | - |
|
80 | - /** |
|
81 | - * Concrete class that implements EEHI_Line_Item, used for manipulating the line item tree |
|
82 | - * |
|
83 | - * @var EEHI_Line_Item |
|
84 | - */ |
|
85 | - protected $_line_item; |
|
86 | - |
|
87 | - /** |
|
88 | - * @var GatewayDataFormatterInterface |
|
89 | - */ |
|
90 | - protected $_gateway_data_formatter; |
|
91 | - |
|
92 | - /** |
|
93 | - * @var FormatterInterface |
|
94 | - */ |
|
95 | - protected $_unsupported_character_remover; |
|
96 | - |
|
97 | - /** |
|
98 | - * The ID of the payment method using this gateway |
|
99 | - * |
|
100 | - * @var int |
|
101 | - */ |
|
102 | - protected $_ID; |
|
103 | - |
|
104 | - /** |
|
105 | - * @var $_debug_mode boolean whether to send requests to teh sandbox site or not |
|
106 | - */ |
|
107 | - protected $_debug_mode; |
|
108 | - /** |
|
109 | - * |
|
110 | - * @var string $_name name to show for this payment method |
|
111 | - */ |
|
112 | - protected $_name; |
|
113 | - /** |
|
114 | - * |
|
115 | - * @var string name to show fir this payment method to admin-type users |
|
116 | - */ |
|
117 | - protected $_admin_name; |
|
118 | - |
|
119 | - /** |
|
120 | - * @return EE_Gateway |
|
121 | - */ |
|
122 | - public function __construct() |
|
123 | - { |
|
124 | - } |
|
125 | - |
|
126 | - /** |
|
127 | - * We don't want to serialize models as they often have circular structures |
|
128 | - * (eg a payment model has a reference to each payment model object; and most |
|
129 | - * payments have a transaction, most transactions have a payment method; |
|
130 | - * most payment methods have a payment method type; most payment method types |
|
131 | - * have a gateway. And if a gateway serializes its models, we start at the |
|
132 | - * beginning again) |
|
133 | - * |
|
134 | - * @return array |
|
135 | - */ |
|
136 | - public function __sleep() |
|
137 | - { |
|
138 | - $properties = get_object_vars($this); |
|
139 | - unset($properties['_pay_model'], $properties['_pay_log']); |
|
140 | - return array_keys($properties); |
|
141 | - } |
|
142 | - |
|
143 | - /** |
|
144 | - * Returns whether or not this gateway should support SENDING refunds |
|
145 | - * see $_supports_sending_refunds |
|
146 | - * |
|
147 | - * @return boolean |
|
148 | - */ |
|
149 | - public function supports_sending_refunds() |
|
150 | - { |
|
151 | - return $this->_supports_sending_refunds; |
|
152 | - } |
|
153 | - |
|
154 | - /** |
|
155 | - * Returns whether or not this gateway should support RECEIVING refunds |
|
156 | - * see $_supports_receiving_refunds |
|
157 | - * |
|
158 | - * @return boolean |
|
159 | - */ |
|
160 | - public function supports_receiving_refunds() |
|
161 | - { |
|
162 | - return $this->_supports_receiving_refunds; |
|
163 | - } |
|
164 | - |
|
165 | - |
|
166 | - /** |
|
167 | - * Tries to refund the payment specified, taking into account the extra |
|
168 | - * refund info. Note that if the gateway's _supports_sending_refunds is false, |
|
169 | - * this should just throw an exception. |
|
170 | - * |
|
171 | - * @param EE_Payment $payment |
|
172 | - * @param array $refund_info |
|
173 | - * @return EE_Payment for the refund |
|
174 | - * @throws EE_Error |
|
175 | - */ |
|
176 | - public function do_direct_refund(EE_Payment $payment, $refund_info = null) |
|
177 | - { |
|
178 | - return null; |
|
179 | - } |
|
180 | - |
|
181 | - |
|
182 | - /** |
|
183 | - * Sets the payment method's settings so the gateway knows where to send the request |
|
184 | - * etc |
|
185 | - * |
|
186 | - * @param array $settings_array |
|
187 | - */ |
|
188 | - public function set_settings($settings_array) |
|
189 | - { |
|
190 | - foreach ($settings_array as $name => $value) { |
|
191 | - $property_name = "_" . $name; |
|
192 | - $this->{$property_name} = $value; |
|
193 | - } |
|
194 | - } |
|
195 | - |
|
196 | - /** |
|
197 | - * See this class description |
|
198 | - * |
|
199 | - * @param EEMI_Payment $payment_model |
|
200 | - */ |
|
201 | - public function set_payment_model($payment_model) |
|
202 | - { |
|
203 | - $this->_pay_model = $payment_model; |
|
204 | - } |
|
205 | - |
|
206 | - /** |
|
207 | - * See this class description |
|
208 | - * |
|
209 | - * @param EEMI_Payment_Log $payment_log_model |
|
210 | - */ |
|
211 | - public function set_payment_log($payment_log_model) |
|
212 | - { |
|
213 | - $this->_pay_log = $payment_log_model; |
|
214 | - } |
|
215 | - |
|
216 | - /** |
|
217 | - * See this class description |
|
218 | - * |
|
219 | - * @param EEHI_Template $template_helper |
|
220 | - */ |
|
221 | - public function set_template_helper($template_helper) |
|
222 | - { |
|
223 | - $this->_template = $template_helper; |
|
224 | - } |
|
225 | - |
|
226 | - /** |
|
227 | - * See this class description |
|
228 | - * |
|
229 | - * @param EEHI_Line_Item $line_item_helper |
|
230 | - */ |
|
231 | - public function set_line_item_helper($line_item_helper) |
|
232 | - { |
|
233 | - $this->_line_item = $line_item_helper; |
|
234 | - } |
|
235 | - |
|
236 | - /** |
|
237 | - * See this class description |
|
238 | - * |
|
239 | - * @param EEHI_Money $money_helper |
|
240 | - */ |
|
241 | - public function set_money_helper($money_helper) |
|
242 | - { |
|
243 | - $this->_money = $money_helper; |
|
244 | - } |
|
245 | - |
|
246 | - |
|
247 | - /** |
|
248 | - * Sets the gateway data formatter helper |
|
249 | - * |
|
250 | - * @param GatewayDataFormatterInterface $gateway_data_formatter |
|
251 | - * @throws InvalidEntityException if it's not set properly |
|
252 | - */ |
|
253 | - public function set_gateway_data_formatter(GatewayDataFormatterInterface $gateway_data_formatter) |
|
254 | - { |
|
255 | - if (! $gateway_data_formatter instanceof GatewayDataFormatterInterface) { |
|
256 | - throw new InvalidEntityException( |
|
257 | - is_object($gateway_data_formatter) |
|
258 | - ? get_class($gateway_data_formatter) |
|
259 | - : esc_html__('Not an object', 'event_espresso'), |
|
260 | - '\\EventEspresso\\core\\services\\payment_methods\\gateways\\GatewayDataFormatterInterface' |
|
261 | - ); |
|
262 | - } |
|
263 | - $this->_gateway_data_formatter = $gateway_data_formatter; |
|
264 | - } |
|
265 | - |
|
266 | - /** |
|
267 | - * Gets the gateway data formatter |
|
268 | - * |
|
269 | - * @return GatewayDataFormatterInterface |
|
270 | - * @throws InvalidEntityException if it's not set properly |
|
271 | - */ |
|
272 | - protected function _get_gateway_formatter() |
|
273 | - { |
|
274 | - if (! $this->_gateway_data_formatter instanceof GatewayDataFormatterInterface) { |
|
275 | - throw new InvalidEntityException( |
|
276 | - is_object($this->_gateway_data_formatter) |
|
277 | - ? get_class($this->_gateway_data_formatter) |
|
278 | - : esc_html__('Not an object', 'event_espresso'), |
|
279 | - '\\EventEspresso\\core\\services\\payment_methods\\gateways\\GatewayDataFormatterInterface' |
|
280 | - ); |
|
281 | - } |
|
282 | - return $this->_gateway_data_formatter; |
|
283 | - } |
|
284 | - |
|
285 | - |
|
286 | - /** |
|
287 | - * Sets the helper which will remove unsupported characters for most gateways |
|
288 | - * |
|
289 | - * @param FormatterInterface $formatter |
|
290 | - * @return FormatterInterface |
|
291 | - * @throws InvalidEntityException |
|
292 | - */ |
|
293 | - public function set_unsupported_character_remover(FormatterInterface $formatter) |
|
294 | - { |
|
295 | - if (! $formatter instanceof FormatterInterface) { |
|
296 | - throw new InvalidEntityException( |
|
297 | - is_object($formatter) |
|
298 | - ? get_class($formatter) |
|
299 | - : esc_html__('Not an object', 'event_espresso'), |
|
300 | - '\\EventEspresso\\core\\services\\formatters\\FormatterInterface' |
|
301 | - ); |
|
302 | - } |
|
303 | - $this->_unsupported_character_remover = $formatter; |
|
304 | - } |
|
305 | - |
|
306 | - /** |
|
307 | - * Gets the helper which removes characters which gateways might not support, like emojis etc. |
|
308 | - * |
|
309 | - * @return FormatterInterface |
|
310 | - * @throws InvalidEntityException |
|
311 | - */ |
|
312 | - protected function _get_unsupported_character_remover() |
|
313 | - { |
|
314 | - if (! $this->_unsupported_character_remover instanceof FormatterInterface) { |
|
315 | - throw new InvalidEntityException( |
|
316 | - is_object($this->_unsupported_character_remover) |
|
317 | - ? get_class($this->_unsupported_character_remover) |
|
318 | - : esc_html__('Not an object', 'event_espresso'), |
|
319 | - '\\EventEspresso\\core\\services\\formatters\\FormatterInterface' |
|
320 | - ); |
|
321 | - } |
|
322 | - return $this->_unsupported_character_remover; |
|
323 | - } |
|
324 | - |
|
325 | - |
|
326 | - /** |
|
327 | - * @param $message |
|
328 | - * @param $payment |
|
329 | - */ |
|
330 | - public function log($message, $object_logged) |
|
331 | - { |
|
332 | - if ($object_logged instanceof EEI_Payment) { |
|
333 | - $type = 'Payment'; |
|
334 | - $id = $object_logged->ID(); |
|
335 | - } elseif ($object_logged instanceof EEI_Transaction) { |
|
336 | - $type = 'Transaction'; |
|
337 | - $id = $object_logged->ID(); |
|
338 | - } else { |
|
339 | - $type = 'Payment_Method'; |
|
340 | - $id = $this->_ID; |
|
341 | - } |
|
342 | - // only log if we're going to store it for longer than the minimum time |
|
343 | - $reg_config = LoaderFactory::getLoader()->load('EE_Registration_Config'); |
|
344 | - if ($reg_config->gateway_log_lifespan !== '1 second') { |
|
345 | - $this->_pay_log->gateway_log($message, $id, $type); |
|
346 | - } |
|
347 | - } |
|
348 | - |
|
349 | - /** |
|
350 | - * Formats the amount so it can generally be sent to gateways |
|
351 | - * |
|
352 | - * @param float $amount |
|
353 | - * @return string |
|
354 | - * @deprecated since 4.9.31 insetad use |
|
355 | - * EventEspresso\core\services\payment_methods\gateways\GatewayDataFormatter::format_currency() |
|
356 | - */ |
|
357 | - public function format_currency($amount) |
|
358 | - { |
|
359 | - return $this->_get_gateway_formatter()->formatCurrency($amount); |
|
360 | - } |
|
361 | - |
|
362 | - /** |
|
363 | - * Returns either an array of all the currency codes supported, |
|
364 | - * or a string indicating they're all supported (EE_gateway::all_currencies_supported) |
|
365 | - * |
|
366 | - * @return mixed array or string |
|
367 | - */ |
|
368 | - public function currencies_supported() |
|
369 | - { |
|
370 | - return $this->_currencies_supported; |
|
371 | - } |
|
372 | - |
|
373 | - /** |
|
374 | - * Returns what a simple summing of items and taxes for this transaction. This |
|
375 | - * can be used to determine if some more complex line items, like promotions, |
|
376 | - * surcharges, or cancellations occurred (in which case we might want to forget |
|
377 | - * about creating an itemized list of purchases and instead only send the total due) |
|
378 | - * |
|
379 | - * @param EE_Transaction $transaction |
|
380 | - * @return float |
|
381 | - */ |
|
382 | - protected function _sum_items_and_taxes(EE_Transaction $transaction) |
|
383 | - { |
|
384 | - $total_line_item = $transaction->total_line_item(); |
|
385 | - $total = 0; |
|
386 | - foreach ($total_line_item->get_items() as $item_line_item) { |
|
387 | - $total += max($item_line_item->total(), 0); |
|
388 | - } |
|
389 | - foreach ($total_line_item->tax_descendants() as $tax_line_item) { |
|
390 | - $total += max($tax_line_item->total(), 0); |
|
391 | - } |
|
392 | - return $total; |
|
393 | - } |
|
394 | - |
|
395 | - /** |
|
396 | - * Determines whether or not we can easily itemize the transaction using only |
|
397 | - * items and taxes (ie, no promotions or surcharges or cancellations needed) |
|
398 | - * |
|
399 | - * @param EEI_Payment $payment |
|
400 | - * @return boolean |
|
401 | - */ |
|
402 | - protected function _can_easily_itemize_transaction_for(EEI_Payment $payment) |
|
403 | - { |
|
404 | - return $this->_money->compare_floats( |
|
405 | - $this->_sum_items_and_taxes($payment->transaction()), |
|
406 | - $payment->transaction()->total() |
|
407 | - ) |
|
408 | - && $this->_money->compare_floats( |
|
409 | - $payment->amount(), |
|
410 | - $payment->transaction()->total() |
|
411 | - ); |
|
412 | - } |
|
413 | - |
|
414 | - /** |
|
415 | - * Handles updating the transaction and any other related data based on the payment. |
|
416 | - * You may be tempted to do this as part of do_direct_payment or handle_payment_update, |
|
417 | - * but doing so on those functions might be too early. It's possible that the changes |
|
418 | - * you make to teh transaction or registration or line items may just get overwritten |
|
419 | - * at that point. Instead, you should store any info you need on the payment during those |
|
420 | - * functions, and use that information at this step, which client code will decide |
|
421 | - * for you when it should be called. |
|
422 | - * |
|
423 | - * @param EE_Payment $payment |
|
424 | - * @return void |
|
425 | - */ |
|
426 | - public function update_txn_based_on_payment($payment) |
|
427 | - { |
|
428 | - // maybe update the transaction or line items or registrations |
|
429 | - // but most gateways don't need to do this, because they only update the payment |
|
430 | - } |
|
431 | - |
|
432 | - /** |
|
433 | - * Gets the first event for this payment (it's possible that it could be for multiple) |
|
434 | - * |
|
435 | - * @param EEI_Payment $payment |
|
436 | - * @return EEI_Event|null |
|
437 | - * @deprecated since 4.9.31 instead use EEI_Payment::get_first_event() |
|
438 | - */ |
|
439 | - protected function _get_first_event_for_payment(EEI_Payment $payment) |
|
440 | - { |
|
441 | - return $payment->get_first_event(); |
|
442 | - } |
|
443 | - |
|
444 | - /** |
|
445 | - * Gets the name of the first event for which is being paid |
|
446 | - * |
|
447 | - * @param EEI_Payment $payment |
|
448 | - * @return string |
|
449 | - * @deprecated since 4.9.31 instead use EEI_Payment::get_first_event_name() |
|
450 | - */ |
|
451 | - protected function _get_first_event_name_for_payment(EEI_Payment $payment) |
|
452 | - { |
|
453 | - return $payment->get_first_event_name(); |
|
454 | - } |
|
455 | - |
|
456 | - /** |
|
457 | - * Gets the text to use for a gateway's line item name when this is a partial payment |
|
458 | - * |
|
459 | - * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatPartialPaymentLineItemName($payment) |
|
460 | - * @param EE_Payment $payment |
|
461 | - * @return string |
|
462 | - */ |
|
463 | - protected function _format_partial_payment_line_item_name(EEI_Payment $payment) |
|
464 | - { |
|
465 | - return $this->_get_gateway_formatter()->formatPartialPaymentLineItemName($payment); |
|
466 | - } |
|
467 | - |
|
468 | - /** |
|
469 | - * Gets the text to use for a gateway's line item description when this is a partial payment |
|
470 | - * |
|
471 | - * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatPartialPaymentLineItemDesc() |
|
472 | - * @param EEI_Payment $payment |
|
473 | - * @return string |
|
474 | - */ |
|
475 | - protected function _format_partial_payment_line_item_desc(EEI_Payment $payment) |
|
476 | - { |
|
477 | - return $this->_get_gateway_formatter()->formatPartialPaymentLineItemDesc($payment); |
|
478 | - } |
|
479 | - |
|
480 | - /** |
|
481 | - * Gets the name to use for a line item when sending line items to the gateway |
|
482 | - * |
|
483 | - * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatLineItemName($line_item,$payment) |
|
484 | - * @param EEI_Line_Item $line_item |
|
485 | - * @param EEI_Payment $payment |
|
486 | - * @return string |
|
487 | - */ |
|
488 | - protected function _format_line_item_name(EEI_Line_Item $line_item, EEI_Payment $payment) |
|
489 | - { |
|
490 | - return $this->_get_gateway_formatter()->formatLineItemName($line_item, $payment); |
|
491 | - } |
|
492 | - |
|
493 | - /** |
|
494 | - * Gets the description to use for a line item when sending line items to the gateway |
|
495 | - * |
|
496 | - * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatLineItemDesc($line_item, $payment)) |
|
497 | - * @param EEI_Line_Item $line_item |
|
498 | - * @param EEI_Payment $payment |
|
499 | - * @return string |
|
500 | - */ |
|
501 | - protected function _format_line_item_desc(EEI_Line_Item $line_item, EEI_Payment $payment) |
|
502 | - { |
|
503 | - return $this->_get_gateway_formatter()->formatLineItemDesc($line_item, $payment); |
|
504 | - } |
|
505 | - |
|
506 | - /** |
|
507 | - * Gets the order description that should generlly be sent to gateways |
|
508 | - * |
|
509 | - * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatOrderDescription($payment) |
|
510 | - * @param EEI_Payment $payment |
|
511 | - * @return type |
|
512 | - */ |
|
513 | - protected function _format_order_description(EEI_Payment $payment) |
|
514 | - { |
|
515 | - return $this->_get_gateway_formatter()->formatOrderDescription($payment); |
|
516 | - } |
|
26 | + /** |
|
27 | + * a constant used as a possible value for $_currencies_supported to indicate |
|
28 | + * that ALL currencies are supported by this gateway |
|
29 | + */ |
|
30 | + const all_currencies_supported = 'all_currencies_supported'; |
|
31 | + /** |
|
32 | + * Where values are 3-letter currency codes |
|
33 | + * |
|
34 | + * @var array |
|
35 | + */ |
|
36 | + protected $_currencies_supported = array(); |
|
37 | + /** |
|
38 | + * Whether or not this gateway can support SENDING a refund request (ie, initiated by |
|
39 | + * admin in EE's wp-admin page) |
|
40 | + * |
|
41 | + * @var boolean |
|
42 | + */ |
|
43 | + protected $_supports_sending_refunds = false; |
|
44 | + |
|
45 | + /** |
|
46 | + * Whether or not this gateway can support RECEIVING a refund request from the payment |
|
47 | + * provider (ie, initiated by admin on the payment prover's website who sends an IPN to EE) |
|
48 | + * |
|
49 | + * @var boolean |
|
50 | + */ |
|
51 | + protected $_supports_receiving_refunds = false; |
|
52 | + /** |
|
53 | + * Model for querying for existing payments |
|
54 | + * |
|
55 | + * @var EEMI_Payment |
|
56 | + */ |
|
57 | + protected $_pay_model; |
|
58 | + |
|
59 | + /** |
|
60 | + * Model used for adding to the payments log |
|
61 | + * |
|
62 | + * @var EEMI_Payment_Log |
|
63 | + */ |
|
64 | + protected $_pay_log; |
|
65 | + |
|
66 | + /** |
|
67 | + * Used for formatting some input to gateways |
|
68 | + * |
|
69 | + * @var EEHI_Template |
|
70 | + */ |
|
71 | + protected $_template; |
|
72 | + |
|
73 | + /** |
|
74 | + * Concrete class that implements EEHI_Money, used by most gateways |
|
75 | + * |
|
76 | + * @var EEHI_Money |
|
77 | + */ |
|
78 | + protected $_money; |
|
79 | + |
|
80 | + /** |
|
81 | + * Concrete class that implements EEHI_Line_Item, used for manipulating the line item tree |
|
82 | + * |
|
83 | + * @var EEHI_Line_Item |
|
84 | + */ |
|
85 | + protected $_line_item; |
|
86 | + |
|
87 | + /** |
|
88 | + * @var GatewayDataFormatterInterface |
|
89 | + */ |
|
90 | + protected $_gateway_data_formatter; |
|
91 | + |
|
92 | + /** |
|
93 | + * @var FormatterInterface |
|
94 | + */ |
|
95 | + protected $_unsupported_character_remover; |
|
96 | + |
|
97 | + /** |
|
98 | + * The ID of the payment method using this gateway |
|
99 | + * |
|
100 | + * @var int |
|
101 | + */ |
|
102 | + protected $_ID; |
|
103 | + |
|
104 | + /** |
|
105 | + * @var $_debug_mode boolean whether to send requests to teh sandbox site or not |
|
106 | + */ |
|
107 | + protected $_debug_mode; |
|
108 | + /** |
|
109 | + * |
|
110 | + * @var string $_name name to show for this payment method |
|
111 | + */ |
|
112 | + protected $_name; |
|
113 | + /** |
|
114 | + * |
|
115 | + * @var string name to show fir this payment method to admin-type users |
|
116 | + */ |
|
117 | + protected $_admin_name; |
|
118 | + |
|
119 | + /** |
|
120 | + * @return EE_Gateway |
|
121 | + */ |
|
122 | + public function __construct() |
|
123 | + { |
|
124 | + } |
|
125 | + |
|
126 | + /** |
|
127 | + * We don't want to serialize models as they often have circular structures |
|
128 | + * (eg a payment model has a reference to each payment model object; and most |
|
129 | + * payments have a transaction, most transactions have a payment method; |
|
130 | + * most payment methods have a payment method type; most payment method types |
|
131 | + * have a gateway. And if a gateway serializes its models, we start at the |
|
132 | + * beginning again) |
|
133 | + * |
|
134 | + * @return array |
|
135 | + */ |
|
136 | + public function __sleep() |
|
137 | + { |
|
138 | + $properties = get_object_vars($this); |
|
139 | + unset($properties['_pay_model'], $properties['_pay_log']); |
|
140 | + return array_keys($properties); |
|
141 | + } |
|
142 | + |
|
143 | + /** |
|
144 | + * Returns whether or not this gateway should support SENDING refunds |
|
145 | + * see $_supports_sending_refunds |
|
146 | + * |
|
147 | + * @return boolean |
|
148 | + */ |
|
149 | + public function supports_sending_refunds() |
|
150 | + { |
|
151 | + return $this->_supports_sending_refunds; |
|
152 | + } |
|
153 | + |
|
154 | + /** |
|
155 | + * Returns whether or not this gateway should support RECEIVING refunds |
|
156 | + * see $_supports_receiving_refunds |
|
157 | + * |
|
158 | + * @return boolean |
|
159 | + */ |
|
160 | + public function supports_receiving_refunds() |
|
161 | + { |
|
162 | + return $this->_supports_receiving_refunds; |
|
163 | + } |
|
164 | + |
|
165 | + |
|
166 | + /** |
|
167 | + * Tries to refund the payment specified, taking into account the extra |
|
168 | + * refund info. Note that if the gateway's _supports_sending_refunds is false, |
|
169 | + * this should just throw an exception. |
|
170 | + * |
|
171 | + * @param EE_Payment $payment |
|
172 | + * @param array $refund_info |
|
173 | + * @return EE_Payment for the refund |
|
174 | + * @throws EE_Error |
|
175 | + */ |
|
176 | + public function do_direct_refund(EE_Payment $payment, $refund_info = null) |
|
177 | + { |
|
178 | + return null; |
|
179 | + } |
|
180 | + |
|
181 | + |
|
182 | + /** |
|
183 | + * Sets the payment method's settings so the gateway knows where to send the request |
|
184 | + * etc |
|
185 | + * |
|
186 | + * @param array $settings_array |
|
187 | + */ |
|
188 | + public function set_settings($settings_array) |
|
189 | + { |
|
190 | + foreach ($settings_array as $name => $value) { |
|
191 | + $property_name = "_" . $name; |
|
192 | + $this->{$property_name} = $value; |
|
193 | + } |
|
194 | + } |
|
195 | + |
|
196 | + /** |
|
197 | + * See this class description |
|
198 | + * |
|
199 | + * @param EEMI_Payment $payment_model |
|
200 | + */ |
|
201 | + public function set_payment_model($payment_model) |
|
202 | + { |
|
203 | + $this->_pay_model = $payment_model; |
|
204 | + } |
|
205 | + |
|
206 | + /** |
|
207 | + * See this class description |
|
208 | + * |
|
209 | + * @param EEMI_Payment_Log $payment_log_model |
|
210 | + */ |
|
211 | + public function set_payment_log($payment_log_model) |
|
212 | + { |
|
213 | + $this->_pay_log = $payment_log_model; |
|
214 | + } |
|
215 | + |
|
216 | + /** |
|
217 | + * See this class description |
|
218 | + * |
|
219 | + * @param EEHI_Template $template_helper |
|
220 | + */ |
|
221 | + public function set_template_helper($template_helper) |
|
222 | + { |
|
223 | + $this->_template = $template_helper; |
|
224 | + } |
|
225 | + |
|
226 | + /** |
|
227 | + * See this class description |
|
228 | + * |
|
229 | + * @param EEHI_Line_Item $line_item_helper |
|
230 | + */ |
|
231 | + public function set_line_item_helper($line_item_helper) |
|
232 | + { |
|
233 | + $this->_line_item = $line_item_helper; |
|
234 | + } |
|
235 | + |
|
236 | + /** |
|
237 | + * See this class description |
|
238 | + * |
|
239 | + * @param EEHI_Money $money_helper |
|
240 | + */ |
|
241 | + public function set_money_helper($money_helper) |
|
242 | + { |
|
243 | + $this->_money = $money_helper; |
|
244 | + } |
|
245 | + |
|
246 | + |
|
247 | + /** |
|
248 | + * Sets the gateway data formatter helper |
|
249 | + * |
|
250 | + * @param GatewayDataFormatterInterface $gateway_data_formatter |
|
251 | + * @throws InvalidEntityException if it's not set properly |
|
252 | + */ |
|
253 | + public function set_gateway_data_formatter(GatewayDataFormatterInterface $gateway_data_formatter) |
|
254 | + { |
|
255 | + if (! $gateway_data_formatter instanceof GatewayDataFormatterInterface) { |
|
256 | + throw new InvalidEntityException( |
|
257 | + is_object($gateway_data_formatter) |
|
258 | + ? get_class($gateway_data_formatter) |
|
259 | + : esc_html__('Not an object', 'event_espresso'), |
|
260 | + '\\EventEspresso\\core\\services\\payment_methods\\gateways\\GatewayDataFormatterInterface' |
|
261 | + ); |
|
262 | + } |
|
263 | + $this->_gateway_data_formatter = $gateway_data_formatter; |
|
264 | + } |
|
265 | + |
|
266 | + /** |
|
267 | + * Gets the gateway data formatter |
|
268 | + * |
|
269 | + * @return GatewayDataFormatterInterface |
|
270 | + * @throws InvalidEntityException if it's not set properly |
|
271 | + */ |
|
272 | + protected function _get_gateway_formatter() |
|
273 | + { |
|
274 | + if (! $this->_gateway_data_formatter instanceof GatewayDataFormatterInterface) { |
|
275 | + throw new InvalidEntityException( |
|
276 | + is_object($this->_gateway_data_formatter) |
|
277 | + ? get_class($this->_gateway_data_formatter) |
|
278 | + : esc_html__('Not an object', 'event_espresso'), |
|
279 | + '\\EventEspresso\\core\\services\\payment_methods\\gateways\\GatewayDataFormatterInterface' |
|
280 | + ); |
|
281 | + } |
|
282 | + return $this->_gateway_data_formatter; |
|
283 | + } |
|
284 | + |
|
285 | + |
|
286 | + /** |
|
287 | + * Sets the helper which will remove unsupported characters for most gateways |
|
288 | + * |
|
289 | + * @param FormatterInterface $formatter |
|
290 | + * @return FormatterInterface |
|
291 | + * @throws InvalidEntityException |
|
292 | + */ |
|
293 | + public function set_unsupported_character_remover(FormatterInterface $formatter) |
|
294 | + { |
|
295 | + if (! $formatter instanceof FormatterInterface) { |
|
296 | + throw new InvalidEntityException( |
|
297 | + is_object($formatter) |
|
298 | + ? get_class($formatter) |
|
299 | + : esc_html__('Not an object', 'event_espresso'), |
|
300 | + '\\EventEspresso\\core\\services\\formatters\\FormatterInterface' |
|
301 | + ); |
|
302 | + } |
|
303 | + $this->_unsupported_character_remover = $formatter; |
|
304 | + } |
|
305 | + |
|
306 | + /** |
|
307 | + * Gets the helper which removes characters which gateways might not support, like emojis etc. |
|
308 | + * |
|
309 | + * @return FormatterInterface |
|
310 | + * @throws InvalidEntityException |
|
311 | + */ |
|
312 | + protected function _get_unsupported_character_remover() |
|
313 | + { |
|
314 | + if (! $this->_unsupported_character_remover instanceof FormatterInterface) { |
|
315 | + throw new InvalidEntityException( |
|
316 | + is_object($this->_unsupported_character_remover) |
|
317 | + ? get_class($this->_unsupported_character_remover) |
|
318 | + : esc_html__('Not an object', 'event_espresso'), |
|
319 | + '\\EventEspresso\\core\\services\\formatters\\FormatterInterface' |
|
320 | + ); |
|
321 | + } |
|
322 | + return $this->_unsupported_character_remover; |
|
323 | + } |
|
324 | + |
|
325 | + |
|
326 | + /** |
|
327 | + * @param $message |
|
328 | + * @param $payment |
|
329 | + */ |
|
330 | + public function log($message, $object_logged) |
|
331 | + { |
|
332 | + if ($object_logged instanceof EEI_Payment) { |
|
333 | + $type = 'Payment'; |
|
334 | + $id = $object_logged->ID(); |
|
335 | + } elseif ($object_logged instanceof EEI_Transaction) { |
|
336 | + $type = 'Transaction'; |
|
337 | + $id = $object_logged->ID(); |
|
338 | + } else { |
|
339 | + $type = 'Payment_Method'; |
|
340 | + $id = $this->_ID; |
|
341 | + } |
|
342 | + // only log if we're going to store it for longer than the minimum time |
|
343 | + $reg_config = LoaderFactory::getLoader()->load('EE_Registration_Config'); |
|
344 | + if ($reg_config->gateway_log_lifespan !== '1 second') { |
|
345 | + $this->_pay_log->gateway_log($message, $id, $type); |
|
346 | + } |
|
347 | + } |
|
348 | + |
|
349 | + /** |
|
350 | + * Formats the amount so it can generally be sent to gateways |
|
351 | + * |
|
352 | + * @param float $amount |
|
353 | + * @return string |
|
354 | + * @deprecated since 4.9.31 insetad use |
|
355 | + * EventEspresso\core\services\payment_methods\gateways\GatewayDataFormatter::format_currency() |
|
356 | + */ |
|
357 | + public function format_currency($amount) |
|
358 | + { |
|
359 | + return $this->_get_gateway_formatter()->formatCurrency($amount); |
|
360 | + } |
|
361 | + |
|
362 | + /** |
|
363 | + * Returns either an array of all the currency codes supported, |
|
364 | + * or a string indicating they're all supported (EE_gateway::all_currencies_supported) |
|
365 | + * |
|
366 | + * @return mixed array or string |
|
367 | + */ |
|
368 | + public function currencies_supported() |
|
369 | + { |
|
370 | + return $this->_currencies_supported; |
|
371 | + } |
|
372 | + |
|
373 | + /** |
|
374 | + * Returns what a simple summing of items and taxes for this transaction. This |
|
375 | + * can be used to determine if some more complex line items, like promotions, |
|
376 | + * surcharges, or cancellations occurred (in which case we might want to forget |
|
377 | + * about creating an itemized list of purchases and instead only send the total due) |
|
378 | + * |
|
379 | + * @param EE_Transaction $transaction |
|
380 | + * @return float |
|
381 | + */ |
|
382 | + protected function _sum_items_and_taxes(EE_Transaction $transaction) |
|
383 | + { |
|
384 | + $total_line_item = $transaction->total_line_item(); |
|
385 | + $total = 0; |
|
386 | + foreach ($total_line_item->get_items() as $item_line_item) { |
|
387 | + $total += max($item_line_item->total(), 0); |
|
388 | + } |
|
389 | + foreach ($total_line_item->tax_descendants() as $tax_line_item) { |
|
390 | + $total += max($tax_line_item->total(), 0); |
|
391 | + } |
|
392 | + return $total; |
|
393 | + } |
|
394 | + |
|
395 | + /** |
|
396 | + * Determines whether or not we can easily itemize the transaction using only |
|
397 | + * items and taxes (ie, no promotions or surcharges or cancellations needed) |
|
398 | + * |
|
399 | + * @param EEI_Payment $payment |
|
400 | + * @return boolean |
|
401 | + */ |
|
402 | + protected function _can_easily_itemize_transaction_for(EEI_Payment $payment) |
|
403 | + { |
|
404 | + return $this->_money->compare_floats( |
|
405 | + $this->_sum_items_and_taxes($payment->transaction()), |
|
406 | + $payment->transaction()->total() |
|
407 | + ) |
|
408 | + && $this->_money->compare_floats( |
|
409 | + $payment->amount(), |
|
410 | + $payment->transaction()->total() |
|
411 | + ); |
|
412 | + } |
|
413 | + |
|
414 | + /** |
|
415 | + * Handles updating the transaction and any other related data based on the payment. |
|
416 | + * You may be tempted to do this as part of do_direct_payment or handle_payment_update, |
|
417 | + * but doing so on those functions might be too early. It's possible that the changes |
|
418 | + * you make to teh transaction or registration or line items may just get overwritten |
|
419 | + * at that point. Instead, you should store any info you need on the payment during those |
|
420 | + * functions, and use that information at this step, which client code will decide |
|
421 | + * for you when it should be called. |
|
422 | + * |
|
423 | + * @param EE_Payment $payment |
|
424 | + * @return void |
|
425 | + */ |
|
426 | + public function update_txn_based_on_payment($payment) |
|
427 | + { |
|
428 | + // maybe update the transaction or line items or registrations |
|
429 | + // but most gateways don't need to do this, because they only update the payment |
|
430 | + } |
|
431 | + |
|
432 | + /** |
|
433 | + * Gets the first event for this payment (it's possible that it could be for multiple) |
|
434 | + * |
|
435 | + * @param EEI_Payment $payment |
|
436 | + * @return EEI_Event|null |
|
437 | + * @deprecated since 4.9.31 instead use EEI_Payment::get_first_event() |
|
438 | + */ |
|
439 | + protected function _get_first_event_for_payment(EEI_Payment $payment) |
|
440 | + { |
|
441 | + return $payment->get_first_event(); |
|
442 | + } |
|
443 | + |
|
444 | + /** |
|
445 | + * Gets the name of the first event for which is being paid |
|
446 | + * |
|
447 | + * @param EEI_Payment $payment |
|
448 | + * @return string |
|
449 | + * @deprecated since 4.9.31 instead use EEI_Payment::get_first_event_name() |
|
450 | + */ |
|
451 | + protected function _get_first_event_name_for_payment(EEI_Payment $payment) |
|
452 | + { |
|
453 | + return $payment->get_first_event_name(); |
|
454 | + } |
|
455 | + |
|
456 | + /** |
|
457 | + * Gets the text to use for a gateway's line item name when this is a partial payment |
|
458 | + * |
|
459 | + * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatPartialPaymentLineItemName($payment) |
|
460 | + * @param EE_Payment $payment |
|
461 | + * @return string |
|
462 | + */ |
|
463 | + protected function _format_partial_payment_line_item_name(EEI_Payment $payment) |
|
464 | + { |
|
465 | + return $this->_get_gateway_formatter()->formatPartialPaymentLineItemName($payment); |
|
466 | + } |
|
467 | + |
|
468 | + /** |
|
469 | + * Gets the text to use for a gateway's line item description when this is a partial payment |
|
470 | + * |
|
471 | + * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatPartialPaymentLineItemDesc() |
|
472 | + * @param EEI_Payment $payment |
|
473 | + * @return string |
|
474 | + */ |
|
475 | + protected function _format_partial_payment_line_item_desc(EEI_Payment $payment) |
|
476 | + { |
|
477 | + return $this->_get_gateway_formatter()->formatPartialPaymentLineItemDesc($payment); |
|
478 | + } |
|
479 | + |
|
480 | + /** |
|
481 | + * Gets the name to use for a line item when sending line items to the gateway |
|
482 | + * |
|
483 | + * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatLineItemName($line_item,$payment) |
|
484 | + * @param EEI_Line_Item $line_item |
|
485 | + * @param EEI_Payment $payment |
|
486 | + * @return string |
|
487 | + */ |
|
488 | + protected function _format_line_item_name(EEI_Line_Item $line_item, EEI_Payment $payment) |
|
489 | + { |
|
490 | + return $this->_get_gateway_formatter()->formatLineItemName($line_item, $payment); |
|
491 | + } |
|
492 | + |
|
493 | + /** |
|
494 | + * Gets the description to use for a line item when sending line items to the gateway |
|
495 | + * |
|
496 | + * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatLineItemDesc($line_item, $payment)) |
|
497 | + * @param EEI_Line_Item $line_item |
|
498 | + * @param EEI_Payment $payment |
|
499 | + * @return string |
|
500 | + */ |
|
501 | + protected function _format_line_item_desc(EEI_Line_Item $line_item, EEI_Payment $payment) |
|
502 | + { |
|
503 | + return $this->_get_gateway_formatter()->formatLineItemDesc($line_item, $payment); |
|
504 | + } |
|
505 | + |
|
506 | + /** |
|
507 | + * Gets the order description that should generlly be sent to gateways |
|
508 | + * |
|
509 | + * @deprecated since 4.9.31 instead use $this->_get_gateway_formatter()->formatOrderDescription($payment) |
|
510 | + * @param EEI_Payment $payment |
|
511 | + * @return type |
|
512 | + */ |
|
513 | + protected function _format_order_description(EEI_Payment $payment) |
|
514 | + { |
|
515 | + return $this->_get_gateway_formatter()->formatOrderDescription($payment); |
|
516 | + } |
|
517 | 517 | } |
@@ -15,117 +15,117 @@ |
||
15 | 15 | abstract class EE_Offsite_Gateway extends EE_Gateway |
16 | 16 | { |
17 | 17 | |
18 | - /** |
|
19 | - * whether or not the gateway uses an IPN |
|
20 | - * that is sent in a separate request than the returning registrant. |
|
21 | - * if false, then we need to process the payment results manually |
|
22 | - * as soon as the registrant returns from the off-site gateway |
|
23 | - * |
|
24 | - * @type bool |
|
25 | - */ |
|
26 | - protected $_uses_separate_IPN_request = false; |
|
18 | + /** |
|
19 | + * whether or not the gateway uses an IPN |
|
20 | + * that is sent in a separate request than the returning registrant. |
|
21 | + * if false, then we need to process the payment results manually |
|
22 | + * as soon as the registrant returns from the off-site gateway |
|
23 | + * |
|
24 | + * @type bool |
|
25 | + */ |
|
26 | + protected $_uses_separate_IPN_request = false; |
|
27 | 27 | |
28 | 28 | |
29 | - /** |
|
30 | - * @return EE_Offsite_Gateway |
|
31 | - */ |
|
32 | - public function __construct() |
|
33 | - { |
|
34 | - $this->_supports_receiving_refunds = true; |
|
35 | - parent::__construct(); |
|
36 | - } |
|
29 | + /** |
|
30 | + * @return EE_Offsite_Gateway |
|
31 | + */ |
|
32 | + public function __construct() |
|
33 | + { |
|
34 | + $this->_supports_receiving_refunds = true; |
|
35 | + parent::__construct(); |
|
36 | + } |
|
37 | 37 | |
38 | 38 | |
39 | - /** |
|
40 | - * Adds information into the payment object's redirect_url and redirect_args so |
|
41 | - * client code can use that payment to know where (and with what information) |
|
42 | - * to redirect the user to in order to make the payment on the offsite gateway's website. |
|
43 | - * Saving the payment from within this method is unnecessary, |
|
44 | - * as it is the responsibility of client code to save it. |
|
45 | - * |
|
46 | - * @param EE_Payment $payment to process |
|
47 | - * @param array $billing_info |
|
48 | - * @param string $return_url URL to send the user to after a successful payment on the payment provider's |
|
49 | - * website |
|
50 | - * @param string $notify_url URL to send the instant payment notification |
|
51 | - * @param string $cancel_url URL to send the user to after a cancelled payment attempt on teh payment |
|
52 | - * provider's website |
|
53 | - * @return EE_Payment |
|
54 | - */ |
|
55 | - abstract public function set_redirection_info( |
|
56 | - $payment, |
|
57 | - $billing_info = array(), |
|
58 | - $return_url = null, |
|
59 | - $notify_url = null, |
|
60 | - $cancel_url = null |
|
61 | - ); |
|
39 | + /** |
|
40 | + * Adds information into the payment object's redirect_url and redirect_args so |
|
41 | + * client code can use that payment to know where (and with what information) |
|
42 | + * to redirect the user to in order to make the payment on the offsite gateway's website. |
|
43 | + * Saving the payment from within this method is unnecessary, |
|
44 | + * as it is the responsibility of client code to save it. |
|
45 | + * |
|
46 | + * @param EE_Payment $payment to process |
|
47 | + * @param array $billing_info |
|
48 | + * @param string $return_url URL to send the user to after a successful payment on the payment provider's |
|
49 | + * website |
|
50 | + * @param string $notify_url URL to send the instant payment notification |
|
51 | + * @param string $cancel_url URL to send the user to after a cancelled payment attempt on teh payment |
|
52 | + * provider's website |
|
53 | + * @return EE_Payment |
|
54 | + */ |
|
55 | + abstract public function set_redirection_info( |
|
56 | + $payment, |
|
57 | + $billing_info = array(), |
|
58 | + $return_url = null, |
|
59 | + $notify_url = null, |
|
60 | + $cancel_url = null |
|
61 | + ); |
|
62 | 62 | |
63 | 63 | |
64 | - /** |
|
65 | - * Often used for IPNs. But applies the info in $update_info to the payment. |
|
66 | - * What is $update_info? Often the contents of $_REQUEST, but not necessarily. Whatever |
|
67 | - * the payment method passes in. Saving the payment from within this method is unnecessary, |
|
68 | - * as it is the responsibility of client code to save it. |
|
69 | - * |
|
70 | - * @param array $update_info of whatever |
|
71 | - * @param EEI_Transaction $transaction |
|
72 | - * @return EEI_Payment updated |
|
73 | - */ |
|
74 | - abstract public function handle_payment_update($update_info, $transaction); |
|
64 | + /** |
|
65 | + * Often used for IPNs. But applies the info in $update_info to the payment. |
|
66 | + * What is $update_info? Often the contents of $_REQUEST, but not necessarily. Whatever |
|
67 | + * the payment method passes in. Saving the payment from within this method is unnecessary, |
|
68 | + * as it is the responsibility of client code to save it. |
|
69 | + * |
|
70 | + * @param array $update_info of whatever |
|
71 | + * @param EEI_Transaction $transaction |
|
72 | + * @return EEI_Payment updated |
|
73 | + */ |
|
74 | + abstract public function handle_payment_update($update_info, $transaction); |
|
75 | 75 | |
76 | 76 | |
77 | - /** |
|
78 | - * uses_separate_IPN_request |
|
79 | - * |
|
80 | - * return true or false for whether or not the gateway uses an IPN |
|
81 | - * that is sent in a separate request than the returning registrant. |
|
82 | - * if false, then we need to process the payment results manually |
|
83 | - * as soon as the registrant returns from the off-site gateway |
|
84 | - * |
|
85 | - * @deprecated since version 4.8.39.rc.001 please use handle_IPN_in_this_request() instead |
|
86 | - * |
|
87 | - * @return bool |
|
88 | - */ |
|
89 | - public function uses_separate_IPN_request() |
|
90 | - { |
|
91 | - return $this->_uses_separate_IPN_request; |
|
92 | - } |
|
77 | + /** |
|
78 | + * uses_separate_IPN_request |
|
79 | + * |
|
80 | + * return true or false for whether or not the gateway uses an IPN |
|
81 | + * that is sent in a separate request than the returning registrant. |
|
82 | + * if false, then we need to process the payment results manually |
|
83 | + * as soon as the registrant returns from the off-site gateway |
|
84 | + * |
|
85 | + * @deprecated since version 4.8.39.rc.001 please use handle_IPN_in_this_request() instead |
|
86 | + * |
|
87 | + * @return bool |
|
88 | + */ |
|
89 | + public function uses_separate_IPN_request() |
|
90 | + { |
|
91 | + return $this->_uses_separate_IPN_request; |
|
92 | + } |
|
93 | 93 | |
94 | 94 | |
95 | - /** |
|
96 | - * set_uses_separate_IPN_request |
|
97 | - * |
|
98 | - * @access protected |
|
99 | - * @param boolean $uses_separate_IPN_request |
|
100 | - */ |
|
101 | - protected function set_uses_separate_IPN_request($uses_separate_IPN_request) |
|
102 | - { |
|
103 | - $this->_uses_separate_IPN_request = filter_var($uses_separate_IPN_request, FILTER_VALIDATE_BOOLEAN); |
|
104 | - } |
|
95 | + /** |
|
96 | + * set_uses_separate_IPN_request |
|
97 | + * |
|
98 | + * @access protected |
|
99 | + * @param boolean $uses_separate_IPN_request |
|
100 | + */ |
|
101 | + protected function set_uses_separate_IPN_request($uses_separate_IPN_request) |
|
102 | + { |
|
103 | + $this->_uses_separate_IPN_request = filter_var($uses_separate_IPN_request, FILTER_VALIDATE_BOOLEAN); |
|
104 | + } |
|
105 | 105 | |
106 | - /** |
|
107 | - * Allows gateway to dynamically decide whether or not to handle a payment update |
|
108 | - * by overriding this method. By default, if this is a "true" IPN (meaning |
|
109 | - * it's a separate request from when the user returns from the offsite gateway) |
|
110 | - * and this gateway class is setup to handle IPNs in separate "true" IPNs, then |
|
111 | - * this will return true, otherwise it will return false. |
|
112 | - * If however, this is a request when the user is returning |
|
113 | - * from an offsite gateway, and this gateway class is setup to process the payment |
|
114 | - * data when the user returns, then this will return true. |
|
115 | - * |
|
116 | - * @param array $request_data |
|
117 | - * @param boolean $separate_IPN_request |
|
118 | - * @return boolean |
|
119 | - */ |
|
120 | - public function handle_IPN_in_this_request($request_data, $separate_IPN_request) |
|
121 | - { |
|
122 | - if ($separate_IPN_request) { |
|
123 | - // payment data being sent in a request separate from the user |
|
124 | - // it is this other request that will update the TXN and payment info |
|
125 | - return $this->_uses_separate_IPN_request; |
|
126 | - } else { |
|
127 | - // it's a request where the user returned from an offsite gateway WITH the payment data |
|
128 | - return ! $this->_uses_separate_IPN_request; |
|
129 | - } |
|
130 | - } |
|
106 | + /** |
|
107 | + * Allows gateway to dynamically decide whether or not to handle a payment update |
|
108 | + * by overriding this method. By default, if this is a "true" IPN (meaning |
|
109 | + * it's a separate request from when the user returns from the offsite gateway) |
|
110 | + * and this gateway class is setup to handle IPNs in separate "true" IPNs, then |
|
111 | + * this will return true, otherwise it will return false. |
|
112 | + * If however, this is a request when the user is returning |
|
113 | + * from an offsite gateway, and this gateway class is setup to process the payment |
|
114 | + * data when the user returns, then this will return true. |
|
115 | + * |
|
116 | + * @param array $request_data |
|
117 | + * @param boolean $separate_IPN_request |
|
118 | + * @return boolean |
|
119 | + */ |
|
120 | + public function handle_IPN_in_this_request($request_data, $separate_IPN_request) |
|
121 | + { |
|
122 | + if ($separate_IPN_request) { |
|
123 | + // payment data being sent in a request separate from the user |
|
124 | + // it is this other request that will update the TXN and payment info |
|
125 | + return $this->_uses_separate_IPN_request; |
|
126 | + } else { |
|
127 | + // it's a request where the user returned from an offsite gateway WITH the payment data |
|
128 | + return ! $this->_uses_separate_IPN_request; |
|
129 | + } |
|
130 | + } |
|
131 | 131 | } |
@@ -15,36 +15,36 @@ |
||
15 | 15 | abstract class EE_Onsite_Gateway extends EE_Gateway |
16 | 16 | { |
17 | 17 | |
18 | - /** |
|
19 | - * @return EE_Onsite_Gateway |
|
20 | - */ |
|
21 | - public function __construct() |
|
22 | - { |
|
23 | - $this->_supports_sending_refunds = true; |
|
24 | - parent::__construct(); |
|
25 | - } |
|
18 | + /** |
|
19 | + * @return EE_Onsite_Gateway |
|
20 | + */ |
|
21 | + public function __construct() |
|
22 | + { |
|
23 | + $this->_supports_sending_refunds = true; |
|
24 | + parent::__construct(); |
|
25 | + } |
|
26 | 26 | |
27 | - /** |
|
28 | - * Asks the gateway to do whatever it does to process the payment. Onsite gateways will |
|
29 | - * usually send a request directly to the payment provider and update the payment's status based on that; |
|
30 | - * whereas offsite gateways will usually just update the payment with the URL and query parameters to use |
|
31 | - * for sending the request via http_remote_request(). Saving the payment from within this method is unnecessary, |
|
32 | - * as it is the responsibility of client code to save it. |
|
33 | - * |
|
34 | - * @param EEI_Payment $payment |
|
35 | - * @param array $billing_info { |
|
36 | - * @type $first_name string |
|
37 | - * @type $last_name string |
|
38 | - * @type $email string |
|
39 | - * @type $address string |
|
40 | - * @type $address2 string |
|
41 | - * @type $city string |
|
42 | - * @type $state string name of the state (NOT int) |
|
43 | - * @type $country string 2-character ISO code see http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 |
|
44 | - * @type $zip string |
|
45 | - * @type $phone string |
|
46 | - * } unless a child class specifies these array keys are NOT present |
|
47 | - * @return EE_Payment updated |
|
48 | - */ |
|
49 | - abstract public function do_direct_payment($payment, $billing_info = null); |
|
27 | + /** |
|
28 | + * Asks the gateway to do whatever it does to process the payment. Onsite gateways will |
|
29 | + * usually send a request directly to the payment provider and update the payment's status based on that; |
|
30 | + * whereas offsite gateways will usually just update the payment with the URL and query parameters to use |
|
31 | + * for sending the request via http_remote_request(). Saving the payment from within this method is unnecessary, |
|
32 | + * as it is the responsibility of client code to save it. |
|
33 | + * |
|
34 | + * @param EEI_Payment $payment |
|
35 | + * @param array $billing_info { |
|
36 | + * @type $first_name string |
|
37 | + * @type $last_name string |
|
38 | + * @type $email string |
|
39 | + * @type $address string |
|
40 | + * @type $address2 string |
|
41 | + * @type $city string |
|
42 | + * @type $state string name of the state (NOT int) |
|
43 | + * @type $country string 2-character ISO code see http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 |
|
44 | + * @type $zip string |
|
45 | + * @type $phone string |
|
46 | + * } unless a child class specifies these array keys are NOT present |
|
47 | + * @return EE_Payment updated |
|
48 | + */ |
|
49 | + abstract public function do_direct_payment($payment, $billing_info = null); |
|
50 | 50 | } |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if (! defined('EVENT_ESPRESSO_VERSION')) { |
3 | - exit('No direct script access allowed'); |
|
3 | + exit('No direct script access allowed'); |
|
4 | 4 | } |
5 | 5 | /** |
6 | 6 | * payment_details_content |
@@ -10,5 +10,5 @@ discard block |
||
10 | 10 | */ |
11 | 11 | $gateway_response = $payment->gateway_response(); |
12 | 12 | if (! empty($gateway_response)) { |
13 | - echo '<span class="error payment-problem">' . $gateway_response . '</span>'; |
|
13 | + echo '<span class="error payment-problem">' . $gateway_response . '</span>'; |
|
14 | 14 | } |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if (! defined('EVENT_ESPRESSO_VERSION')) { |
|
2 | +if ( ! defined('EVENT_ESPRESSO_VERSION')) { |
|
3 | 3 | exit('No direct script access allowed'); |
4 | 4 | } |
5 | 5 | /** |
@@ -9,6 +9,6 @@ discard block |
||
9 | 9 | * @var EE_Payment_Method $payment_method |
10 | 10 | */ |
11 | 11 | $gateway_response = $payment->gateway_response(); |
12 | -if (! empty($gateway_response)) { |
|
13 | - echo '<span class="error payment-problem">' . $gateway_response . '</span>'; |
|
12 | +if ( ! empty($gateway_response)) { |
|
13 | + echo '<span class="error payment-problem">'.$gateway_response.'</span>'; |
|
14 | 14 | } |
@@ -14,88 +14,88 @@ |
||
14 | 14 | * ------------------------------------------------------------------------ |
15 | 15 | */ |
16 | 16 | /** |
17 | - * |
|
18 | - * Class EE_Receipt_Line_Item_Display_Strategy |
|
19 | - * |
|
20 | - * Description |
|
21 | - * |
|
22 | - * @package Event Espresso |
|
23 | - * @subpackage core |
|
24 | - * @author Brent Christensen |
|
25 | - * |
|
26 | - * |
|
27 | - */ |
|
17 | + * |
|
18 | + * Class EE_Receipt_Line_Item_Display_Strategy |
|
19 | + * |
|
20 | + * Description |
|
21 | + * |
|
22 | + * @package Event Espresso |
|
23 | + * @subpackage core |
|
24 | + * @author Brent Christensen |
|
25 | + * |
|
26 | + * |
|
27 | + */ |
|
28 | 28 | |
29 | 29 | class EE_Receipt_Line_Item_Display_Strategy implements EEI_Line_Item_Display |
30 | 30 | { |
31 | 31 | |
32 | - /** |
|
33 | - * @param EE_Line_Item $line_item |
|
34 | - * @param array $options |
|
35 | - * @return mixed |
|
36 | - */ |
|
37 | - public function display_line_item(EE_Line_Item $line_item, $options = array()) |
|
38 | - { |
|
32 | + /** |
|
33 | + * @param EE_Line_Item $line_item |
|
34 | + * @param array $options |
|
35 | + * @return mixed |
|
36 | + */ |
|
37 | + public function display_line_item(EE_Line_Item $line_item, $options = array()) |
|
38 | + { |
|
39 | 39 | |
40 | - $html = ''; |
|
41 | - // set some default options and merge with incoming |
|
42 | - $default_options = array( |
|
43 | - 'show_desc' => true, |
|
44 | - 'odd' => false |
|
45 | - ); |
|
46 | - $options = array_merge($default_options, (array) $options); |
|
47 | - switch ($line_item->type()) { |
|
48 | - case EEM_Line_Item::type_total: |
|
49 | - // loop thru children |
|
50 | - foreach ($line_item->children() as $child_line_item) { |
|
51 | - // recursively feed children back into this method |
|
40 | + $html = ''; |
|
41 | + // set some default options and merge with incoming |
|
42 | + $default_options = array( |
|
43 | + 'show_desc' => true, |
|
44 | + 'odd' => false |
|
45 | + ); |
|
46 | + $options = array_merge($default_options, (array) $options); |
|
47 | + switch ($line_item->type()) { |
|
48 | + case EEM_Line_Item::type_total: |
|
49 | + // loop thru children |
|
50 | + foreach ($line_item->children() as $child_line_item) { |
|
51 | + // recursively feed children back into this method |
|
52 | 52 | // $html .= $this->display_line_item( $child_line_item, $options ); |
53 | - } |
|
53 | + } |
|
54 | 54 | // $html .= $this->_separator_row( $options ); |
55 | 55 | // $html .= $this->_total_row( $line_item, __('Total', 'event_espresso'), $options ); |
56 | - break; |
|
56 | + break; |
|
57 | 57 | |
58 | 58 | |
59 | - case EEM_Line_Item::type_sub_total: |
|
60 | - // loop thru children |
|
61 | - foreach ($line_item->children() as $child_line_item) { |
|
62 | - // recursively feed children back into this method |
|
59 | + case EEM_Line_Item::type_sub_total: |
|
60 | + // loop thru children |
|
61 | + foreach ($line_item->children() as $child_line_item) { |
|
62 | + // recursively feed children back into this method |
|
63 | 63 | // $html .= $this->display_line_item( $child_line_item, $options ); |
64 | - } |
|
64 | + } |
|
65 | 65 | // $html .= $this->_total_row( $line_item, __('Sub-Total', 'event_espresso'), $options ); |
66 | - break; |
|
66 | + break; |
|
67 | 67 | |
68 | 68 | |
69 | - case EEM_Line_Item::type_tax_sub_total: |
|
70 | - // loop thru children |
|
71 | - foreach ($line_item->children() as $child_line_item) { |
|
72 | - // recursively feed children back into this method |
|
69 | + case EEM_Line_Item::type_tax_sub_total: |
|
70 | + // loop thru children |
|
71 | + foreach ($line_item->children() as $child_line_item) { |
|
72 | + // recursively feed children back into this method |
|
73 | 73 | // $html .= $this->display_line_item( $child_line_item, $options ); |
74 | - } |
|
74 | + } |
|
75 | 75 | // $html .= $this->_total_row( $line_item, __('Tax Total', 'event_espresso'), $options ); |
76 | - break; |
|
76 | + break; |
|
77 | 77 | |
78 | 78 | |
79 | - case EEM_Line_Item::type_line_item: |
|
80 | - // item row |
|
79 | + case EEM_Line_Item::type_line_item: |
|
80 | + // item row |
|
81 | 81 | // $html .= $this->_item_row( $line_item, $options ); |
82 | - // got any kids? |
|
83 | - foreach ($line_item->children() as $child_line_item) { |
|
82 | + // got any kids? |
|
83 | + foreach ($line_item->children() as $child_line_item) { |
|
84 | 84 | // $this->display_line_item( $child_line_item, $options ); |
85 | - } |
|
86 | - break; |
|
85 | + } |
|
86 | + break; |
|
87 | 87 | |
88 | 88 | |
89 | - case EEM_Line_Item::type_sub_line_item: |
|
89 | + case EEM_Line_Item::type_sub_line_item: |
|
90 | 90 | // $html .= $this->_sub_item_row( $line_item, $options ); |
91 | - break; |
|
91 | + break; |
|
92 | 92 | |
93 | 93 | |
94 | - case EEM_Line_Item::type_tax: |
|
94 | + case EEM_Line_Item::type_tax: |
|
95 | 95 | // $html .= $this->_tax_row( $line_item, $options ); |
96 | - break; |
|
97 | - } |
|
96 | + break; |
|
97 | + } |
|
98 | 98 | |
99 | - return $html; |
|
100 | - } |
|
99 | + return $html; |
|
100 | + } |
|
101 | 101 | } |
@@ -71,22 +71,22 @@ discard block |
||
71 | 71 | |
72 | 72 | $name_html = $line_item_related_object instanceof EEI_Line_Item_Object |
73 | 73 | ? $line_item_related_object->name() : $line_item->name(); |
74 | - $name_html = $name_link ? '<a href="' . $name_link . '">' . $name_html . '</a>' |
|
74 | + $name_html = $name_link ? '<a href="'.$name_link.'">'.$name_html.'</a>' |
|
75 | 75 | : $name_html; |
76 | 76 | $name_html .= $line_item->is_taxable() ? ' *' : ''; |
77 | 77 | // maybe preface with icon? |
78 | 78 | $name_html = $line_item_related_object instanceof EEI_Has_Icon |
79 | - ? $line_item_related_object->get_icon() . $name_html |
|
79 | + ? $line_item_related_object->get_icon().$name_html |
|
80 | 80 | : $name_html; |
81 | - $name_html = '<span class="ee-line-item-name linked">' . $name_html . '</span><br>'; |
|
82 | - $name_html .= sprintf( |
|
81 | + $name_html = '<span class="ee-line-item-name linked">'.$name_html.'</span><br>'; |
|
82 | + $name_html .= sprintf( |
|
83 | 83 | _x('%1$sfor the %2$s: %3$s%4$s', 'eg. "for the Event: My Cool Event"', 'event_espresso'), |
84 | 84 | '<span class="ee-line-item-related-parent-object">', |
85 | 85 | $line_item->parent() instanceof EE_Line_Item |
86 | 86 | ? $line_item->parent()->OBJ_type_i18n() |
87 | 87 | : __('Item:', 'event_espresso'), |
88 | 88 | $parent_related_object_link |
89 | - ? '<a href="' . $parent_related_object_link . '">' . $parent_related_object_name . '</a>' |
|
89 | + ? '<a href="'.$parent_related_object_link.'">'.$parent_related_object_name.'</a>' |
|
90 | 90 | : $parent_related_object_name, |
91 | 91 | '</span>' |
92 | 92 | ); |
@@ -96,7 +96,7 @@ discard block |
||
96 | 96 | $type_html .= $this->_get_cancellations($line_item); |
97 | 97 | $type_html .= $line_item->OBJ_type() ? '<br />' : ''; |
98 | 98 | $code = $line_item_related_object instanceof EEI_Has_Code ? $line_item_related_object->code() : ''; |
99 | - $type_html .= ! empty($code) ? '<span class="ee-line-item-id">' . sprintf(__('Code: %s', 'event_espresso'), $code) . '</span>' : ''; |
|
99 | + $type_html .= ! empty($code) ? '<span class="ee-line-item-id">'.sprintf(__('Code: %s', 'event_espresso'), $code).'</span>' : ''; |
|
100 | 100 | $html .= EEH_HTML::td($type_html, '', 'jst-left'); |
101 | 101 | |
102 | 102 | // Date column |
@@ -105,7 +105,7 @@ discard block |
||
105 | 105 | $datetimes = $line_item_related_object->datetimes(); |
106 | 106 | foreach ($datetimes as $datetime) { |
107 | 107 | if ($datetime instanceof EE_Datetime) { |
108 | - $datetime_content .= $datetime->get_dtt_display_name() . '<br>'; |
|
108 | + $datetime_content .= $datetime->get_dtt_display_name().'<br>'; |
|
109 | 109 | } |
110 | 110 | } |
111 | 111 | } |
@@ -113,7 +113,7 @@ discard block |
||
113 | 113 | |
114 | 114 | // Amount Column |
115 | 115 | if ($line_item->is_percent()) { |
116 | - $html .= EEH_HTML::td($line_item->percent() . '%', '', 'jst-rght'); |
|
116 | + $html .= EEH_HTML::td($line_item->percent().'%', '', 'jst-rght'); |
|
117 | 117 | } else { |
118 | 118 | $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'jst-rght'); |
119 | 119 | } |
@@ -138,7 +138,7 @@ discard block |
||
138 | 138 | // start of row |
139 | 139 | $html = EEH_HTML::tr('', 'admin-primary-mbox-taxes-tr'); |
140 | 140 | // name th |
141 | - $html .= EEH_HTML::th($line_item->name() . '(' . $line_item->get_pretty('LIN_percent') . '%)', '', 'jst-rght', '', ' colspan="3"'); |
|
141 | + $html .= EEH_HTML::th($line_item->name().'('.$line_item->get_pretty('LIN_percent').'%)', '', 'jst-rght', '', ' colspan="3"'); |
|
142 | 142 | // total th |
143 | 143 | $html .= EEH_HTML::th(EEH_Template::format_currency($line_item->total(), false, false), '', 'jst-rght'); |
144 | 144 | // end of row |
@@ -171,9 +171,9 @@ discard block |
||
171 | 171 | $html = EEH_HTML::tr('', '', 'admin-primary-mbox-total-tr'); |
172 | 172 | // Total th label |
173 | 173 | if ($total_match) { |
174 | - $total_label = sprintf(__('This registration\'s total %s:', 'event_espresso'), '(' . EE_Registry::instance()->CFG->currency->code . ')'); |
|
174 | + $total_label = sprintf(__('This registration\'s total %s:', 'event_espresso'), '('.EE_Registry::instance()->CFG->currency->code.')'); |
|
175 | 175 | } else { |
176 | - $total_label = sprintf(__('This registration\'s approximate total %s', 'event_espresso'), '(' . EE_Registry::instance()->CFG->currency->code . ')'); |
|
176 | + $total_label = sprintf(__('This registration\'s approximate total %s', 'event_espresso'), '('.EE_Registry::instance()->CFG->currency->code.')'); |
|
177 | 177 | $total_label .= '<br>'; |
178 | 178 | $total_label .= '<p class="ee-footnote-text">' |
179 | 179 | . sprintf( |
@@ -14,191 +14,191 @@ |
||
14 | 14 | class EE_Admin_Table_Registration_Line_Item_Display_Strategy extends EE_Admin_Table_Line_Item_Display_Strategy |
15 | 15 | { |
16 | 16 | |
17 | - /** |
|
18 | - * Table header for display. |
|
19 | - * @since 4.8 |
|
20 | - * @param array $options |
|
21 | - * @return string |
|
22 | - */ |
|
23 | - protected function _table_header($options) |
|
24 | - { |
|
25 | - $html = EEH_HTML::table('', '', $options['table_css_class']); |
|
26 | - $html .= EEH_HTML::thead(); |
|
27 | - $html .= EEH_HTML::tr(); |
|
28 | - $html .= EEH_HTML::th(__('Name', 'event_espresso'), '', 'jst-left'); |
|
29 | - $html .= EEH_HTML::th(__('Type', 'event_espresso'), '', 'jst-left'); |
|
30 | - $html .= EEH_HTML::th(__('Date(s)', 'event_espresso'), '', 'jst-left'); |
|
31 | - $html .= EEH_HTML::th(__('Amount', 'event_espresso'), '', 'jst-cntr'); |
|
32 | - $html .= EEH_HTML::tbody(); |
|
33 | - return $html; |
|
34 | - } |
|
35 | - |
|
36 | - |
|
37 | - |
|
38 | - |
|
39 | - |
|
40 | - /** |
|
41 | - * _item_row |
|
42 | - * |
|
43 | - * @param EE_Line_Item $line_item |
|
44 | - * @param array $options |
|
45 | - * @return mixed |
|
46 | - */ |
|
47 | - protected function _item_row(EE_Line_Item $line_item, $options = array()) |
|
48 | - { |
|
49 | - $line_item_related_object = $line_item->get_object(); |
|
50 | - $parent_line_item_related_object = $line_item->parent() instanceof EE_Line_Item |
|
51 | - ? $line_item->parent()->get_object() |
|
52 | - : null; |
|
53 | - // start of row |
|
54 | - $row_class = $options['odd'] ? 'item odd' : 'item'; |
|
55 | - $html = EEH_HTML::tr('', '', $row_class); |
|
56 | - |
|
57 | - |
|
58 | - // Name Column |
|
59 | - $name_link = $line_item_related_object instanceof EEI_Admin_Links ? $line_item_related_object->get_admin_details_link() : ''; |
|
60 | - |
|
61 | - // related object scope. |
|
62 | - $parent_related_object_name = $parent_line_item_related_object instanceof EEI_Line_Item_Object |
|
63 | - ? $parent_line_item_related_object->name() |
|
64 | - : ''; |
|
65 | - $parent_related_object_name = empty($parent_related_object_name) && $line_item->parent() instanceof EE_Line_Item |
|
66 | - ? $line_item->parent()->name() |
|
67 | - : $parent_related_object_name; |
|
68 | - $parent_related_object_link = $parent_line_item_related_object instanceof EEI_Admin_Links |
|
69 | - ? $parent_line_item_related_object->get_admin_details_link() |
|
70 | - : ''; |
|
71 | - |
|
72 | - |
|
73 | - $name_html = $line_item_related_object instanceof EEI_Line_Item_Object |
|
74 | - ? $line_item_related_object->name() : $line_item->name(); |
|
75 | - $name_html = $name_link ? '<a href="' . $name_link . '">' . $name_html . '</a>' |
|
76 | - : $name_html; |
|
77 | - $name_html .= $line_item->is_taxable() ? ' *' : ''; |
|
78 | - // maybe preface with icon? |
|
79 | - $name_html = $line_item_related_object instanceof EEI_Has_Icon |
|
80 | - ? $line_item_related_object->get_icon() . $name_html |
|
81 | - : $name_html; |
|
82 | - $name_html = '<span class="ee-line-item-name linked">' . $name_html . '</span><br>'; |
|
83 | - $name_html .= sprintf( |
|
84 | - _x('%1$sfor the %2$s: %3$s%4$s', 'eg. "for the Event: My Cool Event"', 'event_espresso'), |
|
85 | - '<span class="ee-line-item-related-parent-object">', |
|
86 | - $line_item->parent() instanceof EE_Line_Item |
|
87 | - ? $line_item->parent()->OBJ_type_i18n() |
|
88 | - : __('Item:', 'event_espresso'), |
|
89 | - $parent_related_object_link |
|
90 | - ? '<a href="' . $parent_related_object_link . '">' . $parent_related_object_name . '</a>' |
|
91 | - : $parent_related_object_name, |
|
92 | - '</span>' |
|
93 | - ); |
|
94 | - |
|
95 | - $name_html = apply_filters( |
|
96 | - 'FHEE__EE_Admin_Table_Registration_Line_Item_Display_Strategy___item_row__name_html', |
|
97 | - $name_html, |
|
98 | - $line_item, |
|
99 | - $options |
|
100 | - ); |
|
101 | - |
|
102 | - $html .= EEH_HTML::td($name_html, '', 'jst-left'); |
|
103 | - // Type Column |
|
104 | - $type_html = $line_item->OBJ_type() ? $line_item->OBJ_type_i18n() : ''; |
|
105 | - $type_html .= $this->_get_cancellations($line_item); |
|
106 | - $type_html .= $line_item->OBJ_type() ? '<br />' : ''; |
|
107 | - $code = $line_item_related_object instanceof EEI_Has_Code ? $line_item_related_object->code() : ''; |
|
108 | - $type_html .= ! empty($code) ? '<span class="ee-line-item-id">' . sprintf(__('Code: %s', 'event_espresso'), $code) . '</span>' : ''; |
|
109 | - $html .= EEH_HTML::td($type_html, '', 'jst-left'); |
|
110 | - |
|
111 | - // Date column |
|
112 | - $datetime_content = ''; |
|
113 | - if ($line_item_related_object instanceof EE_Ticket) { |
|
114 | - $datetimes = $line_item_related_object->datetimes(); |
|
115 | - foreach ($datetimes as $datetime) { |
|
116 | - if ($datetime instanceof EE_Datetime) { |
|
117 | - $datetime_content .= $datetime->get_dtt_display_name() . '<br>'; |
|
118 | - } |
|
119 | - } |
|
120 | - } |
|
121 | - $html .= EEH_HTML::td($datetime_content, '', 'jst-left'); |
|
122 | - |
|
123 | - // Amount Column |
|
124 | - if ($line_item->is_percent()) { |
|
125 | - $html .= EEH_HTML::td($line_item->percent() . '%', '', 'jst-rght'); |
|
126 | - } else { |
|
127 | - $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'jst-rght'); |
|
128 | - } |
|
129 | - |
|
130 | - |
|
131 | - // finish things off and return |
|
132 | - $html .= EEH_HTML::trx(); |
|
133 | - return $html; |
|
134 | - } |
|
135 | - |
|
136 | - |
|
137 | - |
|
138 | - /** |
|
139 | - * _tax_row |
|
140 | - * |
|
141 | - * @param EE_Line_Item $line_item |
|
142 | - * @param array $options |
|
143 | - * @return mixed |
|
144 | - */ |
|
145 | - protected function _tax_row(EE_Line_Item $line_item, $options = array()) |
|
146 | - { |
|
147 | - // start of row |
|
148 | - $html = EEH_HTML::tr('', 'admin-primary-mbox-taxes-tr'); |
|
149 | - // name th |
|
150 | - $html .= EEH_HTML::th($line_item->name() . '(' . $line_item->get_pretty('LIN_percent') . '%)', '', 'jst-rght', '', ' colspan="3"'); |
|
151 | - // total th |
|
152 | - $html .= EEH_HTML::th(EEH_Template::format_currency($line_item->total(), false, false), '', 'jst-rght'); |
|
153 | - // end of row |
|
154 | - $html .= EEH_HTML::trx(); |
|
155 | - return $html; |
|
156 | - } |
|
157 | - |
|
158 | - |
|
159 | - |
|
160 | - |
|
161 | - |
|
162 | - /** |
|
163 | - * _total_row |
|
164 | - * |
|
165 | - * @param EE_Line_Item $line_item |
|
166 | - * @param array $options |
|
167 | - * @return mixed |
|
168 | - */ |
|
169 | - protected function _total_row(EE_Line_Item $line_item, $options = array()) |
|
170 | - { |
|
171 | - |
|
172 | - $registration = isset($options['EE_Registration']) ? $options['EE_Registration'] : null; |
|
173 | - $registration_total = $registration instanceof EE_Registration ? $registration->pretty_final_price() : 0; |
|
174 | - // if no valid registration object then we're not going to show the approximate text. |
|
175 | - $total_match = $registration instanceof EE_Registration |
|
176 | - ? $registration->final_price() === $line_item->total() |
|
177 | - : true; |
|
178 | - |
|
179 | - // start of row |
|
180 | - $html = EEH_HTML::tr('', '', 'admin-primary-mbox-total-tr'); |
|
181 | - // Total th label |
|
182 | - if ($total_match) { |
|
183 | - $total_label = sprintf(__('This registration\'s total %s:', 'event_espresso'), '(' . EE_Registry::instance()->CFG->currency->code . ')'); |
|
184 | - } else { |
|
185 | - $total_label = sprintf(__('This registration\'s approximate total %s', 'event_espresso'), '(' . EE_Registry::instance()->CFG->currency->code . ')'); |
|
186 | - $total_label .= '<br>'; |
|
187 | - $total_label .= '<p class="ee-footnote-text">' |
|
188 | - . sprintf( |
|
189 | - __('The registrations\' share of the transaction total is approximate because it might not be possible to evenly divide the transaction total among each registration, and so some registrations may need to pay a penny more than others. This registration\'s final share is actually %1$s%2$s%3$s.', 'event_espresso'), |
|
190 | - '<strong>', |
|
191 | - $registration_total, |
|
192 | - '</strong>' |
|
193 | - ) |
|
194 | - . '</p>'; |
|
195 | - } |
|
196 | - $html .= EEH_HTML::th($total_label, '', 'jst-rght', '', ' colspan="3"'); |
|
197 | - // total th |
|
198 | - |
|
199 | - $html .= EEH_HTML::th(EEH_Template::format_currency($line_item->total(), false, false), '', 'jst-rght'); |
|
200 | - // end of row |
|
201 | - $html .= EEH_HTML::trx(); |
|
202 | - return $html; |
|
203 | - } |
|
17 | + /** |
|
18 | + * Table header for display. |
|
19 | + * @since 4.8 |
|
20 | + * @param array $options |
|
21 | + * @return string |
|
22 | + */ |
|
23 | + protected function _table_header($options) |
|
24 | + { |
|
25 | + $html = EEH_HTML::table('', '', $options['table_css_class']); |
|
26 | + $html .= EEH_HTML::thead(); |
|
27 | + $html .= EEH_HTML::tr(); |
|
28 | + $html .= EEH_HTML::th(__('Name', 'event_espresso'), '', 'jst-left'); |
|
29 | + $html .= EEH_HTML::th(__('Type', 'event_espresso'), '', 'jst-left'); |
|
30 | + $html .= EEH_HTML::th(__('Date(s)', 'event_espresso'), '', 'jst-left'); |
|
31 | + $html .= EEH_HTML::th(__('Amount', 'event_espresso'), '', 'jst-cntr'); |
|
32 | + $html .= EEH_HTML::tbody(); |
|
33 | + return $html; |
|
34 | + } |
|
35 | + |
|
36 | + |
|
37 | + |
|
38 | + |
|
39 | + |
|
40 | + /** |
|
41 | + * _item_row |
|
42 | + * |
|
43 | + * @param EE_Line_Item $line_item |
|
44 | + * @param array $options |
|
45 | + * @return mixed |
|
46 | + */ |
|
47 | + protected function _item_row(EE_Line_Item $line_item, $options = array()) |
|
48 | + { |
|
49 | + $line_item_related_object = $line_item->get_object(); |
|
50 | + $parent_line_item_related_object = $line_item->parent() instanceof EE_Line_Item |
|
51 | + ? $line_item->parent()->get_object() |
|
52 | + : null; |
|
53 | + // start of row |
|
54 | + $row_class = $options['odd'] ? 'item odd' : 'item'; |
|
55 | + $html = EEH_HTML::tr('', '', $row_class); |
|
56 | + |
|
57 | + |
|
58 | + // Name Column |
|
59 | + $name_link = $line_item_related_object instanceof EEI_Admin_Links ? $line_item_related_object->get_admin_details_link() : ''; |
|
60 | + |
|
61 | + // related object scope. |
|
62 | + $parent_related_object_name = $parent_line_item_related_object instanceof EEI_Line_Item_Object |
|
63 | + ? $parent_line_item_related_object->name() |
|
64 | + : ''; |
|
65 | + $parent_related_object_name = empty($parent_related_object_name) && $line_item->parent() instanceof EE_Line_Item |
|
66 | + ? $line_item->parent()->name() |
|
67 | + : $parent_related_object_name; |
|
68 | + $parent_related_object_link = $parent_line_item_related_object instanceof EEI_Admin_Links |
|
69 | + ? $parent_line_item_related_object->get_admin_details_link() |
|
70 | + : ''; |
|
71 | + |
|
72 | + |
|
73 | + $name_html = $line_item_related_object instanceof EEI_Line_Item_Object |
|
74 | + ? $line_item_related_object->name() : $line_item->name(); |
|
75 | + $name_html = $name_link ? '<a href="' . $name_link . '">' . $name_html . '</a>' |
|
76 | + : $name_html; |
|
77 | + $name_html .= $line_item->is_taxable() ? ' *' : ''; |
|
78 | + // maybe preface with icon? |
|
79 | + $name_html = $line_item_related_object instanceof EEI_Has_Icon |
|
80 | + ? $line_item_related_object->get_icon() . $name_html |
|
81 | + : $name_html; |
|
82 | + $name_html = '<span class="ee-line-item-name linked">' . $name_html . '</span><br>'; |
|
83 | + $name_html .= sprintf( |
|
84 | + _x('%1$sfor the %2$s: %3$s%4$s', 'eg. "for the Event: My Cool Event"', 'event_espresso'), |
|
85 | + '<span class="ee-line-item-related-parent-object">', |
|
86 | + $line_item->parent() instanceof EE_Line_Item |
|
87 | + ? $line_item->parent()->OBJ_type_i18n() |
|
88 | + : __('Item:', 'event_espresso'), |
|
89 | + $parent_related_object_link |
|
90 | + ? '<a href="' . $parent_related_object_link . '">' . $parent_related_object_name . '</a>' |
|
91 | + : $parent_related_object_name, |
|
92 | + '</span>' |
|
93 | + ); |
|
94 | + |
|
95 | + $name_html = apply_filters( |
|
96 | + 'FHEE__EE_Admin_Table_Registration_Line_Item_Display_Strategy___item_row__name_html', |
|
97 | + $name_html, |
|
98 | + $line_item, |
|
99 | + $options |
|
100 | + ); |
|
101 | + |
|
102 | + $html .= EEH_HTML::td($name_html, '', 'jst-left'); |
|
103 | + // Type Column |
|
104 | + $type_html = $line_item->OBJ_type() ? $line_item->OBJ_type_i18n() : ''; |
|
105 | + $type_html .= $this->_get_cancellations($line_item); |
|
106 | + $type_html .= $line_item->OBJ_type() ? '<br />' : ''; |
|
107 | + $code = $line_item_related_object instanceof EEI_Has_Code ? $line_item_related_object->code() : ''; |
|
108 | + $type_html .= ! empty($code) ? '<span class="ee-line-item-id">' . sprintf(__('Code: %s', 'event_espresso'), $code) . '</span>' : ''; |
|
109 | + $html .= EEH_HTML::td($type_html, '', 'jst-left'); |
|
110 | + |
|
111 | + // Date column |
|
112 | + $datetime_content = ''; |
|
113 | + if ($line_item_related_object instanceof EE_Ticket) { |
|
114 | + $datetimes = $line_item_related_object->datetimes(); |
|
115 | + foreach ($datetimes as $datetime) { |
|
116 | + if ($datetime instanceof EE_Datetime) { |
|
117 | + $datetime_content .= $datetime->get_dtt_display_name() . '<br>'; |
|
118 | + } |
|
119 | + } |
|
120 | + } |
|
121 | + $html .= EEH_HTML::td($datetime_content, '', 'jst-left'); |
|
122 | + |
|
123 | + // Amount Column |
|
124 | + if ($line_item->is_percent()) { |
|
125 | + $html .= EEH_HTML::td($line_item->percent() . '%', '', 'jst-rght'); |
|
126 | + } else { |
|
127 | + $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'jst-rght'); |
|
128 | + } |
|
129 | + |
|
130 | + |
|
131 | + // finish things off and return |
|
132 | + $html .= EEH_HTML::trx(); |
|
133 | + return $html; |
|
134 | + } |
|
135 | + |
|
136 | + |
|
137 | + |
|
138 | + /** |
|
139 | + * _tax_row |
|
140 | + * |
|
141 | + * @param EE_Line_Item $line_item |
|
142 | + * @param array $options |
|
143 | + * @return mixed |
|
144 | + */ |
|
145 | + protected function _tax_row(EE_Line_Item $line_item, $options = array()) |
|
146 | + { |
|
147 | + // start of row |
|
148 | + $html = EEH_HTML::tr('', 'admin-primary-mbox-taxes-tr'); |
|
149 | + // name th |
|
150 | + $html .= EEH_HTML::th($line_item->name() . '(' . $line_item->get_pretty('LIN_percent') . '%)', '', 'jst-rght', '', ' colspan="3"'); |
|
151 | + // total th |
|
152 | + $html .= EEH_HTML::th(EEH_Template::format_currency($line_item->total(), false, false), '', 'jst-rght'); |
|
153 | + // end of row |
|
154 | + $html .= EEH_HTML::trx(); |
|
155 | + return $html; |
|
156 | + } |
|
157 | + |
|
158 | + |
|
159 | + |
|
160 | + |
|
161 | + |
|
162 | + /** |
|
163 | + * _total_row |
|
164 | + * |
|
165 | + * @param EE_Line_Item $line_item |
|
166 | + * @param array $options |
|
167 | + * @return mixed |
|
168 | + */ |
|
169 | + protected function _total_row(EE_Line_Item $line_item, $options = array()) |
|
170 | + { |
|
171 | + |
|
172 | + $registration = isset($options['EE_Registration']) ? $options['EE_Registration'] : null; |
|
173 | + $registration_total = $registration instanceof EE_Registration ? $registration->pretty_final_price() : 0; |
|
174 | + // if no valid registration object then we're not going to show the approximate text. |
|
175 | + $total_match = $registration instanceof EE_Registration |
|
176 | + ? $registration->final_price() === $line_item->total() |
|
177 | + : true; |
|
178 | + |
|
179 | + // start of row |
|
180 | + $html = EEH_HTML::tr('', '', 'admin-primary-mbox-total-tr'); |
|
181 | + // Total th label |
|
182 | + if ($total_match) { |
|
183 | + $total_label = sprintf(__('This registration\'s total %s:', 'event_espresso'), '(' . EE_Registry::instance()->CFG->currency->code . ')'); |
|
184 | + } else { |
|
185 | + $total_label = sprintf(__('This registration\'s approximate total %s', 'event_espresso'), '(' . EE_Registry::instance()->CFG->currency->code . ')'); |
|
186 | + $total_label .= '<br>'; |
|
187 | + $total_label .= '<p class="ee-footnote-text">' |
|
188 | + . sprintf( |
|
189 | + __('The registrations\' share of the transaction total is approximate because it might not be possible to evenly divide the transaction total among each registration, and so some registrations may need to pay a penny more than others. This registration\'s final share is actually %1$s%2$s%3$s.', 'event_espresso'), |
|
190 | + '<strong>', |
|
191 | + $registration_total, |
|
192 | + '</strong>' |
|
193 | + ) |
|
194 | + . '</p>'; |
|
195 | + } |
|
196 | + $html .= EEH_HTML::th($total_label, '', 'jst-rght', '', ' colspan="3"'); |
|
197 | + // total th |
|
198 | + |
|
199 | + $html .= EEH_HTML::th(EEH_Template::format_currency($line_item->total(), false, false), '', 'jst-rght'); |
|
200 | + // end of row |
|
201 | + $html .= EEH_HTML::trx(); |
|
202 | + return $html; |
|
203 | + } |
|
204 | 204 | } |
@@ -1,222 +1,222 @@ |
||
1 | 1 | <?php |
2 | 2 | /** |
3 | - * |
|
4 | - * Class EE_Invoice_Line_Item_Display_Strategy |
|
5 | - * |
|
6 | - * Description |
|
7 | - * |
|
8 | - * @package Event Espresso |
|
9 | - * @subpackage core |
|
10 | - * @author Brent Christensen |
|
11 | - * |
|
12 | - * |
|
13 | - */ |
|
3 | + * |
|
4 | + * Class EE_Invoice_Line_Item_Display_Strategy |
|
5 | + * |
|
6 | + * Description |
|
7 | + * |
|
8 | + * @package Event Espresso |
|
9 | + * @subpackage core |
|
10 | + * @author Brent Christensen |
|
11 | + * |
|
12 | + * |
|
13 | + */ |
|
14 | 14 | class EE_Invoice_Line_Item_Display_Strategy implements EEI_Line_Item_Display |
15 | 15 | { |
16 | 16 | |
17 | - /** |
|
18 | - * @param EE_Line_Item $line_item |
|
19 | - * @param array $options |
|
20 | - * @return mixed |
|
21 | - */ |
|
22 | - public function display_line_item(EE_Line_Item $line_item, $options = array()) |
|
23 | - { |
|
24 | - |
|
25 | - $html = ''; |
|
26 | - // set some default options and merge with incoming |
|
27 | - $default_options = array( |
|
28 | - 'show_desc' => true, |
|
29 | - 'odd' => false |
|
30 | - ); |
|
31 | - $options = array_merge($default_options, (array) $options); |
|
32 | - |
|
33 | - switch ($line_item->type()) { |
|
34 | - case EEM_Line_Item::type_total: |
|
35 | - // loop thru children |
|
36 | - foreach ($line_item->children() as $child_line_item) { |
|
37 | - // recursively feed children back into this method |
|
38 | - $html .= $this->display_line_item($child_line_item, $options); |
|
39 | - } |
|
40 | - $html .= $this->_separator_row($options); |
|
41 | - $html .= $this->_total_row($line_item, __('Total', 'event_espresso'), $options); |
|
42 | - break; |
|
43 | - |
|
44 | - |
|
45 | - case EEM_Line_Item::type_sub_total: |
|
46 | - // loop thru children |
|
47 | - foreach ($line_item->children() as $child_line_item) { |
|
48 | - // recursively feed children back into this method |
|
49 | - $html .= $this->display_line_item($child_line_item, $options); |
|
50 | - } |
|
51 | - $html .= $this->_total_row($line_item, __('Sub-Total', 'event_espresso'), $options); |
|
52 | - break; |
|
53 | - |
|
54 | - |
|
55 | - case EEM_Line_Item::type_tax_sub_total: |
|
56 | - // loop thru children |
|
57 | - foreach ($line_item->children() as $child_line_item) { |
|
58 | - // recursively feed children back into this method |
|
59 | - $html .= $this->display_line_item($child_line_item, $options); |
|
60 | - } |
|
61 | - $html .= $this->_total_row($line_item, __('Tax Total', 'event_espresso'), $options); |
|
62 | - break; |
|
63 | - |
|
64 | - |
|
65 | - case EEM_Line_Item::type_line_item: |
|
66 | - // item row |
|
67 | - $html .= $this->_item_row($line_item, $options); |
|
68 | - // got any kids? |
|
69 | - foreach ($line_item->children() as $child_line_item) { |
|
70 | - $this->display_line_item($child_line_item, $options); |
|
71 | - } |
|
72 | - break; |
|
73 | - |
|
74 | - |
|
75 | - case EEM_Line_Item::type_sub_line_item: |
|
76 | - $html .= $this->_sub_item_row($line_item, $options); |
|
77 | - break; |
|
78 | - |
|
79 | - |
|
80 | - case EEM_Line_Item::type_tax: |
|
81 | - $html .= $this->_tax_row($line_item, $options); |
|
82 | - break; |
|
83 | - } |
|
84 | - |
|
85 | - return $html; |
|
86 | - } |
|
87 | - |
|
88 | - |
|
89 | - |
|
90 | - /** |
|
91 | - * _total_row |
|
92 | - * |
|
93 | - * @param EE_Line_Item $line_item |
|
94 | - * @param array $options |
|
95 | - * @return mixed |
|
96 | - */ |
|
97 | - private function _item_row(EE_Line_Item $line_item, $options = array()) |
|
98 | - { |
|
99 | - // start of row |
|
100 | - $row_class = $options['odd'] ? 'item odd' : 'item'; |
|
101 | - $html = EEH_HTML::tr('', $row_class); |
|
102 | - // name td |
|
103 | - $html .= EEH_HTML::td($line_item->name(), '', 'item_l'); |
|
104 | - // desc td |
|
105 | - $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; |
|
106 | - // quantity td |
|
107 | - $html .= EEH_HTML::td($line_item->quantity(), '', 'item_l'); |
|
108 | - // price td |
|
109 | - $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'item_c'); |
|
110 | - // total td |
|
111 | - $total = $line_item->is_taxable() ? $line_item->total_no_code() . '*' : $line_item->total_no_code(); |
|
112 | - $html .= EEH_HTML::td($total, '', 'item_r'); |
|
113 | - // end of row |
|
114 | - $html .= EEH_HTML::trx(); |
|
115 | - return $html; |
|
116 | - } |
|
117 | - |
|
118 | - |
|
119 | - |
|
120 | - /** |
|
121 | - * _sub_item_row |
|
122 | - * |
|
123 | - * @param EE_Line_Item $line_item |
|
124 | - * @param array $options |
|
125 | - * @return mixed |
|
126 | - */ |
|
127 | - private function _sub_item_row(EE_Line_Item $line_item, $options = array()) |
|
128 | - { |
|
129 | - // start of row |
|
130 | - $html = EEH_HTML::tr('', 'item sub-item-row'); |
|
131 | - // name td |
|
132 | - $html .= EEH_HTML::td($line_item->name(), '', 'item_l sub-item'); |
|
133 | - // desc td |
|
134 | - $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; |
|
135 | - $html .= EEH_HTML::td() . EEH_HTML::tdx(); |
|
136 | - // discount/surcharge td |
|
137 | - if ($line_item->is_percent()) { |
|
138 | - $html .= EEH_HTML::td($line_item->percent() . '%', '', 'item_c'); |
|
139 | - } else { |
|
140 | - $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'item_c'); |
|
141 | - } |
|
142 | - // total td |
|
143 | - $html .= EEH_HTML::td($line_item->total_no_code(), '', 'item_r'); |
|
144 | - // end of row |
|
145 | - $html .= EEH_HTML::trx(); |
|
146 | - return $html; |
|
147 | - } |
|
148 | - |
|
149 | - |
|
150 | - |
|
151 | - /** |
|
152 | - * _tax_row |
|
153 | - * |
|
154 | - * @param EE_Line_Item $line_item |
|
155 | - * @param array $options |
|
156 | - * @return mixed |
|
157 | - */ |
|
158 | - private function _tax_row(EE_Line_Item $line_item, $options = array()) |
|
159 | - { |
|
160 | - // start of row |
|
161 | - $html = EEH_HTML::tr('', 'item sub-item tax-total'); |
|
162 | - // name td |
|
163 | - $html .= EEH_HTML::td($line_item->name(), '', 'item_l sub-item'); |
|
164 | - // desc td |
|
165 | - $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; |
|
166 | - // percent td |
|
167 | - $html .= EEH_HTML::td($line_item->percent() . '%', '', 'item_c', '', ' colspan="2"'); |
|
168 | - // total td |
|
169 | - $html .= EEH_HTML::td($line_item->total_no_code(), '', 'item_r'); |
|
170 | - // end of row |
|
171 | - $html .= EEH_HTML::trx(); |
|
172 | - return $html; |
|
173 | - } |
|
174 | - |
|
175 | - |
|
176 | - |
|
177 | - /** |
|
178 | - * _total_row |
|
179 | - * |
|
180 | - * @param EE_Line_Item $line_item |
|
181 | - * @param string $text |
|
182 | - * @param array $options |
|
183 | - * @return mixed |
|
184 | - */ |
|
185 | - private function _total_row(EE_Line_Item $line_item, $text = '', $options = array()) |
|
186 | - { |
|
187 | - // colspan |
|
188 | - $colspan = $options['show_desc'] ? ' colspan="2"' : ''; |
|
189 | - // start of row |
|
190 | - $html = EEH_HTML::tr('', '', 'total_tr odd'); |
|
191 | - // empty td |
|
192 | - $html .= EEH_HTML::td(EEH_HTML::nbsp(), '', '', '', $colspan); |
|
193 | - // total td |
|
194 | - $html .= EEH_HTML::td($text, '', 'total_currency total', '', $colspan); |
|
195 | - // total td |
|
196 | - $html .= EEH_HTML::td($line_item->total_no_code(), '', 'total'); |
|
197 | - // end of row |
|
198 | - $html .= EEH_HTML::trx(); |
|
199 | - return $html; |
|
200 | - } |
|
201 | - |
|
202 | - |
|
203 | - |
|
204 | - /** |
|
205 | - * _separator_row |
|
206 | - * |
|
207 | - * @param array $options |
|
208 | - * @return mixed |
|
209 | - */ |
|
210 | - private function _separator_row($options = array()) |
|
211 | - { |
|
212 | - // colspan |
|
213 | - $colspan = $options['show_desc'] ? ' colspan="5"' : ' colspan="4"'; |
|
214 | - // start of row |
|
215 | - $html = EEH_HTML::tr(EEH_HTML::td('<hr>', '', '', '', $colspan)); |
|
17 | + /** |
|
18 | + * @param EE_Line_Item $line_item |
|
19 | + * @param array $options |
|
20 | + * @return mixed |
|
21 | + */ |
|
22 | + public function display_line_item(EE_Line_Item $line_item, $options = array()) |
|
23 | + { |
|
24 | + |
|
25 | + $html = ''; |
|
26 | + // set some default options and merge with incoming |
|
27 | + $default_options = array( |
|
28 | + 'show_desc' => true, |
|
29 | + 'odd' => false |
|
30 | + ); |
|
31 | + $options = array_merge($default_options, (array) $options); |
|
32 | + |
|
33 | + switch ($line_item->type()) { |
|
34 | + case EEM_Line_Item::type_total: |
|
35 | + // loop thru children |
|
36 | + foreach ($line_item->children() as $child_line_item) { |
|
37 | + // recursively feed children back into this method |
|
38 | + $html .= $this->display_line_item($child_line_item, $options); |
|
39 | + } |
|
40 | + $html .= $this->_separator_row($options); |
|
41 | + $html .= $this->_total_row($line_item, __('Total', 'event_espresso'), $options); |
|
42 | + break; |
|
43 | + |
|
44 | + |
|
45 | + case EEM_Line_Item::type_sub_total: |
|
46 | + // loop thru children |
|
47 | + foreach ($line_item->children() as $child_line_item) { |
|
48 | + // recursively feed children back into this method |
|
49 | + $html .= $this->display_line_item($child_line_item, $options); |
|
50 | + } |
|
51 | + $html .= $this->_total_row($line_item, __('Sub-Total', 'event_espresso'), $options); |
|
52 | + break; |
|
53 | + |
|
54 | + |
|
55 | + case EEM_Line_Item::type_tax_sub_total: |
|
56 | + // loop thru children |
|
57 | + foreach ($line_item->children() as $child_line_item) { |
|
58 | + // recursively feed children back into this method |
|
59 | + $html .= $this->display_line_item($child_line_item, $options); |
|
60 | + } |
|
61 | + $html .= $this->_total_row($line_item, __('Tax Total', 'event_espresso'), $options); |
|
62 | + break; |
|
63 | + |
|
64 | + |
|
65 | + case EEM_Line_Item::type_line_item: |
|
66 | + // item row |
|
67 | + $html .= $this->_item_row($line_item, $options); |
|
68 | + // got any kids? |
|
69 | + foreach ($line_item->children() as $child_line_item) { |
|
70 | + $this->display_line_item($child_line_item, $options); |
|
71 | + } |
|
72 | + break; |
|
73 | + |
|
74 | + |
|
75 | + case EEM_Line_Item::type_sub_line_item: |
|
76 | + $html .= $this->_sub_item_row($line_item, $options); |
|
77 | + break; |
|
78 | + |
|
79 | + |
|
80 | + case EEM_Line_Item::type_tax: |
|
81 | + $html .= $this->_tax_row($line_item, $options); |
|
82 | + break; |
|
83 | + } |
|
84 | + |
|
85 | + return $html; |
|
86 | + } |
|
87 | + |
|
88 | + |
|
89 | + |
|
90 | + /** |
|
91 | + * _total_row |
|
92 | + * |
|
93 | + * @param EE_Line_Item $line_item |
|
94 | + * @param array $options |
|
95 | + * @return mixed |
|
96 | + */ |
|
97 | + private function _item_row(EE_Line_Item $line_item, $options = array()) |
|
98 | + { |
|
99 | + // start of row |
|
100 | + $row_class = $options['odd'] ? 'item odd' : 'item'; |
|
101 | + $html = EEH_HTML::tr('', $row_class); |
|
102 | + // name td |
|
103 | + $html .= EEH_HTML::td($line_item->name(), '', 'item_l'); |
|
104 | + // desc td |
|
105 | + $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; |
|
106 | + // quantity td |
|
107 | + $html .= EEH_HTML::td($line_item->quantity(), '', 'item_l'); |
|
108 | + // price td |
|
109 | + $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'item_c'); |
|
110 | + // total td |
|
111 | + $total = $line_item->is_taxable() ? $line_item->total_no_code() . '*' : $line_item->total_no_code(); |
|
112 | + $html .= EEH_HTML::td($total, '', 'item_r'); |
|
113 | + // end of row |
|
114 | + $html .= EEH_HTML::trx(); |
|
115 | + return $html; |
|
116 | + } |
|
117 | + |
|
118 | + |
|
119 | + |
|
120 | + /** |
|
121 | + * _sub_item_row |
|
122 | + * |
|
123 | + * @param EE_Line_Item $line_item |
|
124 | + * @param array $options |
|
125 | + * @return mixed |
|
126 | + */ |
|
127 | + private function _sub_item_row(EE_Line_Item $line_item, $options = array()) |
|
128 | + { |
|
129 | + // start of row |
|
130 | + $html = EEH_HTML::tr('', 'item sub-item-row'); |
|
131 | + // name td |
|
132 | + $html .= EEH_HTML::td($line_item->name(), '', 'item_l sub-item'); |
|
133 | + // desc td |
|
134 | + $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; |
|
135 | + $html .= EEH_HTML::td() . EEH_HTML::tdx(); |
|
136 | + // discount/surcharge td |
|
137 | + if ($line_item->is_percent()) { |
|
138 | + $html .= EEH_HTML::td($line_item->percent() . '%', '', 'item_c'); |
|
139 | + } else { |
|
140 | + $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'item_c'); |
|
141 | + } |
|
142 | + // total td |
|
143 | + $html .= EEH_HTML::td($line_item->total_no_code(), '', 'item_r'); |
|
144 | + // end of row |
|
145 | + $html .= EEH_HTML::trx(); |
|
146 | + return $html; |
|
147 | + } |
|
148 | + |
|
149 | + |
|
150 | + |
|
151 | + /** |
|
152 | + * _tax_row |
|
153 | + * |
|
154 | + * @param EE_Line_Item $line_item |
|
155 | + * @param array $options |
|
156 | + * @return mixed |
|
157 | + */ |
|
158 | + private function _tax_row(EE_Line_Item $line_item, $options = array()) |
|
159 | + { |
|
160 | + // start of row |
|
161 | + $html = EEH_HTML::tr('', 'item sub-item tax-total'); |
|
162 | + // name td |
|
163 | + $html .= EEH_HTML::td($line_item->name(), '', 'item_l sub-item'); |
|
164 | + // desc td |
|
165 | + $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; |
|
166 | + // percent td |
|
167 | + $html .= EEH_HTML::td($line_item->percent() . '%', '', 'item_c', '', ' colspan="2"'); |
|
168 | + // total td |
|
169 | + $html .= EEH_HTML::td($line_item->total_no_code(), '', 'item_r'); |
|
170 | + // end of row |
|
171 | + $html .= EEH_HTML::trx(); |
|
172 | + return $html; |
|
173 | + } |
|
174 | + |
|
175 | + |
|
176 | + |
|
177 | + /** |
|
178 | + * _total_row |
|
179 | + * |
|
180 | + * @param EE_Line_Item $line_item |
|
181 | + * @param string $text |
|
182 | + * @param array $options |
|
183 | + * @return mixed |
|
184 | + */ |
|
185 | + private function _total_row(EE_Line_Item $line_item, $text = '', $options = array()) |
|
186 | + { |
|
187 | + // colspan |
|
188 | + $colspan = $options['show_desc'] ? ' colspan="2"' : ''; |
|
189 | + // start of row |
|
190 | + $html = EEH_HTML::tr('', '', 'total_tr odd'); |
|
191 | + // empty td |
|
192 | + $html .= EEH_HTML::td(EEH_HTML::nbsp(), '', '', '', $colspan); |
|
193 | + // total td |
|
194 | + $html .= EEH_HTML::td($text, '', 'total_currency total', '', $colspan); |
|
195 | + // total td |
|
196 | + $html .= EEH_HTML::td($line_item->total_no_code(), '', 'total'); |
|
197 | + // end of row |
|
198 | + $html .= EEH_HTML::trx(); |
|
199 | + return $html; |
|
200 | + } |
|
201 | + |
|
202 | + |
|
203 | + |
|
204 | + /** |
|
205 | + * _separator_row |
|
206 | + * |
|
207 | + * @param array $options |
|
208 | + * @return mixed |
|
209 | + */ |
|
210 | + private function _separator_row($options = array()) |
|
211 | + { |
|
212 | + // colspan |
|
213 | + $colspan = $options['show_desc'] ? ' colspan="5"' : ' colspan="4"'; |
|
214 | + // start of row |
|
215 | + $html = EEH_HTML::tr(EEH_HTML::td('<hr>', '', '', '', $colspan)); |
|
216 | 216 | // // separator td |
217 | 217 | // $html .= EEH_HTML::td( '<hr>', '', '', '', $colspan ); |
218 | 218 | // // end of row |
219 | 219 | // $html .= EEH_HTML::trx(); |
220 | - return $html; |
|
221 | - } |
|
220 | + return $html; |
|
221 | + } |
|
222 | 222 | } |
@@ -108,7 +108,7 @@ discard block |
||
108 | 108 | // price td |
109 | 109 | $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'item_c'); |
110 | 110 | // total td |
111 | - $total = $line_item->is_taxable() ? $line_item->total_no_code() . '*' : $line_item->total_no_code(); |
|
111 | + $total = $line_item->is_taxable() ? $line_item->total_no_code().'*' : $line_item->total_no_code(); |
|
112 | 112 | $html .= EEH_HTML::td($total, '', 'item_r'); |
113 | 113 | // end of row |
114 | 114 | $html .= EEH_HTML::trx(); |
@@ -132,10 +132,10 @@ discard block |
||
132 | 132 | $html .= EEH_HTML::td($line_item->name(), '', 'item_l sub-item'); |
133 | 133 | // desc td |
134 | 134 | $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; |
135 | - $html .= EEH_HTML::td() . EEH_HTML::tdx(); |
|
135 | + $html .= EEH_HTML::td().EEH_HTML::tdx(); |
|
136 | 136 | // discount/surcharge td |
137 | 137 | if ($line_item->is_percent()) { |
138 | - $html .= EEH_HTML::td($line_item->percent() . '%', '', 'item_c'); |
|
138 | + $html .= EEH_HTML::td($line_item->percent().'%', '', 'item_c'); |
|
139 | 139 | } else { |
140 | 140 | $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'item_c'); |
141 | 141 | } |
@@ -164,7 +164,7 @@ discard block |
||
164 | 164 | // desc td |
165 | 165 | $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; |
166 | 166 | // percent td |
167 | - $html .= EEH_HTML::td($line_item->percent() . '%', '', 'item_c', '', ' colspan="2"'); |
|
167 | + $html .= EEH_HTML::td($line_item->percent().'%', '', 'item_c', '', ' colspan="2"'); |
|
168 | 168 | // total td |
169 | 169 | $html .= EEH_HTML::td($line_item->total_no_code(), '', 'item_r'); |
170 | 170 | // end of row |
@@ -22,30 +22,30 @@ |
||
22 | 22 | |
23 | 23 | interface JobHandlerInterface |
24 | 24 | { |
25 | - /** |
|
26 | - * Performs any necessary setup for starting the job. This is also a good |
|
27 | - * place to setup the $job_arguments which will be used for subsequent HTTP requests |
|
28 | - * when continue_job will be called |
|
29 | - * @param JobParameters $job_parameters |
|
30 | - * @throws BatchRequestException |
|
31 | - * @return JobStepResponse |
|
32 | - */ |
|
33 | - public function create_job(JobParameters $job_parameters); |
|
25 | + /** |
|
26 | + * Performs any necessary setup for starting the job. This is also a good |
|
27 | + * place to setup the $job_arguments which will be used for subsequent HTTP requests |
|
28 | + * when continue_job will be called |
|
29 | + * @param JobParameters $job_parameters |
|
30 | + * @throws BatchRequestException |
|
31 | + * @return JobStepResponse |
|
32 | + */ |
|
33 | + public function create_job(JobParameters $job_parameters); |
|
34 | 34 | |
35 | - /** |
|
36 | - * Performs another step of the job |
|
37 | - * @param JobParameters $job_parameters |
|
38 | - * @param int $batch_size |
|
39 | - * @return JobStepResponse |
|
40 | - * @throws BatchRequestException |
|
41 | - */ |
|
42 | - public function continue_job(JobParameters $job_parameters, $batch_size = 50); |
|
35 | + /** |
|
36 | + * Performs another step of the job |
|
37 | + * @param JobParameters $job_parameters |
|
38 | + * @param int $batch_size |
|
39 | + * @return JobStepResponse |
|
40 | + * @throws BatchRequestException |
|
41 | + */ |
|
42 | + public function continue_job(JobParameters $job_parameters, $batch_size = 50); |
|
43 | 43 | |
44 | - /** |
|
45 | - * Performs any clean-up logic when we know the job is completed |
|
46 | - * @param JobParameters $job_parameters |
|
47 | - * @return JobStepResponse |
|
48 | - * @throws BatchRequestException |
|
49 | - */ |
|
50 | - public function cleanup_job(JobParameters $job_parameters); |
|
44 | + /** |
|
45 | + * Performs any clean-up logic when we know the job is completed |
|
46 | + * @param JobParameters $job_parameters |
|
47 | + * @return JobStepResponse |
|
48 | + * @throws BatchRequestException |
|
49 | + */ |
|
50 | + public function cleanup_job(JobParameters $job_parameters); |
|
51 | 51 | } |
@@ -18,359 +18,359 @@ |
||
18 | 18 | class EE_Request implements LegacyRequestInterface, InterminableInterface |
19 | 19 | { |
20 | 20 | |
21 | - /** |
|
22 | - * @var RequestInterface $request |
|
23 | - */ |
|
24 | - private $request; |
|
25 | - |
|
26 | - /** |
|
27 | - * whether current request is for the admin but NOT via AJAX |
|
28 | - * |
|
29 | - * @var boolean $admin |
|
30 | - */ |
|
31 | - public $admin = false; |
|
32 | - |
|
33 | - /** |
|
34 | - * whether current request is via AJAX |
|
35 | - * |
|
36 | - * @var boolean $ajax |
|
37 | - */ |
|
38 | - public $ajax = false; |
|
39 | - |
|
40 | - /** |
|
41 | - * whether current request is via AJAX from the frontend of the site |
|
42 | - * |
|
43 | - * @var boolean $front_ajax |
|
44 | - */ |
|
45 | - public $front_ajax = false; |
|
46 | - |
|
47 | - |
|
48 | - /** |
|
49 | - * @deprecated 4.9.53 |
|
50 | - * @param array $get |
|
51 | - * @param array $post |
|
52 | - * @param array $cookie |
|
53 | - * @param array $server |
|
54 | - */ |
|
55 | - public function __construct( |
|
56 | - array $get = array(), |
|
57 | - array $post = array(), |
|
58 | - array $cookie = array(), |
|
59 | - array $server = array() |
|
60 | - ) { |
|
61 | - } |
|
62 | - |
|
63 | - |
|
64 | - /** |
|
65 | - * @return RequestInterface |
|
66 | - * @throws InvalidArgumentException |
|
67 | - * @throws InvalidInterfaceException |
|
68 | - * @throws InvalidDataTypeException |
|
69 | - */ |
|
70 | - private function request() |
|
71 | - { |
|
72 | - if ($this->request instanceof RequestInterface) { |
|
73 | - return $this->request; |
|
74 | - } |
|
75 | - $loader = LoaderFactory::getLoader(); |
|
76 | - $this->request = $loader->getShared('EventEspresso\core\services\request\RequestInterface'); |
|
77 | - return $this->request; |
|
78 | - } |
|
79 | - |
|
80 | - |
|
81 | - /** |
|
82 | - * @param RequestInterface $request |
|
83 | - */ |
|
84 | - public function setRequest(RequestInterface $request) |
|
85 | - { |
|
86 | - $this->request = $request; |
|
87 | - } |
|
88 | - |
|
89 | - |
|
90 | - /** |
|
91 | - * @deprecated 4.9.53 |
|
92 | - * @return array |
|
93 | - * @throws InvalidArgumentException |
|
94 | - * @throws InvalidDataTypeException |
|
95 | - * @throws InvalidInterfaceException |
|
96 | - */ |
|
97 | - public function get_params() |
|
98 | - { |
|
99 | - return $this->request()->getParams(); |
|
100 | - } |
|
101 | - |
|
102 | - |
|
103 | - /** |
|
104 | - * @deprecated 4.9.53 |
|
105 | - * @return array |
|
106 | - * @throws InvalidArgumentException |
|
107 | - * @throws InvalidDataTypeException |
|
108 | - * @throws InvalidInterfaceException |
|
109 | - */ |
|
110 | - public function post_params() |
|
111 | - { |
|
112 | - return $this->request()->postParams(); |
|
113 | - } |
|
114 | - |
|
115 | - |
|
116 | - /** |
|
117 | - * @deprecated 4.9.53 |
|
118 | - * @return array |
|
119 | - * @throws InvalidArgumentException |
|
120 | - * @throws InvalidDataTypeException |
|
121 | - * @throws InvalidInterfaceException |
|
122 | - */ |
|
123 | - public function cookie_params() |
|
124 | - { |
|
125 | - return $this->request()->cookieParams(); |
|
126 | - } |
|
127 | - |
|
128 | - |
|
129 | - /** |
|
130 | - * @deprecated 4.9.53 |
|
131 | - * @return array |
|
132 | - * @throws InvalidArgumentException |
|
133 | - * @throws InvalidDataTypeException |
|
134 | - * @throws InvalidInterfaceException |
|
135 | - */ |
|
136 | - public function server_params() |
|
137 | - { |
|
138 | - return $this->request()->serverParams(); |
|
139 | - } |
|
140 | - |
|
141 | - |
|
142 | - /** |
|
143 | - * returns contents of $_REQUEST |
|
144 | - * |
|
145 | - * @deprecated 4.9.53 |
|
146 | - * @return array |
|
147 | - * @throws InvalidArgumentException |
|
148 | - * @throws InvalidDataTypeException |
|
149 | - * @throws InvalidInterfaceException |
|
150 | - */ |
|
151 | - public function params() |
|
152 | - { |
|
153 | - return $this->request()->requestParams(); |
|
154 | - } |
|
155 | - |
|
156 | - |
|
157 | - /** |
|
158 | - * @deprecated 4.9.53 |
|
159 | - * @param $key |
|
160 | - * @param $value |
|
161 | - * @param bool $override_ee |
|
162 | - * @return void |
|
163 | - * @throws InvalidArgumentException |
|
164 | - * @throws InvalidDataTypeException |
|
165 | - * @throws InvalidInterfaceException |
|
166 | - */ |
|
167 | - public function set($key, $value, $override_ee = false) |
|
168 | - { |
|
169 | - $this->request()->setRequestParam($key, $value, $override_ee); |
|
170 | - } |
|
171 | - |
|
172 | - |
|
173 | - /** |
|
174 | - * returns the value for a request param if the given key exists |
|
175 | - * |
|
176 | - * @deprecated 4.9.53 |
|
177 | - * @param $key |
|
178 | - * @param null $default |
|
179 | - * @return mixed |
|
180 | - * @throws InvalidArgumentException |
|
181 | - * @throws InvalidDataTypeException |
|
182 | - * @throws InvalidInterfaceException |
|
183 | - */ |
|
184 | - public function get($key, $default = null) |
|
185 | - { |
|
186 | - return $this->request()->getRequestParam($key, $default); |
|
187 | - } |
|
188 | - |
|
189 | - |
|
190 | - /** |
|
191 | - * check if param exists |
|
192 | - * |
|
193 | - * @deprecated 4.9.53 |
|
194 | - * @param $key |
|
195 | - * @return bool |
|
196 | - * @throws InvalidArgumentException |
|
197 | - * @throws InvalidDataTypeException |
|
198 | - * @throws InvalidInterfaceException |
|
199 | - */ |
|
200 | - public function is_set($key) |
|
201 | - { |
|
202 | - return $this->request()->requestParamIsSet($key); |
|
203 | - } |
|
204 | - |
|
205 | - |
|
206 | - /** |
|
207 | - * remove param |
|
208 | - * |
|
209 | - * @deprecated 4.9.53 |
|
210 | - * @param $key |
|
211 | - * @param bool $unset_from_global_too |
|
212 | - * @throws InvalidArgumentException |
|
213 | - * @throws InvalidDataTypeException |
|
214 | - * @throws InvalidInterfaceException |
|
215 | - */ |
|
216 | - public function un_set($key, $unset_from_global_too = false) |
|
217 | - { |
|
218 | - $this->request()->unSetRequestParam($key, $unset_from_global_too); |
|
219 | - } |
|
220 | - |
|
221 | - |
|
222 | - /** |
|
223 | - * @deprecated 4.9.53 |
|
224 | - * @return string |
|
225 | - * @throws InvalidArgumentException |
|
226 | - * @throws InvalidDataTypeException |
|
227 | - * @throws InvalidInterfaceException |
|
228 | - */ |
|
229 | - public function ip_address() |
|
230 | - { |
|
231 | - return $this->request()->ipAddress(); |
|
232 | - } |
|
233 | - |
|
234 | - |
|
235 | - /** |
|
236 | - * @deprecated 4.9.53 |
|
237 | - * @return bool |
|
238 | - * @throws InvalidArgumentException |
|
239 | - * @throws InvalidDataTypeException |
|
240 | - * @throws InvalidInterfaceException |
|
241 | - */ |
|
242 | - public function isAdmin() |
|
243 | - { |
|
244 | - return $this->request()->isAdmin(); |
|
245 | - } |
|
246 | - |
|
247 | - |
|
248 | - /** |
|
249 | - * @deprecated 4.9.53 |
|
250 | - * @return mixed |
|
251 | - * @throws InvalidArgumentException |
|
252 | - * @throws InvalidDataTypeException |
|
253 | - * @throws InvalidInterfaceException |
|
254 | - */ |
|
255 | - public function isAjax() |
|
256 | - { |
|
257 | - return $this->request()->isAjax(); |
|
258 | - } |
|
259 | - |
|
260 | - |
|
261 | - /** |
|
262 | - * @deprecated 4.9.53 |
|
263 | - * @return mixed |
|
264 | - * @throws InvalidArgumentException |
|
265 | - * @throws InvalidDataTypeException |
|
266 | - * @throws InvalidInterfaceException |
|
267 | - */ |
|
268 | - public function isFrontAjax() |
|
269 | - { |
|
270 | - return $this->request()->isFrontAjax(); |
|
271 | - } |
|
272 | - |
|
273 | - |
|
274 | - /** |
|
275 | - * @deprecated 4.9.53 |
|
276 | - * @return mixed|string |
|
277 | - * @throws InvalidArgumentException |
|
278 | - * @throws InvalidDataTypeException |
|
279 | - * @throws InvalidInterfaceException |
|
280 | - */ |
|
281 | - public function requestUri() |
|
282 | - { |
|
283 | - return $this->request()->requestUri(); |
|
284 | - } |
|
285 | - |
|
286 | - |
|
287 | - /** |
|
288 | - * @deprecated 4.9.53 |
|
289 | - * @return string |
|
290 | - * @throws InvalidArgumentException |
|
291 | - * @throws InvalidDataTypeException |
|
292 | - * @throws InvalidInterfaceException |
|
293 | - */ |
|
294 | - public function userAgent() |
|
295 | - { |
|
296 | - return $this->request()->userAgent(); |
|
297 | - } |
|
298 | - |
|
299 | - |
|
300 | - /** |
|
301 | - * @deprecated 4.9.53 |
|
302 | - * @param string $user_agent |
|
303 | - * @throws InvalidArgumentException |
|
304 | - * @throws InvalidDataTypeException |
|
305 | - * @throws InvalidInterfaceException |
|
306 | - */ |
|
307 | - public function setUserAgent($user_agent = '') |
|
308 | - { |
|
309 | - $this->request()->setUserAgent($user_agent); |
|
310 | - } |
|
311 | - |
|
312 | - |
|
313 | - /** |
|
314 | - * @deprecated 4.9.53 |
|
315 | - * @return bool |
|
316 | - * @throws InvalidArgumentException |
|
317 | - * @throws InvalidDataTypeException |
|
318 | - * @throws InvalidInterfaceException |
|
319 | - */ |
|
320 | - public function isBot() |
|
321 | - { |
|
322 | - return $this->request()->isBot(); |
|
323 | - } |
|
324 | - |
|
325 | - |
|
326 | - /** |
|
327 | - * @deprecated 4.9.53 |
|
328 | - * @param bool $is_bot |
|
329 | - * @throws InvalidArgumentException |
|
330 | - * @throws InvalidDataTypeException |
|
331 | - * @throws InvalidInterfaceException |
|
332 | - */ |
|
333 | - public function setIsBot($is_bot) |
|
334 | - { |
|
335 | - $this->request()->setIsBot($is_bot); |
|
336 | - } |
|
337 | - |
|
338 | - |
|
339 | - /** |
|
340 | - * check if a request parameter exists whose key that matches the supplied wildcard pattern |
|
341 | - * and return the value for the first match found |
|
342 | - * wildcards can be either of the following: |
|
343 | - * ? to represent a single character of any type |
|
344 | - * * to represent one or more characters of any type |
|
345 | - * |
|
346 | - * @param string $pattern |
|
347 | - * @param null|mixed $default |
|
348 | - * @return false|int |
|
349 | - * @throws InvalidArgumentException |
|
350 | - * @throws InvalidInterfaceException |
|
351 | - * @throws InvalidDataTypeException |
|
352 | - */ |
|
353 | - public function getMatch($pattern, $default = null) |
|
354 | - { |
|
355 | - return $this->request()->getMatch($pattern, $default); |
|
356 | - } |
|
357 | - |
|
358 | - |
|
359 | - /** |
|
360 | - * check if a request parameter exists whose key matches the supplied wildcard pattern |
|
361 | - * wildcards can be either of the following: |
|
362 | - * ? to represent a single character of any type |
|
363 | - * * to represent one or more characters of any type |
|
364 | - * returns true if a match is found or false if not |
|
365 | - * |
|
366 | - * @param string $pattern |
|
367 | - * @return false|int |
|
368 | - * @throws InvalidArgumentException |
|
369 | - * @throws InvalidInterfaceException |
|
370 | - * @throws InvalidDataTypeException |
|
371 | - */ |
|
372 | - public function matches($pattern) |
|
373 | - { |
|
374 | - return $this->request()->matches($pattern); |
|
375 | - } |
|
21 | + /** |
|
22 | + * @var RequestInterface $request |
|
23 | + */ |
|
24 | + private $request; |
|
25 | + |
|
26 | + /** |
|
27 | + * whether current request is for the admin but NOT via AJAX |
|
28 | + * |
|
29 | + * @var boolean $admin |
|
30 | + */ |
|
31 | + public $admin = false; |
|
32 | + |
|
33 | + /** |
|
34 | + * whether current request is via AJAX |
|
35 | + * |
|
36 | + * @var boolean $ajax |
|
37 | + */ |
|
38 | + public $ajax = false; |
|
39 | + |
|
40 | + /** |
|
41 | + * whether current request is via AJAX from the frontend of the site |
|
42 | + * |
|
43 | + * @var boolean $front_ajax |
|
44 | + */ |
|
45 | + public $front_ajax = false; |
|
46 | + |
|
47 | + |
|
48 | + /** |
|
49 | + * @deprecated 4.9.53 |
|
50 | + * @param array $get |
|
51 | + * @param array $post |
|
52 | + * @param array $cookie |
|
53 | + * @param array $server |
|
54 | + */ |
|
55 | + public function __construct( |
|
56 | + array $get = array(), |
|
57 | + array $post = array(), |
|
58 | + array $cookie = array(), |
|
59 | + array $server = array() |
|
60 | + ) { |
|
61 | + } |
|
62 | + |
|
63 | + |
|
64 | + /** |
|
65 | + * @return RequestInterface |
|
66 | + * @throws InvalidArgumentException |
|
67 | + * @throws InvalidInterfaceException |
|
68 | + * @throws InvalidDataTypeException |
|
69 | + */ |
|
70 | + private function request() |
|
71 | + { |
|
72 | + if ($this->request instanceof RequestInterface) { |
|
73 | + return $this->request; |
|
74 | + } |
|
75 | + $loader = LoaderFactory::getLoader(); |
|
76 | + $this->request = $loader->getShared('EventEspresso\core\services\request\RequestInterface'); |
|
77 | + return $this->request; |
|
78 | + } |
|
79 | + |
|
80 | + |
|
81 | + /** |
|
82 | + * @param RequestInterface $request |
|
83 | + */ |
|
84 | + public function setRequest(RequestInterface $request) |
|
85 | + { |
|
86 | + $this->request = $request; |
|
87 | + } |
|
88 | + |
|
89 | + |
|
90 | + /** |
|
91 | + * @deprecated 4.9.53 |
|
92 | + * @return array |
|
93 | + * @throws InvalidArgumentException |
|
94 | + * @throws InvalidDataTypeException |
|
95 | + * @throws InvalidInterfaceException |
|
96 | + */ |
|
97 | + public function get_params() |
|
98 | + { |
|
99 | + return $this->request()->getParams(); |
|
100 | + } |
|
101 | + |
|
102 | + |
|
103 | + /** |
|
104 | + * @deprecated 4.9.53 |
|
105 | + * @return array |
|
106 | + * @throws InvalidArgumentException |
|
107 | + * @throws InvalidDataTypeException |
|
108 | + * @throws InvalidInterfaceException |
|
109 | + */ |
|
110 | + public function post_params() |
|
111 | + { |
|
112 | + return $this->request()->postParams(); |
|
113 | + } |
|
114 | + |
|
115 | + |
|
116 | + /** |
|
117 | + * @deprecated 4.9.53 |
|
118 | + * @return array |
|
119 | + * @throws InvalidArgumentException |
|
120 | + * @throws InvalidDataTypeException |
|
121 | + * @throws InvalidInterfaceException |
|
122 | + */ |
|
123 | + public function cookie_params() |
|
124 | + { |
|
125 | + return $this->request()->cookieParams(); |
|
126 | + } |
|
127 | + |
|
128 | + |
|
129 | + /** |
|
130 | + * @deprecated 4.9.53 |
|
131 | + * @return array |
|
132 | + * @throws InvalidArgumentException |
|
133 | + * @throws InvalidDataTypeException |
|
134 | + * @throws InvalidInterfaceException |
|
135 | + */ |
|
136 | + public function server_params() |
|
137 | + { |
|
138 | + return $this->request()->serverParams(); |
|
139 | + } |
|
140 | + |
|
141 | + |
|
142 | + /** |
|
143 | + * returns contents of $_REQUEST |
|
144 | + * |
|
145 | + * @deprecated 4.9.53 |
|
146 | + * @return array |
|
147 | + * @throws InvalidArgumentException |
|
148 | + * @throws InvalidDataTypeException |
|
149 | + * @throws InvalidInterfaceException |
|
150 | + */ |
|
151 | + public function params() |
|
152 | + { |
|
153 | + return $this->request()->requestParams(); |
|
154 | + } |
|
155 | + |
|
156 | + |
|
157 | + /** |
|
158 | + * @deprecated 4.9.53 |
|
159 | + * @param $key |
|
160 | + * @param $value |
|
161 | + * @param bool $override_ee |
|
162 | + * @return void |
|
163 | + * @throws InvalidArgumentException |
|
164 | + * @throws InvalidDataTypeException |
|
165 | + * @throws InvalidInterfaceException |
|
166 | + */ |
|
167 | + public function set($key, $value, $override_ee = false) |
|
168 | + { |
|
169 | + $this->request()->setRequestParam($key, $value, $override_ee); |
|
170 | + } |
|
171 | + |
|
172 | + |
|
173 | + /** |
|
174 | + * returns the value for a request param if the given key exists |
|
175 | + * |
|
176 | + * @deprecated 4.9.53 |
|
177 | + * @param $key |
|
178 | + * @param null $default |
|
179 | + * @return mixed |
|
180 | + * @throws InvalidArgumentException |
|
181 | + * @throws InvalidDataTypeException |
|
182 | + * @throws InvalidInterfaceException |
|
183 | + */ |
|
184 | + public function get($key, $default = null) |
|
185 | + { |
|
186 | + return $this->request()->getRequestParam($key, $default); |
|
187 | + } |
|
188 | + |
|
189 | + |
|
190 | + /** |
|
191 | + * check if param exists |
|
192 | + * |
|
193 | + * @deprecated 4.9.53 |
|
194 | + * @param $key |
|
195 | + * @return bool |
|
196 | + * @throws InvalidArgumentException |
|
197 | + * @throws InvalidDataTypeException |
|
198 | + * @throws InvalidInterfaceException |
|
199 | + */ |
|
200 | + public function is_set($key) |
|
201 | + { |
|
202 | + return $this->request()->requestParamIsSet($key); |
|
203 | + } |
|
204 | + |
|
205 | + |
|
206 | + /** |
|
207 | + * remove param |
|
208 | + * |
|
209 | + * @deprecated 4.9.53 |
|
210 | + * @param $key |
|
211 | + * @param bool $unset_from_global_too |
|
212 | + * @throws InvalidArgumentException |
|
213 | + * @throws InvalidDataTypeException |
|
214 | + * @throws InvalidInterfaceException |
|
215 | + */ |
|
216 | + public function un_set($key, $unset_from_global_too = false) |
|
217 | + { |
|
218 | + $this->request()->unSetRequestParam($key, $unset_from_global_too); |
|
219 | + } |
|
220 | + |
|
221 | + |
|
222 | + /** |
|
223 | + * @deprecated 4.9.53 |
|
224 | + * @return string |
|
225 | + * @throws InvalidArgumentException |
|
226 | + * @throws InvalidDataTypeException |
|
227 | + * @throws InvalidInterfaceException |
|
228 | + */ |
|
229 | + public function ip_address() |
|
230 | + { |
|
231 | + return $this->request()->ipAddress(); |
|
232 | + } |
|
233 | + |
|
234 | + |
|
235 | + /** |
|
236 | + * @deprecated 4.9.53 |
|
237 | + * @return bool |
|
238 | + * @throws InvalidArgumentException |
|
239 | + * @throws InvalidDataTypeException |
|
240 | + * @throws InvalidInterfaceException |
|
241 | + */ |
|
242 | + public function isAdmin() |
|
243 | + { |
|
244 | + return $this->request()->isAdmin(); |
|
245 | + } |
|
246 | + |
|
247 | + |
|
248 | + /** |
|
249 | + * @deprecated 4.9.53 |
|
250 | + * @return mixed |
|
251 | + * @throws InvalidArgumentException |
|
252 | + * @throws InvalidDataTypeException |
|
253 | + * @throws InvalidInterfaceException |
|
254 | + */ |
|
255 | + public function isAjax() |
|
256 | + { |
|
257 | + return $this->request()->isAjax(); |
|
258 | + } |
|
259 | + |
|
260 | + |
|
261 | + /** |
|
262 | + * @deprecated 4.9.53 |
|
263 | + * @return mixed |
|
264 | + * @throws InvalidArgumentException |
|
265 | + * @throws InvalidDataTypeException |
|
266 | + * @throws InvalidInterfaceException |
|
267 | + */ |
|
268 | + public function isFrontAjax() |
|
269 | + { |
|
270 | + return $this->request()->isFrontAjax(); |
|
271 | + } |
|
272 | + |
|
273 | + |
|
274 | + /** |
|
275 | + * @deprecated 4.9.53 |
|
276 | + * @return mixed|string |
|
277 | + * @throws InvalidArgumentException |
|
278 | + * @throws InvalidDataTypeException |
|
279 | + * @throws InvalidInterfaceException |
|
280 | + */ |
|
281 | + public function requestUri() |
|
282 | + { |
|
283 | + return $this->request()->requestUri(); |
|
284 | + } |
|
285 | + |
|
286 | + |
|
287 | + /** |
|
288 | + * @deprecated 4.9.53 |
|
289 | + * @return string |
|
290 | + * @throws InvalidArgumentException |
|
291 | + * @throws InvalidDataTypeException |
|
292 | + * @throws InvalidInterfaceException |
|
293 | + */ |
|
294 | + public function userAgent() |
|
295 | + { |
|
296 | + return $this->request()->userAgent(); |
|
297 | + } |
|
298 | + |
|
299 | + |
|
300 | + /** |
|
301 | + * @deprecated 4.9.53 |
|
302 | + * @param string $user_agent |
|
303 | + * @throws InvalidArgumentException |
|
304 | + * @throws InvalidDataTypeException |
|
305 | + * @throws InvalidInterfaceException |
|
306 | + */ |
|
307 | + public function setUserAgent($user_agent = '') |
|
308 | + { |
|
309 | + $this->request()->setUserAgent($user_agent); |
|
310 | + } |
|
311 | + |
|
312 | + |
|
313 | + /** |
|
314 | + * @deprecated 4.9.53 |
|
315 | + * @return bool |
|
316 | + * @throws InvalidArgumentException |
|
317 | + * @throws InvalidDataTypeException |
|
318 | + * @throws InvalidInterfaceException |
|
319 | + */ |
|
320 | + public function isBot() |
|
321 | + { |
|
322 | + return $this->request()->isBot(); |
|
323 | + } |
|
324 | + |
|
325 | + |
|
326 | + /** |
|
327 | + * @deprecated 4.9.53 |
|
328 | + * @param bool $is_bot |
|
329 | + * @throws InvalidArgumentException |
|
330 | + * @throws InvalidDataTypeException |
|
331 | + * @throws InvalidInterfaceException |
|
332 | + */ |
|
333 | + public function setIsBot($is_bot) |
|
334 | + { |
|
335 | + $this->request()->setIsBot($is_bot); |
|
336 | + } |
|
337 | + |
|
338 | + |
|
339 | + /** |
|
340 | + * check if a request parameter exists whose key that matches the supplied wildcard pattern |
|
341 | + * and return the value for the first match found |
|
342 | + * wildcards can be either of the following: |
|
343 | + * ? to represent a single character of any type |
|
344 | + * * to represent one or more characters of any type |
|
345 | + * |
|
346 | + * @param string $pattern |
|
347 | + * @param null|mixed $default |
|
348 | + * @return false|int |
|
349 | + * @throws InvalidArgumentException |
|
350 | + * @throws InvalidInterfaceException |
|
351 | + * @throws InvalidDataTypeException |
|
352 | + */ |
|
353 | + public function getMatch($pattern, $default = null) |
|
354 | + { |
|
355 | + return $this->request()->getMatch($pattern, $default); |
|
356 | + } |
|
357 | + |
|
358 | + |
|
359 | + /** |
|
360 | + * check if a request parameter exists whose key matches the supplied wildcard pattern |
|
361 | + * wildcards can be either of the following: |
|
362 | + * ? to represent a single character of any type |
|
363 | + * * to represent one or more characters of any type |
|
364 | + * returns true if a match is found or false if not |
|
365 | + * |
|
366 | + * @param string $pattern |
|
367 | + * @return false|int |
|
368 | + * @throws InvalidArgumentException |
|
369 | + * @throws InvalidInterfaceException |
|
370 | + * @throws InvalidDataTypeException |
|
371 | + */ |
|
372 | + public function matches($pattern) |
|
373 | + { |
|
374 | + return $this->request()->matches($pattern); |
|
375 | + } |
|
376 | 376 | } |