@@ -18,55 +18,55 @@ |
||
18 | 18 | { |
19 | 19 | |
20 | 20 | |
21 | - /** |
|
22 | - * the actual shortcode tag that gets registered with WordPress |
|
23 | - * |
|
24 | - * @return string |
|
25 | - */ |
|
26 | - public function getTag() |
|
27 | - { |
|
28 | - return 'ESPRESSO_CHECKOUT'; |
|
29 | - } |
|
21 | + /** |
|
22 | + * the actual shortcode tag that gets registered with WordPress |
|
23 | + * |
|
24 | + * @return string |
|
25 | + */ |
|
26 | + public function getTag() |
|
27 | + { |
|
28 | + return 'ESPRESSO_CHECKOUT'; |
|
29 | + } |
|
30 | 30 | |
31 | 31 | |
32 | - /** |
|
33 | - * the time in seconds to cache the results of the processShortcode() method |
|
34 | - * 0 means the processShortcode() results will NOT be cached at all |
|
35 | - * |
|
36 | - * @return int |
|
37 | - */ |
|
38 | - public function cacheExpiration() |
|
39 | - { |
|
40 | - return 0; |
|
41 | - } |
|
32 | + /** |
|
33 | + * the time in seconds to cache the results of the processShortcode() method |
|
34 | + * 0 means the processShortcode() results will NOT be cached at all |
|
35 | + * |
|
36 | + * @return int |
|
37 | + */ |
|
38 | + public function cacheExpiration() |
|
39 | + { |
|
40 | + return 0; |
|
41 | + } |
|
42 | 42 | |
43 | 43 | |
44 | - /** |
|
45 | - * a place for adding any initialization code that needs to run prior to wp_header(). |
|
46 | - * this may be required for shortcodes that utilize a corresponding module, |
|
47 | - * and need to enqueue assets for that module |
|
48 | - * |
|
49 | - * @return void |
|
50 | - * @throws \EE_Error |
|
51 | - */ |
|
52 | - public function initializeShortcode() |
|
53 | - { |
|
54 | - global $wp_query; |
|
55 | - EED_Single_Page_Checkout::init($wp_query); |
|
56 | - $this->shortcodeHasBeenInitialized(); |
|
57 | - } |
|
44 | + /** |
|
45 | + * a place for adding any initialization code that needs to run prior to wp_header(). |
|
46 | + * this may be required for shortcodes that utilize a corresponding module, |
|
47 | + * and need to enqueue assets for that module |
|
48 | + * |
|
49 | + * @return void |
|
50 | + * @throws \EE_Error |
|
51 | + */ |
|
52 | + public function initializeShortcode() |
|
53 | + { |
|
54 | + global $wp_query; |
|
55 | + EED_Single_Page_Checkout::init($wp_query); |
|
56 | + $this->shortcodeHasBeenInitialized(); |
|
57 | + } |
|
58 | 58 | |
59 | 59 | |
60 | - /** |
|
61 | - * callback that runs when the shortcode is encountered in post content. |
|
62 | - * IMPORTANT !!! |
|
63 | - * remember that shortcode content should be RETURNED and NOT echoed out |
|
64 | - * |
|
65 | - * @param array $attributes |
|
66 | - * @return string |
|
67 | - */ |
|
68 | - public function processShortcode($attributes = array()) |
|
69 | - { |
|
70 | - return EE_Registry::instance()->REQ->get_output(); |
|
71 | - } |
|
60 | + /** |
|
61 | + * callback that runs when the shortcode is encountered in post content. |
|
62 | + * IMPORTANT !!! |
|
63 | + * remember that shortcode content should be RETURNED and NOT echoed out |
|
64 | + * |
|
65 | + * @param array $attributes |
|
66 | + * @return string |
|
67 | + */ |
|
68 | + public function processShortcode($attributes = array()) |
|
69 | + { |
|
70 | + return EE_Registry::instance()->REQ->get_output(); |
|
71 | + } |
|
72 | 72 | } |
@@ -22,87 +22,87 @@ |
||
22 | 22 | { |
23 | 23 | |
24 | 24 | |
25 | - /** |
|
26 | - * the actual shortcode tag that gets registered with WordPress |
|
27 | - * |
|
28 | - * @return string |
|
29 | - */ |
|
30 | - public function getTag() |
|
31 | - { |
|
32 | - return 'ESPRESSO_TXN_PAGE'; |
|
33 | - } |
|
25 | + /** |
|
26 | + * the actual shortcode tag that gets registered with WordPress |
|
27 | + * |
|
28 | + * @return string |
|
29 | + */ |
|
30 | + public function getTag() |
|
31 | + { |
|
32 | + return 'ESPRESSO_TXN_PAGE'; |
|
33 | + } |
|
34 | 34 | |
35 | 35 | |
36 | - /** |
|
37 | - * the time in seconds to cache the results of the processShortcode() method |
|
38 | - * 0 means the processShortcode() results will NOT be cached at all |
|
39 | - * |
|
40 | - * @return int |
|
41 | - */ |
|
42 | - public function cacheExpiration() |
|
43 | - { |
|
44 | - return 0; |
|
45 | - } |
|
36 | + /** |
|
37 | + * the time in seconds to cache the results of the processShortcode() method |
|
38 | + * 0 means the processShortcode() results will NOT be cached at all |
|
39 | + * |
|
40 | + * @return int |
|
41 | + */ |
|
42 | + public function cacheExpiration() |
|
43 | + { |
|
44 | + return 0; |
|
45 | + } |
|
46 | 46 | |
47 | 47 | |
48 | - /** |
|
49 | - * a place for adding any initialization code that needs to run prior to wp_header(). |
|
50 | - * this may be required for shortcodes that utilize a corresponding module, |
|
51 | - * and need to enqueue assets for that module |
|
52 | - * |
|
53 | - * @return void |
|
54 | - * @throws \Exception |
|
55 | - * @throws \EE_Error |
|
56 | - */ |
|
57 | - public function initializeShortcode() |
|
58 | - { |
|
59 | - $transaction = null; |
|
60 | - if (EE_Registry::instance()->REQ->is_set('e_reg_url_link')) { |
|
61 | - /** @var EEM_Transaction $EEM_Transaction */ |
|
62 | - $EEM_Transaction = EE_Registry::instance()->load_model('Transaction'); |
|
63 | - $transaction = $EEM_Transaction->get_transaction_from_reg_url_link(); |
|
64 | - } |
|
65 | - if ($transaction instanceof EE_Transaction) { |
|
66 | - $payment_method = null; |
|
67 | - $payment_method_slug = EE_Registry::instance()->REQ->get('ee_payment_method', null); |
|
68 | - if ($payment_method_slug) { |
|
69 | - $payment_method = EEM_Payment_Method::instance()->get_one_by_slug($payment_method_slug); |
|
70 | - } |
|
71 | - if ($payment_method instanceof EE_Payment_Method && $payment_method->is_off_site()) { |
|
72 | - $gateway = $payment_method->type_obj()->get_gateway(); |
|
73 | - if ($gateway instanceof EE_Offsite_Gateway |
|
74 | - && $gateway->handle_IPN_in_this_request( |
|
75 | - \EE_Registry::instance()->REQ->params(), |
|
76 | - true |
|
77 | - ) |
|
78 | - ) { |
|
79 | - /** @type EE_Payment_Processor $payment_processor */ |
|
80 | - $payment_processor = EE_Registry::instance()->load_core('Payment_Processor'); |
|
81 | - $payment_processor->process_ipn($_REQUEST, $transaction, $payment_method); |
|
82 | - } |
|
83 | - } |
|
84 | - // allow gateways to add a filter to stop rendering the page |
|
85 | - if (apply_filters('FHEE__EES_Espresso_Txn_Page__run__exit', false)) { |
|
86 | - exit; |
|
87 | - } |
|
88 | - } |
|
89 | - $this->shortcodeHasBeenInitialized(); |
|
90 | - } |
|
48 | + /** |
|
49 | + * a place for adding any initialization code that needs to run prior to wp_header(). |
|
50 | + * this may be required for shortcodes that utilize a corresponding module, |
|
51 | + * and need to enqueue assets for that module |
|
52 | + * |
|
53 | + * @return void |
|
54 | + * @throws \Exception |
|
55 | + * @throws \EE_Error |
|
56 | + */ |
|
57 | + public function initializeShortcode() |
|
58 | + { |
|
59 | + $transaction = null; |
|
60 | + if (EE_Registry::instance()->REQ->is_set('e_reg_url_link')) { |
|
61 | + /** @var EEM_Transaction $EEM_Transaction */ |
|
62 | + $EEM_Transaction = EE_Registry::instance()->load_model('Transaction'); |
|
63 | + $transaction = $EEM_Transaction->get_transaction_from_reg_url_link(); |
|
64 | + } |
|
65 | + if ($transaction instanceof EE_Transaction) { |
|
66 | + $payment_method = null; |
|
67 | + $payment_method_slug = EE_Registry::instance()->REQ->get('ee_payment_method', null); |
|
68 | + if ($payment_method_slug) { |
|
69 | + $payment_method = EEM_Payment_Method::instance()->get_one_by_slug($payment_method_slug); |
|
70 | + } |
|
71 | + if ($payment_method instanceof EE_Payment_Method && $payment_method->is_off_site()) { |
|
72 | + $gateway = $payment_method->type_obj()->get_gateway(); |
|
73 | + if ($gateway instanceof EE_Offsite_Gateway |
|
74 | + && $gateway->handle_IPN_in_this_request( |
|
75 | + \EE_Registry::instance()->REQ->params(), |
|
76 | + true |
|
77 | + ) |
|
78 | + ) { |
|
79 | + /** @type EE_Payment_Processor $payment_processor */ |
|
80 | + $payment_processor = EE_Registry::instance()->load_core('Payment_Processor'); |
|
81 | + $payment_processor->process_ipn($_REQUEST, $transaction, $payment_method); |
|
82 | + } |
|
83 | + } |
|
84 | + // allow gateways to add a filter to stop rendering the page |
|
85 | + if (apply_filters('FHEE__EES_Espresso_Txn_Page__run__exit', false)) { |
|
86 | + exit; |
|
87 | + } |
|
88 | + } |
|
89 | + $this->shortcodeHasBeenInitialized(); |
|
90 | + } |
|
91 | 91 | |
92 | 92 | |
93 | - /** |
|
94 | - * callback that runs when the shortcode is encountered in post content. |
|
95 | - * IMPORTANT !!! |
|
96 | - * remember that shortcode content should be RETURNED and NOT echoed out |
|
97 | - * |
|
98 | - * @param array $attributes |
|
99 | - * @return string |
|
100 | - */ |
|
101 | - public function processShortcode($attributes = array()) |
|
102 | - { |
|
103 | - return esc_html__( |
|
104 | - 'This is the Event Espresso Transactions page. This page receives instant payment notification (IPN) requests and should have a status of published, but should not be easily accessible by site visitors. Do not add it to your website\'s navigation menu or link to it from another page. Also, do not delete it or change its status to private.', |
|
105 | - 'event_espresso' |
|
106 | - ); |
|
107 | - } |
|
93 | + /** |
|
94 | + * callback that runs when the shortcode is encountered in post content. |
|
95 | + * IMPORTANT !!! |
|
96 | + * remember that shortcode content should be RETURNED and NOT echoed out |
|
97 | + * |
|
98 | + * @param array $attributes |
|
99 | + * @return string |
|
100 | + */ |
|
101 | + public function processShortcode($attributes = array()) |
|
102 | + { |
|
103 | + return esc_html__( |
|
104 | + 'This is the Event Espresso Transactions page. This page receives instant payment notification (IPN) requests and should have a status of published, but should not be easily accessible by site visitors. Do not add it to your website\'s navigation menu or link to it from another page. Also, do not delete it or change its status to private.', |
|
105 | + 'event_espresso' |
|
106 | + ); |
|
107 | + } |
|
108 | 108 | } |
@@ -16,54 +16,54 @@ |
||
16 | 16 | class Factory |
17 | 17 | { |
18 | 18 | |
19 | - /** |
|
20 | - * @param string $class_name |
|
21 | - * @param array $arguments |
|
22 | - * @return mixed|null |
|
23 | - * @throws \EE_Error |
|
24 | - */ |
|
25 | - public static function create($class_name, $arguments = array()) |
|
26 | - { |
|
27 | - if (empty($class_name)) { |
|
28 | - throw new \EE_Error( |
|
29 | - __('You must provide a class name in order to instantiate it.', 'event_espresso') |
|
30 | - ); |
|
31 | - } |
|
32 | - // if ( ! class_exists( $class_name ) ) { |
|
33 | - // throw new \EE_Error( |
|
34 | - // sprintf( |
|
35 | - // __('The "%1$s" class was not found. Please include the correct file or set an autoloader for it', |
|
36 | - // 'event_espresso'), |
|
37 | - // $class_name |
|
38 | - // ) |
|
39 | - // ); |
|
40 | - // } |
|
41 | - $object = null; |
|
42 | - switch ($class_name) { |
|
43 | - case 'EE_Request': |
|
44 | - $object = new \EE_Request($_GET, $_POST, $_COOKIE); |
|
45 | - break; |
|
46 | - case 'Iframe': |
|
47 | - $title = isset($arguments['title']) ? $arguments['title'] : null; |
|
48 | - $content = isset($arguments['content']) ? $arguments['content'] : null; |
|
49 | - $object = new Iframe($title, $content); |
|
50 | - break; |
|
51 | - default: |
|
52 | - $object = new $class_name($arguments); |
|
53 | - } |
|
19 | + /** |
|
20 | + * @param string $class_name |
|
21 | + * @param array $arguments |
|
22 | + * @return mixed|null |
|
23 | + * @throws \EE_Error |
|
24 | + */ |
|
25 | + public static function create($class_name, $arguments = array()) |
|
26 | + { |
|
27 | + if (empty($class_name)) { |
|
28 | + throw new \EE_Error( |
|
29 | + __('You must provide a class name in order to instantiate it.', 'event_espresso') |
|
30 | + ); |
|
31 | + } |
|
32 | + // if ( ! class_exists( $class_name ) ) { |
|
33 | + // throw new \EE_Error( |
|
34 | + // sprintf( |
|
35 | + // __('The "%1$s" class was not found. Please include the correct file or set an autoloader for it', |
|
36 | + // 'event_espresso'), |
|
37 | + // $class_name |
|
38 | + // ) |
|
39 | + // ); |
|
40 | + // } |
|
41 | + $object = null; |
|
42 | + switch ($class_name) { |
|
43 | + case 'EE_Request': |
|
44 | + $object = new \EE_Request($_GET, $_POST, $_COOKIE); |
|
45 | + break; |
|
46 | + case 'Iframe': |
|
47 | + $title = isset($arguments['title']) ? $arguments['title'] : null; |
|
48 | + $content = isset($arguments['content']) ? $arguments['content'] : null; |
|
49 | + $object = new Iframe($title, $content); |
|
50 | + break; |
|
51 | + default: |
|
52 | + $object = new $class_name($arguments); |
|
53 | + } |
|
54 | 54 | |
55 | - // if ( ! $object instanceof $class_name ) { |
|
56 | - // throw new \EE_Error( |
|
57 | - // sprintf( |
|
58 | - // __( |
|
59 | - // 'An error occurred during class instantiation and the requested object could not be created. The result was: %1$s %2$s', |
|
60 | - // 'event_espresso' |
|
61 | - // ), |
|
62 | - // '<br />', |
|
63 | - // var_export($object, true) |
|
64 | - // ) |
|
65 | - // ); |
|
66 | - // } |
|
67 | - return $object; |
|
68 | - } |
|
55 | + // if ( ! $object instanceof $class_name ) { |
|
56 | + // throw new \EE_Error( |
|
57 | + // sprintf( |
|
58 | + // __( |
|
59 | + // 'An error occurred during class instantiation and the requested object could not be created. The result was: %1$s %2$s', |
|
60 | + // 'event_espresso' |
|
61 | + // ), |
|
62 | + // '<br />', |
|
63 | + // var_export($object, true) |
|
64 | + // ) |
|
65 | + // ); |
|
66 | + // } |
|
67 | + return $object; |
|
68 | + } |
|
69 | 69 | } |
@@ -12,138 +12,138 @@ |
||
12 | 12 | class PostShortcodeTracking |
13 | 13 | { |
14 | 14 | |
15 | - /** |
|
16 | - * @deprecated 4.9.26 |
|
17 | - * @return void |
|
18 | - */ |
|
19 | - public static function set_hooks_admin() |
|
20 | - { |
|
21 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
22 | - } |
|
23 | - |
|
24 | - |
|
25 | - /** |
|
26 | - * @deprecated 4.9.26 |
|
27 | - * @param $post_ID |
|
28 | - * @param $post |
|
29 | - * @return void |
|
30 | - */ |
|
31 | - public static function parse_post_content_on_save($post_ID, $post) |
|
32 | - { |
|
33 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
34 | - } |
|
35 | - |
|
36 | - |
|
37 | - /** |
|
38 | - * @deprecated 4.9.26 |
|
39 | - * @param $page_for_posts |
|
40 | - * @return void |
|
41 | - */ |
|
42 | - protected static function set_post_shortcodes_for_posts_page($page_for_posts) |
|
43 | - { |
|
44 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
45 | - } |
|
46 | - |
|
47 | - |
|
48 | - /** |
|
49 | - * @deprecated 4.9.26 |
|
50 | - * @param $page_for_posts |
|
51 | - * @param $EES_Shortcode |
|
52 | - * @param $post_ID |
|
53 | - * @return void |
|
54 | - */ |
|
55 | - protected static function set_post_shortcode_for_posts_page($page_for_posts, $EES_Shortcode, $post_ID) |
|
56 | - { |
|
57 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
58 | - } |
|
59 | - |
|
60 | - |
|
61 | - /** |
|
62 | - * @deprecated 4.9.26 |
|
63 | - * @param $ID |
|
64 | - * @return void |
|
65 | - */ |
|
66 | - public static function unset_post_shortcodes_on_delete($ID) |
|
67 | - { |
|
68 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
69 | - } |
|
70 | - |
|
71 | - |
|
72 | - /** |
|
73 | - * @deprecated 4.9.26 |
|
74 | - * @param $ID |
|
75 | - * @param $shortcode_class |
|
76 | - * @param $shortcode_posts |
|
77 | - * @param $page_for_posts |
|
78 | - * @param bool $update_post_shortcodes |
|
79 | - * @return void |
|
80 | - */ |
|
81 | - protected static function unset_posts_page_shortcode_for_post( |
|
82 | - $ID, |
|
83 | - $shortcode_class, |
|
84 | - $shortcode_posts, |
|
85 | - $page_for_posts, |
|
86 | - $update_post_shortcodes = false |
|
87 | - ) { |
|
88 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
89 | - } |
|
90 | - |
|
91 | - |
|
92 | - /** |
|
93 | - * @deprecated 4.9.26 |
|
94 | - * @param string $page_for_posts |
|
95 | - * @return void |
|
96 | - */ |
|
97 | - public static function update_post_shortcodes($page_for_posts = '') |
|
98 | - { |
|
99 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
100 | - } |
|
101 | - |
|
102 | - |
|
103 | - /** |
|
104 | - * @deprecated 4.9.26 |
|
105 | - * @param $option |
|
106 | - * @param $value |
|
107 | - * @return void |
|
108 | - */ |
|
109 | - public static function reset_page_for_posts_on_initial_set($option, $value) |
|
110 | - { |
|
111 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
112 | - } |
|
113 | - |
|
114 | - |
|
115 | - /** |
|
116 | - * @deprecated 4.9.26 |
|
117 | - * @param $option |
|
118 | - * @param string $old_value |
|
119 | - * @param string $value |
|
120 | - * @return void |
|
121 | - */ |
|
122 | - public static function reset_page_for_posts_on_change($option, $old_value = '', $value = '') |
|
123 | - { |
|
124 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
125 | - } |
|
126 | - |
|
127 | - |
|
128 | - /** |
|
129 | - * @deprecated 4.9.26 |
|
130 | - * @param $option |
|
131 | - * @return void |
|
132 | - */ |
|
133 | - public static function reset_page_for_posts_on_delete($option) |
|
134 | - { |
|
135 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
136 | - } |
|
137 | - |
|
138 | - |
|
139 | - /** |
|
140 | - * @deprecated 4.9.26 |
|
141 | - * @param $shortcodes |
|
142 | - * @param bool $index_results |
|
143 | - * @return void |
|
144 | - */ |
|
145 | - public static function get_post_ids_for_shortcode($shortcodes, $index_results = true) |
|
146 | - { |
|
147 | - \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
148 | - } |
|
15 | + /** |
|
16 | + * @deprecated 4.9.26 |
|
17 | + * @return void |
|
18 | + */ |
|
19 | + public static function set_hooks_admin() |
|
20 | + { |
|
21 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
22 | + } |
|
23 | + |
|
24 | + |
|
25 | + /** |
|
26 | + * @deprecated 4.9.26 |
|
27 | + * @param $post_ID |
|
28 | + * @param $post |
|
29 | + * @return void |
|
30 | + */ |
|
31 | + public static function parse_post_content_on_save($post_ID, $post) |
|
32 | + { |
|
33 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
34 | + } |
|
35 | + |
|
36 | + |
|
37 | + /** |
|
38 | + * @deprecated 4.9.26 |
|
39 | + * @param $page_for_posts |
|
40 | + * @return void |
|
41 | + */ |
|
42 | + protected static function set_post_shortcodes_for_posts_page($page_for_posts) |
|
43 | + { |
|
44 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
45 | + } |
|
46 | + |
|
47 | + |
|
48 | + /** |
|
49 | + * @deprecated 4.9.26 |
|
50 | + * @param $page_for_posts |
|
51 | + * @param $EES_Shortcode |
|
52 | + * @param $post_ID |
|
53 | + * @return void |
|
54 | + */ |
|
55 | + protected static function set_post_shortcode_for_posts_page($page_for_posts, $EES_Shortcode, $post_ID) |
|
56 | + { |
|
57 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
58 | + } |
|
59 | + |
|
60 | + |
|
61 | + /** |
|
62 | + * @deprecated 4.9.26 |
|
63 | + * @param $ID |
|
64 | + * @return void |
|
65 | + */ |
|
66 | + public static function unset_post_shortcodes_on_delete($ID) |
|
67 | + { |
|
68 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
69 | + } |
|
70 | + |
|
71 | + |
|
72 | + /** |
|
73 | + * @deprecated 4.9.26 |
|
74 | + * @param $ID |
|
75 | + * @param $shortcode_class |
|
76 | + * @param $shortcode_posts |
|
77 | + * @param $page_for_posts |
|
78 | + * @param bool $update_post_shortcodes |
|
79 | + * @return void |
|
80 | + */ |
|
81 | + protected static function unset_posts_page_shortcode_for_post( |
|
82 | + $ID, |
|
83 | + $shortcode_class, |
|
84 | + $shortcode_posts, |
|
85 | + $page_for_posts, |
|
86 | + $update_post_shortcodes = false |
|
87 | + ) { |
|
88 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
89 | + } |
|
90 | + |
|
91 | + |
|
92 | + /** |
|
93 | + * @deprecated 4.9.26 |
|
94 | + * @param string $page_for_posts |
|
95 | + * @return void |
|
96 | + */ |
|
97 | + public static function update_post_shortcodes($page_for_posts = '') |
|
98 | + { |
|
99 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
100 | + } |
|
101 | + |
|
102 | + |
|
103 | + /** |
|
104 | + * @deprecated 4.9.26 |
|
105 | + * @param $option |
|
106 | + * @param $value |
|
107 | + * @return void |
|
108 | + */ |
|
109 | + public static function reset_page_for_posts_on_initial_set($option, $value) |
|
110 | + { |
|
111 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
112 | + } |
|
113 | + |
|
114 | + |
|
115 | + /** |
|
116 | + * @deprecated 4.9.26 |
|
117 | + * @param $option |
|
118 | + * @param string $old_value |
|
119 | + * @param string $value |
|
120 | + * @return void |
|
121 | + */ |
|
122 | + public static function reset_page_for_posts_on_change($option, $old_value = '', $value = '') |
|
123 | + { |
|
124 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
125 | + } |
|
126 | + |
|
127 | + |
|
128 | + /** |
|
129 | + * @deprecated 4.9.26 |
|
130 | + * @param $option |
|
131 | + * @return void |
|
132 | + */ |
|
133 | + public static function reset_page_for_posts_on_delete($option) |
|
134 | + { |
|
135 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
136 | + } |
|
137 | + |
|
138 | + |
|
139 | + /** |
|
140 | + * @deprecated 4.9.26 |
|
141 | + * @param $shortcodes |
|
142 | + * @param bool $index_results |
|
143 | + * @return void |
|
144 | + */ |
|
145 | + public static function get_post_ids_for_shortcode($shortcodes, $index_results = true) |
|
146 | + { |
|
147 | + \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26'); |
|
148 | + } |
|
149 | 149 | } |
@@ -14,62 +14,62 @@ |
||
14 | 14 | class Context implements ContextInterface |
15 | 15 | { |
16 | 16 | |
17 | - /** |
|
18 | - * @var string $slug |
|
19 | - */ |
|
20 | - private $slug; |
|
17 | + /** |
|
18 | + * @var string $slug |
|
19 | + */ |
|
20 | + private $slug; |
|
21 | 21 | |
22 | - /** |
|
23 | - * @var string $description |
|
24 | - */ |
|
25 | - private $description; |
|
22 | + /** |
|
23 | + * @var string $description |
|
24 | + */ |
|
25 | + private $description; |
|
26 | 26 | |
27 | 27 | |
28 | - /** |
|
29 | - * Context constructor. |
|
30 | - * |
|
31 | - * @param string $slug |
|
32 | - * @param string $description |
|
33 | - */ |
|
34 | - public function __construct($slug, $description) |
|
35 | - { |
|
36 | - $this->setSlug($slug); |
|
37 | - $this->setDescription($description); |
|
38 | - } |
|
28 | + /** |
|
29 | + * Context constructor. |
|
30 | + * |
|
31 | + * @param string $slug |
|
32 | + * @param string $description |
|
33 | + */ |
|
34 | + public function __construct($slug, $description) |
|
35 | + { |
|
36 | + $this->setSlug($slug); |
|
37 | + $this->setDescription($description); |
|
38 | + } |
|
39 | 39 | |
40 | 40 | |
41 | - /** |
|
42 | - * @return string |
|
43 | - */ |
|
44 | - public function slug() |
|
45 | - { |
|
46 | - return $this->slug; |
|
47 | - } |
|
41 | + /** |
|
42 | + * @return string |
|
43 | + */ |
|
44 | + public function slug() |
|
45 | + { |
|
46 | + return $this->slug; |
|
47 | + } |
|
48 | 48 | |
49 | 49 | |
50 | - /** |
|
51 | - * @param string $slug |
|
52 | - */ |
|
53 | - private function setSlug($slug) |
|
54 | - { |
|
55 | - $this->slug = sanitize_key($slug); |
|
56 | - } |
|
50 | + /** |
|
51 | + * @param string $slug |
|
52 | + */ |
|
53 | + private function setSlug($slug) |
|
54 | + { |
|
55 | + $this->slug = sanitize_key($slug); |
|
56 | + } |
|
57 | 57 | |
58 | 58 | |
59 | - /** |
|
60 | - * @return string |
|
61 | - */ |
|
62 | - public function description() |
|
63 | - { |
|
64 | - return $this->description; |
|
65 | - } |
|
59 | + /** |
|
60 | + * @return string |
|
61 | + */ |
|
62 | + public function description() |
|
63 | + { |
|
64 | + return $this->description; |
|
65 | + } |
|
66 | 66 | |
67 | 67 | |
68 | - /** |
|
69 | - * @param string $description |
|
70 | - */ |
|
71 | - private function setDescription($description) |
|
72 | - { |
|
73 | - $this->description = sanitize_text_field($description); |
|
74 | - } |
|
68 | + /** |
|
69 | + * @param string $description |
|
70 | + */ |
|
71 | + private function setDescription($description) |
|
72 | + { |
|
73 | + $this->description = sanitize_text_field($description); |
|
74 | + } |
|
75 | 75 | } |
@@ -13,178 +13,178 @@ |
||
13 | 13 | class InvalidCheckoutAccess |
14 | 14 | { |
15 | 15 | |
16 | - /** |
|
17 | - * key used for saving invalid checkout access data to the wp_options table |
|
18 | - */ |
|
19 | - const OPTION_KEY = 'ee_invalid_checkout_access'; |
|
16 | + /** |
|
17 | + * key used for saving invalid checkout access data to the wp_options table |
|
18 | + */ |
|
19 | + const OPTION_KEY = 'ee_invalid_checkout_access'; |
|
20 | 20 | |
21 | 21 | |
22 | - /** |
|
23 | - * _block_bots |
|
24 | - * checks that the incoming request has either of the following set: |
|
25 | - * a uts (unix timestamp) which indicates that the request was redirected from the Ticket Selector |
|
26 | - * a REG URL Link, which indicates that the request is a return visit to SPCO for a valid TXN |
|
27 | - * so if you're not coming from the Ticket Selector nor returning for a valid IP... |
|
28 | - * then where you coming from man? |
|
29 | - * |
|
30 | - * @param \EE_Checkout $checkout |
|
31 | - * @return bool true if access to registration checkout appears to be invalid |
|
32 | - */ |
|
33 | - public function checkoutAccessIsInvalid(\EE_Checkout $checkout) |
|
34 | - { |
|
35 | - if (! ($checkout->uts || $checkout->reg_url_link) |
|
36 | - && ! (defined('DOING_AJAX') && DOING_AJAX) |
|
37 | - && \EE_Config::instance()->registration->track_invalid_checkout_access() |
|
38 | - ) { |
|
39 | - /** @var \EE_Request $request */ |
|
40 | - $request = \EE_Registry::instance()->load_core('EE_Request'); |
|
41 | - $ip_address = $request->ip_address(); |
|
42 | - $ee_bot_checkout = get_option(InvalidCheckoutAccess::OPTION_KEY); |
|
43 | - if ($ee_bot_checkout === false) { |
|
44 | - $ee_bot_checkout = array(); |
|
45 | - add_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout, '', false); |
|
46 | - } |
|
47 | - if (! isset($ee_bot_checkout[ $ip_address ])) { |
|
48 | - $ee_bot_checkout[ $ip_address ] = array(); |
|
49 | - } |
|
50 | - $http_referer = isset($_SERVER['HTTP_REFERER']) |
|
51 | - ? esc_attr($_SERVER['HTTP_REFERER']) |
|
52 | - : 0; |
|
53 | - if (! isset($ee_bot_checkout[ $ip_address ][ $http_referer ])) { |
|
54 | - $ee_bot_checkout[ $ip_address ][ $http_referer ] = 0; |
|
55 | - } |
|
56 | - $ee_bot_checkout[ $ip_address ][ $http_referer ]++; |
|
57 | - update_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout); |
|
58 | - if (WP_DEBUG) { |
|
59 | - \EE_Error::add_error( |
|
60 | - esc_html__('Direct access to the registration checkout page is not allowed.', 'event_espresso'), |
|
61 | - __FILE__, |
|
62 | - __FUNCTION__, |
|
63 | - __LINE__ |
|
64 | - ); |
|
65 | - } |
|
66 | - return true; |
|
67 | - } |
|
68 | - return false; |
|
69 | - } |
|
22 | + /** |
|
23 | + * _block_bots |
|
24 | + * checks that the incoming request has either of the following set: |
|
25 | + * a uts (unix timestamp) which indicates that the request was redirected from the Ticket Selector |
|
26 | + * a REG URL Link, which indicates that the request is a return visit to SPCO for a valid TXN |
|
27 | + * so if you're not coming from the Ticket Selector nor returning for a valid IP... |
|
28 | + * then where you coming from man? |
|
29 | + * |
|
30 | + * @param \EE_Checkout $checkout |
|
31 | + * @return bool true if access to registration checkout appears to be invalid |
|
32 | + */ |
|
33 | + public function checkoutAccessIsInvalid(\EE_Checkout $checkout) |
|
34 | + { |
|
35 | + if (! ($checkout->uts || $checkout->reg_url_link) |
|
36 | + && ! (defined('DOING_AJAX') && DOING_AJAX) |
|
37 | + && \EE_Config::instance()->registration->track_invalid_checkout_access() |
|
38 | + ) { |
|
39 | + /** @var \EE_Request $request */ |
|
40 | + $request = \EE_Registry::instance()->load_core('EE_Request'); |
|
41 | + $ip_address = $request->ip_address(); |
|
42 | + $ee_bot_checkout = get_option(InvalidCheckoutAccess::OPTION_KEY); |
|
43 | + if ($ee_bot_checkout === false) { |
|
44 | + $ee_bot_checkout = array(); |
|
45 | + add_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout, '', false); |
|
46 | + } |
|
47 | + if (! isset($ee_bot_checkout[ $ip_address ])) { |
|
48 | + $ee_bot_checkout[ $ip_address ] = array(); |
|
49 | + } |
|
50 | + $http_referer = isset($_SERVER['HTTP_REFERER']) |
|
51 | + ? esc_attr($_SERVER['HTTP_REFERER']) |
|
52 | + : 0; |
|
53 | + if (! isset($ee_bot_checkout[ $ip_address ][ $http_referer ])) { |
|
54 | + $ee_bot_checkout[ $ip_address ][ $http_referer ] = 0; |
|
55 | + } |
|
56 | + $ee_bot_checkout[ $ip_address ][ $http_referer ]++; |
|
57 | + update_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout); |
|
58 | + if (WP_DEBUG) { |
|
59 | + \EE_Error::add_error( |
|
60 | + esc_html__('Direct access to the registration checkout page is not allowed.', 'event_espresso'), |
|
61 | + __FILE__, |
|
62 | + __FUNCTION__, |
|
63 | + __LINE__ |
|
64 | + ); |
|
65 | + } |
|
66 | + return true; |
|
67 | + } |
|
68 | + return false; |
|
69 | + } |
|
70 | 70 | |
71 | 71 | |
72 | - /** |
|
73 | - * _invalid_checkout_access_form |
|
74 | - * |
|
75 | - * @return \EE_Form_Section_Proper |
|
76 | - * @throws \EE_Error |
|
77 | - */ |
|
78 | - public function getForm() |
|
79 | - { |
|
80 | - return new \EE_Form_Section_Proper( |
|
81 | - array( |
|
82 | - 'name' => 'invalid_checkout_access', |
|
83 | - 'html_id' => 'invalid_checkout_access', |
|
84 | - 'layout_strategy' => new \EE_Admin_Two_Column_Layout(), |
|
85 | - 'subsections' => array( |
|
86 | - 'invalid_checkout_access_hdr' => new \EE_Form_Section_HTML( |
|
87 | - \EEH_HTML::h2(esc_html__('Invalid Checkout Access', 'event_espresso')) |
|
88 | - ), |
|
89 | - 'ee_bot_checkout_data' => new \EE_Text_Area_Input( |
|
90 | - array( |
|
91 | - 'html_label_text' => esc_html__('Invalid Checkout Data', 'event_espresso'), |
|
92 | - 'default' => var_export( |
|
93 | - get_option(InvalidCheckoutAccess::OPTION_KEY, array()), |
|
94 | - true |
|
95 | - ), |
|
96 | - 'required' => false, |
|
97 | - 'html_help_text' => esc_html__( |
|
98 | - 'Event Espresso blocks any attempt to directly access the registration checkout page, that is NOT from a Ticket Selector or for a return visit for a valid transaction. These are not valid requests accessing your checkout page, so we track the IP addresses, what web page they just came from, and the number of times that they have attempted to access your registration page. This information may help you with protecting your site by other means, such as firewalls, etc, but please note that IP addresses are almost guaranteed to be spoofed by malicious agents.', |
|
99 | - 'event_espresso' |
|
100 | - ), |
|
101 | - ) |
|
102 | - ), |
|
103 | - 'track_invalid_checkout_access' => new \EE_Yes_No_Input( |
|
104 | - array( |
|
105 | - 'html_label_text' => __('Track Invalid Checkout Access?', 'event_espresso'), |
|
106 | - 'html_help_text' => esc_html__( |
|
107 | - 'Controls whether or not invalid attempts to directly access the registration checkout page should be tracked. Setting this to "No" means that the above data will no longer be collected.', |
|
108 | - 'event_espresso' |
|
109 | - ), |
|
110 | - 'default' => \EE_Config::instance() |
|
111 | - ->registration |
|
112 | - ->track_invalid_checkout_access(), |
|
113 | - 'display_html_label_text' => false, |
|
114 | - ) |
|
115 | - ), |
|
116 | - 'delete_invalid_checkout_data' => new \EE_Yes_No_Input( |
|
117 | - array( |
|
118 | - 'html_label_text' => __('Reset Invalid Checkout Data', 'event_espresso'), |
|
119 | - 'html_help_text' => esc_html__( |
|
120 | - 'Setting this to "Yes" will delete all existing invalid checkout access data.', |
|
121 | - 'event_espresso' |
|
122 | - ), |
|
123 | - 'default' => false, |
|
124 | - 'display_html_label_text' => false, |
|
125 | - ) |
|
126 | - ), |
|
127 | - ), |
|
128 | - ) |
|
129 | - ); |
|
130 | - } |
|
72 | + /** |
|
73 | + * _invalid_checkout_access_form |
|
74 | + * |
|
75 | + * @return \EE_Form_Section_Proper |
|
76 | + * @throws \EE_Error |
|
77 | + */ |
|
78 | + public function getForm() |
|
79 | + { |
|
80 | + return new \EE_Form_Section_Proper( |
|
81 | + array( |
|
82 | + 'name' => 'invalid_checkout_access', |
|
83 | + 'html_id' => 'invalid_checkout_access', |
|
84 | + 'layout_strategy' => new \EE_Admin_Two_Column_Layout(), |
|
85 | + 'subsections' => array( |
|
86 | + 'invalid_checkout_access_hdr' => new \EE_Form_Section_HTML( |
|
87 | + \EEH_HTML::h2(esc_html__('Invalid Checkout Access', 'event_espresso')) |
|
88 | + ), |
|
89 | + 'ee_bot_checkout_data' => new \EE_Text_Area_Input( |
|
90 | + array( |
|
91 | + 'html_label_text' => esc_html__('Invalid Checkout Data', 'event_espresso'), |
|
92 | + 'default' => var_export( |
|
93 | + get_option(InvalidCheckoutAccess::OPTION_KEY, array()), |
|
94 | + true |
|
95 | + ), |
|
96 | + 'required' => false, |
|
97 | + 'html_help_text' => esc_html__( |
|
98 | + 'Event Espresso blocks any attempt to directly access the registration checkout page, that is NOT from a Ticket Selector or for a return visit for a valid transaction. These are not valid requests accessing your checkout page, so we track the IP addresses, what web page they just came from, and the number of times that they have attempted to access your registration page. This information may help you with protecting your site by other means, such as firewalls, etc, but please note that IP addresses are almost guaranteed to be spoofed by malicious agents.', |
|
99 | + 'event_espresso' |
|
100 | + ), |
|
101 | + ) |
|
102 | + ), |
|
103 | + 'track_invalid_checkout_access' => new \EE_Yes_No_Input( |
|
104 | + array( |
|
105 | + 'html_label_text' => __('Track Invalid Checkout Access?', 'event_espresso'), |
|
106 | + 'html_help_text' => esc_html__( |
|
107 | + 'Controls whether or not invalid attempts to directly access the registration checkout page should be tracked. Setting this to "No" means that the above data will no longer be collected.', |
|
108 | + 'event_espresso' |
|
109 | + ), |
|
110 | + 'default' => \EE_Config::instance() |
|
111 | + ->registration |
|
112 | + ->track_invalid_checkout_access(), |
|
113 | + 'display_html_label_text' => false, |
|
114 | + ) |
|
115 | + ), |
|
116 | + 'delete_invalid_checkout_data' => new \EE_Yes_No_Input( |
|
117 | + array( |
|
118 | + 'html_label_text' => __('Reset Invalid Checkout Data', 'event_espresso'), |
|
119 | + 'html_help_text' => esc_html__( |
|
120 | + 'Setting this to "Yes" will delete all existing invalid checkout access data.', |
|
121 | + 'event_espresso' |
|
122 | + ), |
|
123 | + 'default' => false, |
|
124 | + 'display_html_label_text' => false, |
|
125 | + ) |
|
126 | + ), |
|
127 | + ), |
|
128 | + ) |
|
129 | + ); |
|
130 | + } |
|
131 | 131 | |
132 | 132 | |
133 | - /** |
|
134 | - * update_invalid_checkout_access_form |
|
135 | - * |
|
136 | - * @param \EE_Registration_Config $EE_Registration_Config |
|
137 | - * @return \EE_Registration_Config |
|
138 | - */ |
|
139 | - public function processForm(\EE_Registration_Config $EE_Registration_Config) |
|
140 | - { |
|
141 | - try { |
|
142 | - $invalid_checkout_access_form = $this->getForm(); |
|
143 | - // if not displaying a form, then check for form submission |
|
144 | - if ($invalid_checkout_access_form->was_submitted()) { |
|
145 | - // capture form data |
|
146 | - $invalid_checkout_access_form->receive_form_submission(); |
|
147 | - // validate form data |
|
148 | - if ($invalid_checkout_access_form->is_valid()) { |
|
149 | - // grab validated data from form |
|
150 | - $valid_data = $invalid_checkout_access_form->valid_data(); |
|
151 | - // ensure form inputs we want are set |
|
152 | - if (isset( |
|
153 | - $valid_data['track_invalid_checkout_access'], |
|
154 | - $valid_data['delete_invalid_checkout_data'] |
|
155 | - )) { |
|
156 | - $EE_Registration_Config->set_track_invalid_checkout_access( |
|
157 | - $valid_data['track_invalid_checkout_access'] |
|
158 | - ); |
|
159 | - // if deleting, then update option with empty array |
|
160 | - if (filter_var($valid_data['delete_invalid_checkout_data'], FILTER_VALIDATE_BOOLEAN)) { |
|
161 | - update_option(InvalidCheckoutAccess::OPTION_KEY, array()); |
|
162 | - } |
|
163 | - } else { |
|
164 | - \EE_Error::add_error( |
|
165 | - esc_html__( |
|
166 | - 'Invalid or missing Invalid Checkout Access form data. Please refresh the form and try again.', |
|
167 | - 'event_espresso' |
|
168 | - ), |
|
169 | - __FILE__, |
|
170 | - __FUNCTION__, |
|
171 | - __LINE__ |
|
172 | - ); |
|
173 | - } |
|
174 | - } else { |
|
175 | - if ($invalid_checkout_access_form->submission_error_message() !== '') { |
|
176 | - \EE_Error::add_error( |
|
177 | - $invalid_checkout_access_form->submission_error_message(), |
|
178 | - __FILE__, |
|
179 | - __FUNCTION__, |
|
180 | - __LINE__ |
|
181 | - ); |
|
182 | - } |
|
183 | - } |
|
184 | - } |
|
185 | - } catch (\EE_Error $e) { |
|
186 | - $e->get_error(); |
|
187 | - } |
|
188 | - return $EE_Registration_Config; |
|
189 | - } |
|
133 | + /** |
|
134 | + * update_invalid_checkout_access_form |
|
135 | + * |
|
136 | + * @param \EE_Registration_Config $EE_Registration_Config |
|
137 | + * @return \EE_Registration_Config |
|
138 | + */ |
|
139 | + public function processForm(\EE_Registration_Config $EE_Registration_Config) |
|
140 | + { |
|
141 | + try { |
|
142 | + $invalid_checkout_access_form = $this->getForm(); |
|
143 | + // if not displaying a form, then check for form submission |
|
144 | + if ($invalid_checkout_access_form->was_submitted()) { |
|
145 | + // capture form data |
|
146 | + $invalid_checkout_access_form->receive_form_submission(); |
|
147 | + // validate form data |
|
148 | + if ($invalid_checkout_access_form->is_valid()) { |
|
149 | + // grab validated data from form |
|
150 | + $valid_data = $invalid_checkout_access_form->valid_data(); |
|
151 | + // ensure form inputs we want are set |
|
152 | + if (isset( |
|
153 | + $valid_data['track_invalid_checkout_access'], |
|
154 | + $valid_data['delete_invalid_checkout_data'] |
|
155 | + )) { |
|
156 | + $EE_Registration_Config->set_track_invalid_checkout_access( |
|
157 | + $valid_data['track_invalid_checkout_access'] |
|
158 | + ); |
|
159 | + // if deleting, then update option with empty array |
|
160 | + if (filter_var($valid_data['delete_invalid_checkout_data'], FILTER_VALIDATE_BOOLEAN)) { |
|
161 | + update_option(InvalidCheckoutAccess::OPTION_KEY, array()); |
|
162 | + } |
|
163 | + } else { |
|
164 | + \EE_Error::add_error( |
|
165 | + esc_html__( |
|
166 | + 'Invalid or missing Invalid Checkout Access form data. Please refresh the form and try again.', |
|
167 | + 'event_espresso' |
|
168 | + ), |
|
169 | + __FILE__, |
|
170 | + __FUNCTION__, |
|
171 | + __LINE__ |
|
172 | + ); |
|
173 | + } |
|
174 | + } else { |
|
175 | + if ($invalid_checkout_access_form->submission_error_message() !== '') { |
|
176 | + \EE_Error::add_error( |
|
177 | + $invalid_checkout_access_form->submission_error_message(), |
|
178 | + __FILE__, |
|
179 | + __FUNCTION__, |
|
180 | + __LINE__ |
|
181 | + ); |
|
182 | + } |
|
183 | + } |
|
184 | + } |
|
185 | + } catch (\EE_Error $e) { |
|
186 | + $e->get_error(); |
|
187 | + } |
|
188 | + return $EE_Registration_Config; |
|
189 | + } |
|
190 | 190 | } |
@@ -32,7 +32,7 @@ discard block |
||
32 | 32 | */ |
33 | 33 | public function checkoutAccessIsInvalid(\EE_Checkout $checkout) |
34 | 34 | { |
35 | - if (! ($checkout->uts || $checkout->reg_url_link) |
|
35 | + if ( ! ($checkout->uts || $checkout->reg_url_link) |
|
36 | 36 | && ! (defined('DOING_AJAX') && DOING_AJAX) |
37 | 37 | && \EE_Config::instance()->registration->track_invalid_checkout_access() |
38 | 38 | ) { |
@@ -44,16 +44,16 @@ discard block |
||
44 | 44 | $ee_bot_checkout = array(); |
45 | 45 | add_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout, '', false); |
46 | 46 | } |
47 | - if (! isset($ee_bot_checkout[ $ip_address ])) { |
|
48 | - $ee_bot_checkout[ $ip_address ] = array(); |
|
47 | + if ( ! isset($ee_bot_checkout[$ip_address])) { |
|
48 | + $ee_bot_checkout[$ip_address] = array(); |
|
49 | 49 | } |
50 | 50 | $http_referer = isset($_SERVER['HTTP_REFERER']) |
51 | 51 | ? esc_attr($_SERVER['HTTP_REFERER']) |
52 | 52 | : 0; |
53 | - if (! isset($ee_bot_checkout[ $ip_address ][ $http_referer ])) { |
|
54 | - $ee_bot_checkout[ $ip_address ][ $http_referer ] = 0; |
|
53 | + if ( ! isset($ee_bot_checkout[$ip_address][$http_referer])) { |
|
54 | + $ee_bot_checkout[$ip_address][$http_referer] = 0; |
|
55 | 55 | } |
56 | - $ee_bot_checkout[ $ip_address ][ $http_referer ]++; |
|
56 | + $ee_bot_checkout[$ip_address][$http_referer]++; |
|
57 | 57 | update_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout); |
58 | 58 | if (WP_DEBUG) { |
59 | 59 | \EE_Error::add_error( |
@@ -33,717 +33,717 @@ |
||
33 | 33 | class DisplayTicketSelector |
34 | 34 | { |
35 | 35 | |
36 | - /** |
|
37 | - * event that ticket selector is being generated for |
|
38 | - * |
|
39 | - * @access protected |
|
40 | - * @var EE_Event $event |
|
41 | - */ |
|
42 | - protected $event; |
|
43 | - |
|
44 | - /** |
|
45 | - * Used to flag when the ticket selector is being called from an external iframe. |
|
46 | - * |
|
47 | - * @var bool $iframe |
|
48 | - */ |
|
49 | - protected $iframe = false; |
|
50 | - |
|
51 | - /** |
|
52 | - * max attendees that can register for event at one time |
|
53 | - * |
|
54 | - * @var int $max_attendees |
|
55 | - */ |
|
56 | - private $max_attendees = EE_INF; |
|
57 | - |
|
58 | - /** |
|
59 | - * @var string $date_format |
|
60 | - */ |
|
61 | - private $date_format; |
|
62 | - |
|
63 | - /** |
|
64 | - * @var string $time_format |
|
65 | - */ |
|
66 | - private $time_format; |
|
67 | - |
|
68 | - /** |
|
69 | - * @var boolean $display_full_ui |
|
70 | - */ |
|
71 | - private $display_full_ui; |
|
72 | - |
|
73 | - |
|
74 | - /** |
|
75 | - * DisplayTicketSelector constructor. |
|
76 | - * |
|
77 | - * @param bool $iframe |
|
78 | - */ |
|
79 | - public function __construct($iframe = false) |
|
80 | - { |
|
81 | - $this->iframe = $iframe; |
|
82 | - $this->date_format = apply_filters( |
|
83 | - 'FHEE__EED_Ticket_Selector__display_ticket_selector__date_format', |
|
84 | - get_option('date_format') |
|
85 | - ); |
|
86 | - $this->time_format = apply_filters( |
|
87 | - 'FHEE__EED_Ticket_Selector__display_ticket_selector__time_format', |
|
88 | - get_option('time_format') |
|
89 | - ); |
|
90 | - } |
|
91 | - |
|
92 | - |
|
93 | - /** |
|
94 | - * @return bool |
|
95 | - */ |
|
96 | - public function isIframe() |
|
97 | - { |
|
98 | - return $this->iframe; |
|
99 | - } |
|
100 | - |
|
101 | - |
|
102 | - /** |
|
103 | - * @param boolean $iframe |
|
104 | - */ |
|
105 | - public function setIframe($iframe = true) |
|
106 | - { |
|
107 | - $this->iframe = filter_var($iframe, FILTER_VALIDATE_BOOLEAN); |
|
108 | - } |
|
109 | - |
|
110 | - |
|
111 | - /** |
|
112 | - * finds and sets the \EE_Event object for use throughout class |
|
113 | - * |
|
114 | - * @param mixed $event |
|
115 | - * @return bool |
|
116 | - * @throws EE_Error |
|
117 | - * @throws InvalidDataTypeException |
|
118 | - * @throws InvalidInterfaceException |
|
119 | - * @throws InvalidArgumentException |
|
120 | - */ |
|
121 | - protected function setEvent($event = null) |
|
122 | - { |
|
123 | - if ($event === null) { |
|
124 | - global $post; |
|
125 | - $event = $post; |
|
126 | - } |
|
127 | - if ($event instanceof EE_Event) { |
|
128 | - $this->event = $event; |
|
129 | - } elseif ($event instanceof WP_Post) { |
|
130 | - if (isset($event->EE_Event) && $event->EE_Event instanceof EE_Event) { |
|
131 | - $this->event = $event->EE_Event; |
|
132 | - } elseif ($event->post_type === 'espresso_events') { |
|
133 | - $event->EE_Event = EEM_Event::instance()->instantiate_class_from_post_object($event); |
|
134 | - $this->event = $event->EE_Event; |
|
135 | - } |
|
136 | - } else { |
|
137 | - $user_msg = __('No Event object or an invalid Event object was supplied.', 'event_espresso'); |
|
138 | - $dev_msg = $user_msg . __( |
|
139 | - 'In order to generate a ticket selector, please ensure you are passing either an EE_Event object or a WP_Post object of the post type "espresso_event" to the EE_Ticket_Selector class constructor.', |
|
140 | - 'event_espresso' |
|
141 | - ); |
|
142 | - EE_Error::add_error($user_msg . '||' . $dev_msg, __FILE__, __FUNCTION__, __LINE__); |
|
143 | - return false; |
|
144 | - } |
|
145 | - return true; |
|
146 | - } |
|
147 | - |
|
148 | - |
|
149 | - /** |
|
150 | - * @return int |
|
151 | - */ |
|
152 | - public function getMaxAttendees() |
|
153 | - { |
|
154 | - return $this->max_attendees; |
|
155 | - } |
|
156 | - |
|
157 | - |
|
158 | - /** |
|
159 | - * @param int $max_attendees |
|
160 | - */ |
|
161 | - public function setMaxAttendees($max_attendees) |
|
162 | - { |
|
163 | - $this->max_attendees = absint( |
|
164 | - apply_filters( |
|
165 | - 'FHEE__EE_Ticket_Selector__display_ticket_selector__max_tickets', |
|
166 | - $max_attendees |
|
167 | - ) |
|
168 | - ); |
|
169 | - } |
|
170 | - |
|
171 | - |
|
172 | - /** |
|
173 | - * Returns whether or not the full ticket selector should be shown or not. |
|
174 | - * Currently, it displays on the frontend (including ajax requests) but not the backend |
|
175 | - * |
|
176 | - * @return bool |
|
177 | - */ |
|
178 | - private function display_full_ui() |
|
179 | - { |
|
180 | - if ($this->display_full_ui === null) { |
|
181 | - $this->display_full_ui = ! is_admin() || (defined('DOING_AJAX') && DOING_AJAX); |
|
182 | - } |
|
183 | - return $this->display_full_ui; |
|
184 | - } |
|
185 | - |
|
186 | - |
|
187 | - /** |
|
188 | - * creates buttons for selecting number of attendees for an event |
|
189 | - * |
|
190 | - * @param WP_Post|int $event |
|
191 | - * @param bool $view_details |
|
192 | - * @return string |
|
193 | - * @throws EE_Error |
|
194 | - * @throws InvalidArgumentException |
|
195 | - * @throws InvalidDataTypeException |
|
196 | - * @throws InvalidInterfaceException |
|
197 | - */ |
|
198 | - public function display($event = null, $view_details = false) |
|
199 | - { |
|
200 | - // reset filter for displaying submit button |
|
201 | - remove_filter('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', '__return_true'); |
|
202 | - // poke and prod incoming event till it tells us what it is |
|
203 | - if (! $this->setEvent($event)) { |
|
204 | - return false; |
|
205 | - } |
|
206 | - // begin gathering template arguments by getting event status |
|
207 | - $template_args = array('event_status' => $this->event->get_active_status()); |
|
208 | - if ($this->activeEventAndShowTicketSelector( |
|
209 | - $event, |
|
210 | - $template_args['event_status'], |
|
211 | - $view_details |
|
212 | - )) { |
|
213 | - return ! is_single() ? $this->displayViewDetailsButton() : ''; |
|
214 | - } |
|
215 | - // filter the maximum qty that can appear in the Ticket Selector qty dropdowns |
|
216 | - $this->setMaxAttendees($this->event->additional_limit()); |
|
217 | - if ($this->getMaxAttendees() < 1) { |
|
218 | - return $this->ticketSalesClosedMessage(); |
|
219 | - } |
|
220 | - // is the event expired ? |
|
221 | - $template_args['event_is_expired'] = $this->event->is_expired(); |
|
222 | - if ($template_args['event_is_expired']) { |
|
223 | - return $this->expiredEventMessage(); |
|
224 | - } |
|
225 | - // get all tickets for this event ordered by the datetime |
|
226 | - $tickets = $this->getTickets(); |
|
227 | - if (count($tickets) < 1) { |
|
228 | - return $this->noTicketAvailableMessage(); |
|
229 | - } |
|
230 | - // redirecting to another site for registration ?? |
|
231 | - $external_url = (string) $this->event->external_url(); |
|
232 | - // if redirecting to another site for registration, then we don't load the TS |
|
233 | - $ticket_selector = $external_url |
|
234 | - ? $this->externalEventRegistration() |
|
235 | - : $this->loadTicketSelector($tickets, $template_args); |
|
236 | - // now set up the form (but not for the admin) |
|
237 | - $ticket_selector = $this->display_full_ui() |
|
238 | - ? $this->formOpen($this->event->ID(), $external_url) . $ticket_selector |
|
239 | - : $ticket_selector; |
|
240 | - // submit button and form close tag |
|
241 | - $ticket_selector .= $this->display_full_ui() ? $this->displaySubmitButton($external_url) : ''; |
|
242 | - return $ticket_selector; |
|
243 | - } |
|
244 | - |
|
245 | - |
|
246 | - /** |
|
247 | - * displayTicketSelector |
|
248 | - * examines the event properties and determines whether a Ticket Selector should be displayed |
|
249 | - * |
|
250 | - * @param WP_Post|int $event |
|
251 | - * @param string $_event_active_status |
|
252 | - * @param bool $view_details |
|
253 | - * @return bool |
|
254 | - * @throws EE_Error |
|
255 | - */ |
|
256 | - protected function activeEventAndShowTicketSelector($event, $_event_active_status, $view_details) |
|
257 | - { |
|
258 | - $event_post = $this->event instanceof EE_Event ? $this->event->ID() : $event; |
|
259 | - return $this->display_full_ui() |
|
260 | - && ( |
|
261 | - ! $this->event->display_ticket_selector() |
|
262 | - || $view_details |
|
263 | - || post_password_required($event_post) |
|
264 | - || ( |
|
265 | - $_event_active_status !== EE_Datetime::active |
|
266 | - && $_event_active_status !== EE_Datetime::upcoming |
|
267 | - && $_event_active_status !== EE_Datetime::sold_out |
|
268 | - && ! ( |
|
269 | - $_event_active_status === EE_Datetime::inactive |
|
270 | - && is_user_logged_in() |
|
271 | - ) |
|
272 | - ) |
|
273 | - ); |
|
274 | - } |
|
275 | - |
|
276 | - |
|
277 | - /** |
|
278 | - * noTicketAvailableMessage |
|
279 | - * notice displayed if event is expired |
|
280 | - * |
|
281 | - * @return string |
|
282 | - * @throws EE_Error |
|
283 | - */ |
|
284 | - protected function expiredEventMessage() |
|
285 | - { |
|
286 | - return '<div class="ee-event-expired-notice"><span class="important-notice">' . esc_html__( |
|
287 | - 'We\'re sorry, but all tickets sales have ended because the event is expired.', |
|
288 | - 'event_espresso' |
|
289 | - ) . '</span></div><!-- .ee-event-expired-notice -->'; |
|
290 | - } |
|
291 | - |
|
292 | - |
|
293 | - /** |
|
294 | - * noTicketAvailableMessage |
|
295 | - * notice displayed if event has no more tickets available |
|
296 | - * |
|
297 | - * @return string |
|
298 | - * @throws EE_Error |
|
299 | - */ |
|
300 | - protected function noTicketAvailableMessage() |
|
301 | - { |
|
302 | - $no_ticket_available_msg = esc_html__('We\'re sorry, but all ticket sales have ended.', 'event_espresso'); |
|
303 | - if (current_user_can('edit_post', $this->event->ID())) { |
|
304 | - $no_ticket_available_msg .= sprintf( |
|
305 | - esc_html__( |
|
306 | - '%1$sNote to Event Admin:%2$sNo tickets were found for this event. This effectively turns off ticket sales. Please ensure that at least one ticket is available for if you want people to be able to register.%3$s(click to edit this event)%4$s', |
|
307 | - 'event_espresso' |
|
308 | - ), |
|
309 | - '<div class="ee-attention" style="text-align: left;"><b>', |
|
310 | - '</b><br />', |
|
311 | - '<span class="edit-link"><a class="post-edit-link" href="' |
|
312 | - . get_edit_post_link($this->event->ID()) |
|
313 | - . '">', |
|
314 | - '</a></span></div><!-- .ee-attention noTicketAvailableMessage -->' |
|
315 | - ); |
|
316 | - } |
|
317 | - return ' |
|
36 | + /** |
|
37 | + * event that ticket selector is being generated for |
|
38 | + * |
|
39 | + * @access protected |
|
40 | + * @var EE_Event $event |
|
41 | + */ |
|
42 | + protected $event; |
|
43 | + |
|
44 | + /** |
|
45 | + * Used to flag when the ticket selector is being called from an external iframe. |
|
46 | + * |
|
47 | + * @var bool $iframe |
|
48 | + */ |
|
49 | + protected $iframe = false; |
|
50 | + |
|
51 | + /** |
|
52 | + * max attendees that can register for event at one time |
|
53 | + * |
|
54 | + * @var int $max_attendees |
|
55 | + */ |
|
56 | + private $max_attendees = EE_INF; |
|
57 | + |
|
58 | + /** |
|
59 | + * @var string $date_format |
|
60 | + */ |
|
61 | + private $date_format; |
|
62 | + |
|
63 | + /** |
|
64 | + * @var string $time_format |
|
65 | + */ |
|
66 | + private $time_format; |
|
67 | + |
|
68 | + /** |
|
69 | + * @var boolean $display_full_ui |
|
70 | + */ |
|
71 | + private $display_full_ui; |
|
72 | + |
|
73 | + |
|
74 | + /** |
|
75 | + * DisplayTicketSelector constructor. |
|
76 | + * |
|
77 | + * @param bool $iframe |
|
78 | + */ |
|
79 | + public function __construct($iframe = false) |
|
80 | + { |
|
81 | + $this->iframe = $iframe; |
|
82 | + $this->date_format = apply_filters( |
|
83 | + 'FHEE__EED_Ticket_Selector__display_ticket_selector__date_format', |
|
84 | + get_option('date_format') |
|
85 | + ); |
|
86 | + $this->time_format = apply_filters( |
|
87 | + 'FHEE__EED_Ticket_Selector__display_ticket_selector__time_format', |
|
88 | + get_option('time_format') |
|
89 | + ); |
|
90 | + } |
|
91 | + |
|
92 | + |
|
93 | + /** |
|
94 | + * @return bool |
|
95 | + */ |
|
96 | + public function isIframe() |
|
97 | + { |
|
98 | + return $this->iframe; |
|
99 | + } |
|
100 | + |
|
101 | + |
|
102 | + /** |
|
103 | + * @param boolean $iframe |
|
104 | + */ |
|
105 | + public function setIframe($iframe = true) |
|
106 | + { |
|
107 | + $this->iframe = filter_var($iframe, FILTER_VALIDATE_BOOLEAN); |
|
108 | + } |
|
109 | + |
|
110 | + |
|
111 | + /** |
|
112 | + * finds and sets the \EE_Event object for use throughout class |
|
113 | + * |
|
114 | + * @param mixed $event |
|
115 | + * @return bool |
|
116 | + * @throws EE_Error |
|
117 | + * @throws InvalidDataTypeException |
|
118 | + * @throws InvalidInterfaceException |
|
119 | + * @throws InvalidArgumentException |
|
120 | + */ |
|
121 | + protected function setEvent($event = null) |
|
122 | + { |
|
123 | + if ($event === null) { |
|
124 | + global $post; |
|
125 | + $event = $post; |
|
126 | + } |
|
127 | + if ($event instanceof EE_Event) { |
|
128 | + $this->event = $event; |
|
129 | + } elseif ($event instanceof WP_Post) { |
|
130 | + if (isset($event->EE_Event) && $event->EE_Event instanceof EE_Event) { |
|
131 | + $this->event = $event->EE_Event; |
|
132 | + } elseif ($event->post_type === 'espresso_events') { |
|
133 | + $event->EE_Event = EEM_Event::instance()->instantiate_class_from_post_object($event); |
|
134 | + $this->event = $event->EE_Event; |
|
135 | + } |
|
136 | + } else { |
|
137 | + $user_msg = __('No Event object or an invalid Event object was supplied.', 'event_espresso'); |
|
138 | + $dev_msg = $user_msg . __( |
|
139 | + 'In order to generate a ticket selector, please ensure you are passing either an EE_Event object or a WP_Post object of the post type "espresso_event" to the EE_Ticket_Selector class constructor.', |
|
140 | + 'event_espresso' |
|
141 | + ); |
|
142 | + EE_Error::add_error($user_msg . '||' . $dev_msg, __FILE__, __FUNCTION__, __LINE__); |
|
143 | + return false; |
|
144 | + } |
|
145 | + return true; |
|
146 | + } |
|
147 | + |
|
148 | + |
|
149 | + /** |
|
150 | + * @return int |
|
151 | + */ |
|
152 | + public function getMaxAttendees() |
|
153 | + { |
|
154 | + return $this->max_attendees; |
|
155 | + } |
|
156 | + |
|
157 | + |
|
158 | + /** |
|
159 | + * @param int $max_attendees |
|
160 | + */ |
|
161 | + public function setMaxAttendees($max_attendees) |
|
162 | + { |
|
163 | + $this->max_attendees = absint( |
|
164 | + apply_filters( |
|
165 | + 'FHEE__EE_Ticket_Selector__display_ticket_selector__max_tickets', |
|
166 | + $max_attendees |
|
167 | + ) |
|
168 | + ); |
|
169 | + } |
|
170 | + |
|
171 | + |
|
172 | + /** |
|
173 | + * Returns whether or not the full ticket selector should be shown or not. |
|
174 | + * Currently, it displays on the frontend (including ajax requests) but not the backend |
|
175 | + * |
|
176 | + * @return bool |
|
177 | + */ |
|
178 | + private function display_full_ui() |
|
179 | + { |
|
180 | + if ($this->display_full_ui === null) { |
|
181 | + $this->display_full_ui = ! is_admin() || (defined('DOING_AJAX') && DOING_AJAX); |
|
182 | + } |
|
183 | + return $this->display_full_ui; |
|
184 | + } |
|
185 | + |
|
186 | + |
|
187 | + /** |
|
188 | + * creates buttons for selecting number of attendees for an event |
|
189 | + * |
|
190 | + * @param WP_Post|int $event |
|
191 | + * @param bool $view_details |
|
192 | + * @return string |
|
193 | + * @throws EE_Error |
|
194 | + * @throws InvalidArgumentException |
|
195 | + * @throws InvalidDataTypeException |
|
196 | + * @throws InvalidInterfaceException |
|
197 | + */ |
|
198 | + public function display($event = null, $view_details = false) |
|
199 | + { |
|
200 | + // reset filter for displaying submit button |
|
201 | + remove_filter('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', '__return_true'); |
|
202 | + // poke and prod incoming event till it tells us what it is |
|
203 | + if (! $this->setEvent($event)) { |
|
204 | + return false; |
|
205 | + } |
|
206 | + // begin gathering template arguments by getting event status |
|
207 | + $template_args = array('event_status' => $this->event->get_active_status()); |
|
208 | + if ($this->activeEventAndShowTicketSelector( |
|
209 | + $event, |
|
210 | + $template_args['event_status'], |
|
211 | + $view_details |
|
212 | + )) { |
|
213 | + return ! is_single() ? $this->displayViewDetailsButton() : ''; |
|
214 | + } |
|
215 | + // filter the maximum qty that can appear in the Ticket Selector qty dropdowns |
|
216 | + $this->setMaxAttendees($this->event->additional_limit()); |
|
217 | + if ($this->getMaxAttendees() < 1) { |
|
218 | + return $this->ticketSalesClosedMessage(); |
|
219 | + } |
|
220 | + // is the event expired ? |
|
221 | + $template_args['event_is_expired'] = $this->event->is_expired(); |
|
222 | + if ($template_args['event_is_expired']) { |
|
223 | + return $this->expiredEventMessage(); |
|
224 | + } |
|
225 | + // get all tickets for this event ordered by the datetime |
|
226 | + $tickets = $this->getTickets(); |
|
227 | + if (count($tickets) < 1) { |
|
228 | + return $this->noTicketAvailableMessage(); |
|
229 | + } |
|
230 | + // redirecting to another site for registration ?? |
|
231 | + $external_url = (string) $this->event->external_url(); |
|
232 | + // if redirecting to another site for registration, then we don't load the TS |
|
233 | + $ticket_selector = $external_url |
|
234 | + ? $this->externalEventRegistration() |
|
235 | + : $this->loadTicketSelector($tickets, $template_args); |
|
236 | + // now set up the form (but not for the admin) |
|
237 | + $ticket_selector = $this->display_full_ui() |
|
238 | + ? $this->formOpen($this->event->ID(), $external_url) . $ticket_selector |
|
239 | + : $ticket_selector; |
|
240 | + // submit button and form close tag |
|
241 | + $ticket_selector .= $this->display_full_ui() ? $this->displaySubmitButton($external_url) : ''; |
|
242 | + return $ticket_selector; |
|
243 | + } |
|
244 | + |
|
245 | + |
|
246 | + /** |
|
247 | + * displayTicketSelector |
|
248 | + * examines the event properties and determines whether a Ticket Selector should be displayed |
|
249 | + * |
|
250 | + * @param WP_Post|int $event |
|
251 | + * @param string $_event_active_status |
|
252 | + * @param bool $view_details |
|
253 | + * @return bool |
|
254 | + * @throws EE_Error |
|
255 | + */ |
|
256 | + protected function activeEventAndShowTicketSelector($event, $_event_active_status, $view_details) |
|
257 | + { |
|
258 | + $event_post = $this->event instanceof EE_Event ? $this->event->ID() : $event; |
|
259 | + return $this->display_full_ui() |
|
260 | + && ( |
|
261 | + ! $this->event->display_ticket_selector() |
|
262 | + || $view_details |
|
263 | + || post_password_required($event_post) |
|
264 | + || ( |
|
265 | + $_event_active_status !== EE_Datetime::active |
|
266 | + && $_event_active_status !== EE_Datetime::upcoming |
|
267 | + && $_event_active_status !== EE_Datetime::sold_out |
|
268 | + && ! ( |
|
269 | + $_event_active_status === EE_Datetime::inactive |
|
270 | + && is_user_logged_in() |
|
271 | + ) |
|
272 | + ) |
|
273 | + ); |
|
274 | + } |
|
275 | + |
|
276 | + |
|
277 | + /** |
|
278 | + * noTicketAvailableMessage |
|
279 | + * notice displayed if event is expired |
|
280 | + * |
|
281 | + * @return string |
|
282 | + * @throws EE_Error |
|
283 | + */ |
|
284 | + protected function expiredEventMessage() |
|
285 | + { |
|
286 | + return '<div class="ee-event-expired-notice"><span class="important-notice">' . esc_html__( |
|
287 | + 'We\'re sorry, but all tickets sales have ended because the event is expired.', |
|
288 | + 'event_espresso' |
|
289 | + ) . '</span></div><!-- .ee-event-expired-notice -->'; |
|
290 | + } |
|
291 | + |
|
292 | + |
|
293 | + /** |
|
294 | + * noTicketAvailableMessage |
|
295 | + * notice displayed if event has no more tickets available |
|
296 | + * |
|
297 | + * @return string |
|
298 | + * @throws EE_Error |
|
299 | + */ |
|
300 | + protected function noTicketAvailableMessage() |
|
301 | + { |
|
302 | + $no_ticket_available_msg = esc_html__('We\'re sorry, but all ticket sales have ended.', 'event_espresso'); |
|
303 | + if (current_user_can('edit_post', $this->event->ID())) { |
|
304 | + $no_ticket_available_msg .= sprintf( |
|
305 | + esc_html__( |
|
306 | + '%1$sNote to Event Admin:%2$sNo tickets were found for this event. This effectively turns off ticket sales. Please ensure that at least one ticket is available for if you want people to be able to register.%3$s(click to edit this event)%4$s', |
|
307 | + 'event_espresso' |
|
308 | + ), |
|
309 | + '<div class="ee-attention" style="text-align: left;"><b>', |
|
310 | + '</b><br />', |
|
311 | + '<span class="edit-link"><a class="post-edit-link" href="' |
|
312 | + . get_edit_post_link($this->event->ID()) |
|
313 | + . '">', |
|
314 | + '</a></span></div><!-- .ee-attention noTicketAvailableMessage -->' |
|
315 | + ); |
|
316 | + } |
|
317 | + return ' |
|
318 | 318 | <div class="ee-event-expired-notice"> |
319 | 319 | <span class="important-notice">' . $no_ticket_available_msg . '</span> |
320 | 320 | </div><!-- .ee-event-expired-notice -->'; |
321 | - } |
|
322 | - |
|
323 | - |
|
324 | - /** |
|
325 | - * ticketSalesClosed |
|
326 | - * notice displayed if event ticket sales are turned off |
|
327 | - * |
|
328 | - * @return string |
|
329 | - * @throws EE_Error |
|
330 | - */ |
|
331 | - protected function ticketSalesClosedMessage() |
|
332 | - { |
|
333 | - $sales_closed_msg = esc_html__( |
|
334 | - 'We\'re sorry, but ticket sales have been closed at this time. Please check back again later.', |
|
335 | - 'event_espresso' |
|
336 | - ); |
|
337 | - if (current_user_can('edit_post', $this->event->ID())) { |
|
338 | - $sales_closed_msg .= sprintf( |
|
339 | - esc_html__( |
|
340 | - '%sNote to Event Admin:%sThe "Maximum number of tickets allowed per order for this event" in the Event Registration Options has been set to "0". This effectively turns off ticket sales. %s(click to edit this event)%s', |
|
341 | - 'event_espresso' |
|
342 | - ), |
|
343 | - '<div class="ee-attention" style="text-align: left;"><b>', |
|
344 | - '</b><br />', |
|
345 | - '<span class="edit-link"><a class="post-edit-link" href="' |
|
346 | - . get_edit_post_link($this->event->ID()) |
|
347 | - . '">', |
|
348 | - '</a></span></div><!-- .ee-attention ticketSalesClosedMessage -->' |
|
349 | - ); |
|
350 | - } |
|
351 | - return '<p><span class="important-notice">' . $sales_closed_msg . '</span></p>'; |
|
352 | - } |
|
353 | - |
|
354 | - |
|
355 | - /** |
|
356 | - * getTickets |
|
357 | - * |
|
358 | - * @return \EE_Base_Class[]|\EE_Ticket[] |
|
359 | - * @throws EE_Error |
|
360 | - * @throws InvalidDataTypeException |
|
361 | - * @throws InvalidInterfaceException |
|
362 | - * @throws InvalidArgumentException |
|
363 | - */ |
|
364 | - protected function getTickets() |
|
365 | - { |
|
366 | - $ticket_query_args = array( |
|
367 | - array('Datetime.EVT_ID' => $this->event->ID()), |
|
368 | - 'order_by' => array( |
|
369 | - 'TKT_order' => 'ASC', |
|
370 | - 'TKT_required' => 'DESC', |
|
371 | - 'TKT_start_date' => 'ASC', |
|
372 | - 'TKT_end_date' => 'ASC', |
|
373 | - 'Datetime.DTT_EVT_start' => 'DESC', |
|
374 | - ), |
|
375 | - ); |
|
376 | - if (! ( |
|
377 | - EE_Registry::instance()->CFG->template_settings->EED_Ticket_Selector instanceof EE_Ticket_Selector_Config |
|
378 | - && EE_Registry::instance()->CFG->template_settings->EED_Ticket_Selector->show_expired_tickets |
|
379 | - )) { |
|
380 | - // use the correct applicable time query depending on what version of core is being run. |
|
381 | - $current_time = method_exists('EEM_Datetime', 'current_time_for_query') |
|
382 | - ? time() |
|
383 | - : current_time('timestamp'); |
|
384 | - $ticket_query_args[0]['TKT_end_date'] = array('>', $current_time); |
|
385 | - } |
|
386 | - return EEM_Ticket::instance()->get_all($ticket_query_args); |
|
387 | - } |
|
388 | - |
|
389 | - |
|
390 | - /** |
|
391 | - * loadTicketSelector |
|
392 | - * begins to assemble template arguments |
|
393 | - * and decides whether to load a "simple" ticket selector, or the standard |
|
394 | - * |
|
395 | - * @param \EE_Ticket[] $tickets |
|
396 | - * @param array $template_args |
|
397 | - * @return string |
|
398 | - * @throws EE_Error |
|
399 | - */ |
|
400 | - protected function loadTicketSelector(array $tickets, array $template_args) |
|
401 | - { |
|
402 | - $template_args['event'] = $this->event; |
|
403 | - $template_args['EVT_ID'] = $this->event->ID(); |
|
404 | - $template_args['event_is_expired'] = $this->event->is_expired(); |
|
405 | - $template_args['max_atndz'] = $this->getMaxAttendees(); |
|
406 | - $template_args['date_format'] = $this->date_format; |
|
407 | - $template_args['time_format'] = $this->time_format; |
|
408 | - /** |
|
409 | - * Filters the anchor ID used when redirecting to the Ticket Selector if no quantity selected |
|
410 | - * |
|
411 | - * @since 4.9.13 |
|
412 | - * @param string '#tkt-slctr-tbl-' . $EVT_ID The html ID to anchor to |
|
413 | - * @param int $EVT_ID The Event ID |
|
414 | - */ |
|
415 | - $template_args['anchor_id'] = apply_filters( |
|
416 | - 'FHEE__EE_Ticket_Selector__redirect_anchor_id', |
|
417 | - '#tkt-slctr-tbl-' . $this->event->ID(), |
|
418 | - $this->event->ID() |
|
419 | - ); |
|
420 | - $template_args['tickets'] = $tickets; |
|
421 | - $template_args['ticket_count'] = count($tickets); |
|
422 | - $ticket_selector = $this->simpleTicketSelector($tickets, $template_args); |
|
423 | - return $ticket_selector instanceof TicketSelectorSimple |
|
424 | - ? $ticket_selector |
|
425 | - : new TicketSelectorStandard( |
|
426 | - $this->event, |
|
427 | - $tickets, |
|
428 | - $this->getMaxAttendees(), |
|
429 | - $template_args, |
|
430 | - $this->date_format, |
|
431 | - $this->time_format |
|
432 | - ); |
|
433 | - } |
|
434 | - |
|
435 | - |
|
436 | - /** |
|
437 | - * simpleTicketSelector |
|
438 | - * there's one ticket, and max attendees is set to one, |
|
439 | - * so if the event is free, then this is a "simple" ticket selector |
|
440 | - * a.k.a. "Dude Where's my Ticket Selector?" |
|
441 | - * |
|
442 | - * @param \EE_Ticket[] $tickets |
|
443 | - * @param array $template_args |
|
444 | - * @return string |
|
445 | - * @throws EE_Error |
|
446 | - */ |
|
447 | - protected function simpleTicketSelector($tickets, array $template_args) |
|
448 | - { |
|
449 | - // if there is only ONE ticket with a max qty of ONE |
|
450 | - if (count($tickets) > 1 || $this->getMaxAttendees() !== 1) { |
|
451 | - return ''; |
|
452 | - } |
|
453 | - /** @var \EE_Ticket $ticket */ |
|
454 | - $ticket = reset($tickets); |
|
455 | - // if the ticket is free... then not much need for the ticket selector |
|
456 | - if (apply_filters( |
|
457 | - 'FHEE__ticket_selector_chart_template__hide_ticket_selector', |
|
458 | - $ticket->is_free(), |
|
459 | - $this->event->ID() |
|
460 | - )) { |
|
461 | - return new TicketSelectorSimple( |
|
462 | - $this->event, |
|
463 | - $ticket, |
|
464 | - $this->getMaxAttendees(), |
|
465 | - $template_args |
|
466 | - ); |
|
467 | - } |
|
468 | - return ''; |
|
469 | - } |
|
470 | - |
|
471 | - |
|
472 | - /** |
|
473 | - * externalEventRegistration |
|
474 | - * |
|
475 | - * @return string |
|
476 | - */ |
|
477 | - public function externalEventRegistration() |
|
478 | - { |
|
479 | - // if not we still need to trigger the display of the submit button |
|
480 | - add_filter('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', '__return_true'); |
|
481 | - // display notice to admin that registration is external |
|
482 | - return $this->display_full_ui() |
|
483 | - ? esc_html__( |
|
484 | - 'Registration is at an external URL for this event.', |
|
485 | - 'event_espresso' |
|
486 | - ) |
|
487 | - : ''; |
|
488 | - } |
|
489 | - |
|
490 | - |
|
491 | - /** |
|
492 | - * formOpen |
|
493 | - * |
|
494 | - * @param int $ID |
|
495 | - * @param string $external_url |
|
496 | - * @return string |
|
497 | - */ |
|
498 | - public function formOpen($ID = 0, $external_url = '') |
|
499 | - { |
|
500 | - // if redirecting, we don't need any anything else |
|
501 | - if ($external_url) { |
|
502 | - $html = '<form method="GET" '; |
|
503 | - $html .= 'action="' . EEH_URL::refactor_url($external_url) . '" '; |
|
504 | - $html .= 'name="ticket-selector-form-' . $ID . '"'; |
|
505 | - // open link in new window ? |
|
506 | - $html .= apply_filters( |
|
507 | - 'FHEE__EventEspresso_modules_ticket_selector_DisplayTicketSelector__formOpen__external_url_target_blank', |
|
508 | - $this->isIframe(), |
|
509 | - $this |
|
510 | - ) |
|
511 | - ? ' target="_blank"' |
|
512 | - : ''; |
|
513 | - $html .= '>'; |
|
514 | - $query_args = EEH_URL::get_query_string($external_url); |
|
515 | - foreach ((array) $query_args as $query_arg => $value) { |
|
516 | - $html .= '<input type="hidden" name="' . $query_arg . '" value="' . $value . '">'; |
|
517 | - } |
|
518 | - return $html; |
|
519 | - } |
|
520 | - // if there is no submit button, then don't start building a form |
|
521 | - // because the "View Details" button will build its own form |
|
522 | - if (! apply_filters('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', false)) { |
|
523 | - return ''; |
|
524 | - } |
|
525 | - $checkout_url = EEH_Event_View::event_link_url($ID); |
|
526 | - if (! $checkout_url) { |
|
527 | - EE_Error::add_error( |
|
528 | - esc_html__('The URL for the Event Details page could not be retrieved.', 'event_espresso'), |
|
529 | - __FILE__, |
|
530 | - __FUNCTION__, |
|
531 | - __LINE__ |
|
532 | - ); |
|
533 | - } |
|
534 | - // set no cache headers and constants |
|
535 | - EE_System::do_not_cache(); |
|
536 | - $html = '<form method="POST" '; |
|
537 | - $html .= 'action="' . $checkout_url . '" '; |
|
538 | - $html .= 'name="ticket-selector-form-' . $ID . '"'; |
|
539 | - $html .= $this->iframe ? ' target="_blank"' : ''; |
|
540 | - $html .= '>'; |
|
541 | - $html .= '<input type="hidden" name="ee" value="process_ticket_selections">'; |
|
542 | - $html = apply_filters('FHEE__EE_Ticket_Selector__ticket_selector_form_open__html', $html, $this->event); |
|
543 | - return $html; |
|
544 | - } |
|
545 | - |
|
546 | - |
|
547 | - /** |
|
548 | - * displaySubmitButton |
|
549 | - * |
|
550 | - * @param string $external_url |
|
551 | - * @return string |
|
552 | - * @throws EE_Error |
|
553 | - */ |
|
554 | - public function displaySubmitButton($external_url = '') |
|
555 | - { |
|
556 | - $html = ''; |
|
557 | - if ($this->display_full_ui()) { |
|
558 | - // standard TS displayed with submit button, ie: "Register Now" |
|
559 | - if (apply_filters('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', false)) { |
|
560 | - $html .= $this->displayRegisterNowButton(); |
|
561 | - $html .= empty($external_url) |
|
562 | - ? $this->ticketSelectorEndDiv() |
|
563 | - : $this->clearTicketSelector(); |
|
564 | - $html .= '<br/>' . $this->formClose(); |
|
565 | - } elseif ($this->getMaxAttendees() === 1) { |
|
566 | - // its a "Dude Where's my Ticket Selector?" (DWMTS) type event (ie: $_max_atndz === 1) |
|
567 | - if ($this->event->is_sold_out()) { |
|
568 | - // then instead of a View Details or Submit button, just display a "Sold Out" message |
|
569 | - $html .= apply_filters( |
|
570 | - 'FHEE__EE_Ticket_Selector__display_ticket_selector_submit__sold_out_msg', |
|
571 | - sprintf( |
|
572 | - __( |
|
573 | - '%1$s"%2$s" is currently sold out.%4$sPlease check back again later, as spots may become available.%3$s', |
|
574 | - 'event_espresso' |
|
575 | - ), |
|
576 | - '<p class="no-ticket-selector-msg clear-float">', |
|
577 | - $this->event->name(), |
|
578 | - '</p>', |
|
579 | - '<br />' |
|
580 | - ), |
|
581 | - $this->event |
|
582 | - ); |
|
583 | - if (apply_filters( |
|
584 | - 'FHEE__EE_Ticket_Selector__display_ticket_selector_submit__no_tickets_but_display_register_now_button', |
|
585 | - false, |
|
586 | - $this->event |
|
587 | - )) { |
|
588 | - $html .= $this->displayRegisterNowButton(); |
|
589 | - } |
|
590 | - // sold out DWMTS event, no TS, no submit or view details button, but has additional content |
|
591 | - $html .= $this->ticketSelectorEndDiv(); |
|
592 | - } elseif (apply_filters('FHEE__EE_Ticket_Selector__hide_ticket_selector', false) |
|
593 | - && ! is_single() |
|
594 | - ) { |
|
595 | - // this is a "Dude Where's my Ticket Selector?" (DWMTS) type event, |
|
596 | - // but no tickets are available, so display event's "View Details" button. |
|
597 | - // it is being viewed via somewhere other than a single post |
|
598 | - $html .= $this->displayViewDetailsButton(true); |
|
599 | - } else { |
|
600 | - $html .= $this->ticketSelectorEndDiv(); |
|
601 | - } |
|
602 | - } elseif (is_archive()) { |
|
603 | - // event list, no tickets available so display event's "View Details" button |
|
604 | - $html .= $this->ticketSelectorEndDiv(); |
|
605 | - $html .= $this->displayViewDetailsButton(); |
|
606 | - } else { |
|
607 | - if (apply_filters( |
|
608 | - 'FHEE__EE_Ticket_Selector__display_ticket_selector_submit__no_tickets_but_display_register_now_button', |
|
609 | - false, |
|
610 | - $this->event |
|
611 | - )) { |
|
612 | - $html .= $this->displayRegisterNowButton(); |
|
613 | - } |
|
614 | - // no submit or view details button, and no additional content |
|
615 | - $html .= $this->ticketSelectorEndDiv(); |
|
616 | - } |
|
617 | - if (! $this->iframe && ! is_archive()) { |
|
618 | - $html .= EEH_Template::powered_by_event_espresso('', '', array('utm_content' => 'ticket_selector')); |
|
619 | - } |
|
620 | - } |
|
621 | - return apply_filters( |
|
622 | - 'FHEE__EventEspresso_modules_ticket_selector_DisplayTicketSelector__displaySubmitButton__html', |
|
623 | - $html, |
|
624 | - $this->event, |
|
625 | - $this |
|
626 | - ); |
|
627 | - } |
|
628 | - |
|
629 | - |
|
630 | - /** |
|
631 | - * @return string |
|
632 | - * @throws EE_Error |
|
633 | - */ |
|
634 | - public function displayRegisterNowButton() |
|
635 | - { |
|
636 | - $btn_text = apply_filters( |
|
637 | - 'FHEE__EE_Ticket_Selector__display_ticket_selector_submit__btn_text', |
|
638 | - __('Register Now', 'event_espresso'), |
|
639 | - $this->event |
|
640 | - ); |
|
641 | - $external_url = $this->event->external_url(); |
|
642 | - $html = EEH_HTML::div( |
|
643 | - '', |
|
644 | - 'ticket-selector-submit-' . $this->event->ID() . '-btn-wrap', |
|
645 | - 'ticket-selector-submit-btn-wrap' |
|
646 | - ); |
|
647 | - $html .= '<input id="ticket-selector-submit-' . $this->event->ID() . '-btn"'; |
|
648 | - $html .= ' class="ticket-selector-submit-btn '; |
|
649 | - $html .= empty($external_url) ? 'ticket-selector-submit-ajax"' : '"'; |
|
650 | - $html .= ' type="submit" value="' . $btn_text . '" />'; |
|
651 | - $html .= EEH_HTML::divx() . '<!-- .ticket-selector-submit-btn-wrap -->'; |
|
652 | - $html .= apply_filters( |
|
653 | - 'FHEE__EE_Ticket_Selector__after_ticket_selector_submit', |
|
654 | - '', |
|
655 | - $this->event, |
|
656 | - $this->iframe |
|
657 | - ); |
|
658 | - return $html; |
|
659 | - } |
|
660 | - |
|
661 | - |
|
662 | - /** |
|
663 | - * displayViewDetailsButton |
|
664 | - * |
|
665 | - * @param bool $DWMTS indicates a "Dude Where's my Ticket Selector?" (DWMTS) type event |
|
666 | - * (ie: $_max_atndz === 1) where there are no available tickets, |
|
667 | - * either because they are sold out, expired, or not yet on sale. |
|
668 | - * In this case, we need to close the form BEFORE adding any closing divs |
|
669 | - * @return string |
|
670 | - * @throws EE_Error |
|
671 | - */ |
|
672 | - public function displayViewDetailsButton($DWMTS = false) |
|
673 | - { |
|
674 | - if (! $this->event->get_permalink()) { |
|
675 | - EE_Error::add_error( |
|
676 | - esc_html__('The URL for the Event Details page could not be retrieved.', 'event_espresso'), |
|
677 | - __FILE__, |
|
678 | - __FUNCTION__, |
|
679 | - __LINE__ |
|
680 | - ); |
|
681 | - } |
|
682 | - $view_details_btn = '<form method="POST" action="'; |
|
683 | - $view_details_btn .= apply_filters( |
|
684 | - 'FHEE__EE_Ticket_Selector__display_view_details_btn__btn_url', |
|
685 | - $this->event->get_permalink(), |
|
686 | - $this->event |
|
687 | - ); |
|
688 | - $view_details_btn .= '"'; |
|
689 | - // open link in new window ? |
|
690 | - $view_details_btn .= apply_filters( |
|
691 | - 'FHEE__EventEspresso_modules_ticket_selector_DisplayTicketSelector__displayViewDetailsButton__url_target_blank', |
|
692 | - $this->isIframe(), |
|
693 | - $this |
|
694 | - ) |
|
695 | - ? ' target="_blank"' |
|
696 | - : ''; |
|
697 | - $view_details_btn .= '>'; |
|
698 | - $btn_text = apply_filters( |
|
699 | - 'FHEE__EE_Ticket_Selector__display_view_details_btn__btn_text', |
|
700 | - esc_html__('View Details', 'event_espresso'), |
|
701 | - $this->event |
|
702 | - ); |
|
703 | - $view_details_btn .= '<input id="ticket-selector-submit-' |
|
704 | - . $this->event->ID() |
|
705 | - . '-btn" class="ticket-selector-submit-btn view-details-btn" type="submit" value="' |
|
706 | - . $btn_text |
|
707 | - . '" />'; |
|
708 | - $view_details_btn .= apply_filters('FHEE__EE_Ticket_Selector__after_view_details_btn', '', $this->event); |
|
709 | - if ($DWMTS) { |
|
710 | - $view_details_btn .= $this->formClose(); |
|
711 | - $view_details_btn .= $this->ticketSelectorEndDiv(); |
|
712 | - $view_details_btn .= '<br/>'; |
|
713 | - } else { |
|
714 | - $view_details_btn .= $this->clearTicketSelector(); |
|
715 | - $view_details_btn .= '<br/>'; |
|
716 | - $view_details_btn .= $this->formClose(); |
|
717 | - } |
|
718 | - return $view_details_btn; |
|
719 | - } |
|
720 | - |
|
721 | - |
|
722 | - /** |
|
723 | - * @return string |
|
724 | - */ |
|
725 | - public function ticketSelectorEndDiv() |
|
726 | - { |
|
727 | - return $this->clearTicketSelector() . '</div><!-- ticketSelectorEndDiv -->'; |
|
728 | - } |
|
729 | - |
|
730 | - |
|
731 | - /** |
|
732 | - * @return string |
|
733 | - */ |
|
734 | - public function clearTicketSelector() |
|
735 | - { |
|
736 | - // standard TS displayed, appears after a "Register Now" or "view Details" button |
|
737 | - return '<div class="clear"></div><!-- clearTicketSelector -->'; |
|
738 | - } |
|
739 | - |
|
740 | - |
|
741 | - /** |
|
742 | - * @access public |
|
743 | - * @return string |
|
744 | - */ |
|
745 | - public function formClose() |
|
746 | - { |
|
747 | - return '</form>'; |
|
748 | - } |
|
321 | + } |
|
322 | + |
|
323 | + |
|
324 | + /** |
|
325 | + * ticketSalesClosed |
|
326 | + * notice displayed if event ticket sales are turned off |
|
327 | + * |
|
328 | + * @return string |
|
329 | + * @throws EE_Error |
|
330 | + */ |
|
331 | + protected function ticketSalesClosedMessage() |
|
332 | + { |
|
333 | + $sales_closed_msg = esc_html__( |
|
334 | + 'We\'re sorry, but ticket sales have been closed at this time. Please check back again later.', |
|
335 | + 'event_espresso' |
|
336 | + ); |
|
337 | + if (current_user_can('edit_post', $this->event->ID())) { |
|
338 | + $sales_closed_msg .= sprintf( |
|
339 | + esc_html__( |
|
340 | + '%sNote to Event Admin:%sThe "Maximum number of tickets allowed per order for this event" in the Event Registration Options has been set to "0". This effectively turns off ticket sales. %s(click to edit this event)%s', |
|
341 | + 'event_espresso' |
|
342 | + ), |
|
343 | + '<div class="ee-attention" style="text-align: left;"><b>', |
|
344 | + '</b><br />', |
|
345 | + '<span class="edit-link"><a class="post-edit-link" href="' |
|
346 | + . get_edit_post_link($this->event->ID()) |
|
347 | + . '">', |
|
348 | + '</a></span></div><!-- .ee-attention ticketSalesClosedMessage -->' |
|
349 | + ); |
|
350 | + } |
|
351 | + return '<p><span class="important-notice">' . $sales_closed_msg . '</span></p>'; |
|
352 | + } |
|
353 | + |
|
354 | + |
|
355 | + /** |
|
356 | + * getTickets |
|
357 | + * |
|
358 | + * @return \EE_Base_Class[]|\EE_Ticket[] |
|
359 | + * @throws EE_Error |
|
360 | + * @throws InvalidDataTypeException |
|
361 | + * @throws InvalidInterfaceException |
|
362 | + * @throws InvalidArgumentException |
|
363 | + */ |
|
364 | + protected function getTickets() |
|
365 | + { |
|
366 | + $ticket_query_args = array( |
|
367 | + array('Datetime.EVT_ID' => $this->event->ID()), |
|
368 | + 'order_by' => array( |
|
369 | + 'TKT_order' => 'ASC', |
|
370 | + 'TKT_required' => 'DESC', |
|
371 | + 'TKT_start_date' => 'ASC', |
|
372 | + 'TKT_end_date' => 'ASC', |
|
373 | + 'Datetime.DTT_EVT_start' => 'DESC', |
|
374 | + ), |
|
375 | + ); |
|
376 | + if (! ( |
|
377 | + EE_Registry::instance()->CFG->template_settings->EED_Ticket_Selector instanceof EE_Ticket_Selector_Config |
|
378 | + && EE_Registry::instance()->CFG->template_settings->EED_Ticket_Selector->show_expired_tickets |
|
379 | + )) { |
|
380 | + // use the correct applicable time query depending on what version of core is being run. |
|
381 | + $current_time = method_exists('EEM_Datetime', 'current_time_for_query') |
|
382 | + ? time() |
|
383 | + : current_time('timestamp'); |
|
384 | + $ticket_query_args[0]['TKT_end_date'] = array('>', $current_time); |
|
385 | + } |
|
386 | + return EEM_Ticket::instance()->get_all($ticket_query_args); |
|
387 | + } |
|
388 | + |
|
389 | + |
|
390 | + /** |
|
391 | + * loadTicketSelector |
|
392 | + * begins to assemble template arguments |
|
393 | + * and decides whether to load a "simple" ticket selector, or the standard |
|
394 | + * |
|
395 | + * @param \EE_Ticket[] $tickets |
|
396 | + * @param array $template_args |
|
397 | + * @return string |
|
398 | + * @throws EE_Error |
|
399 | + */ |
|
400 | + protected function loadTicketSelector(array $tickets, array $template_args) |
|
401 | + { |
|
402 | + $template_args['event'] = $this->event; |
|
403 | + $template_args['EVT_ID'] = $this->event->ID(); |
|
404 | + $template_args['event_is_expired'] = $this->event->is_expired(); |
|
405 | + $template_args['max_atndz'] = $this->getMaxAttendees(); |
|
406 | + $template_args['date_format'] = $this->date_format; |
|
407 | + $template_args['time_format'] = $this->time_format; |
|
408 | + /** |
|
409 | + * Filters the anchor ID used when redirecting to the Ticket Selector if no quantity selected |
|
410 | + * |
|
411 | + * @since 4.9.13 |
|
412 | + * @param string '#tkt-slctr-tbl-' . $EVT_ID The html ID to anchor to |
|
413 | + * @param int $EVT_ID The Event ID |
|
414 | + */ |
|
415 | + $template_args['anchor_id'] = apply_filters( |
|
416 | + 'FHEE__EE_Ticket_Selector__redirect_anchor_id', |
|
417 | + '#tkt-slctr-tbl-' . $this->event->ID(), |
|
418 | + $this->event->ID() |
|
419 | + ); |
|
420 | + $template_args['tickets'] = $tickets; |
|
421 | + $template_args['ticket_count'] = count($tickets); |
|
422 | + $ticket_selector = $this->simpleTicketSelector($tickets, $template_args); |
|
423 | + return $ticket_selector instanceof TicketSelectorSimple |
|
424 | + ? $ticket_selector |
|
425 | + : new TicketSelectorStandard( |
|
426 | + $this->event, |
|
427 | + $tickets, |
|
428 | + $this->getMaxAttendees(), |
|
429 | + $template_args, |
|
430 | + $this->date_format, |
|
431 | + $this->time_format |
|
432 | + ); |
|
433 | + } |
|
434 | + |
|
435 | + |
|
436 | + /** |
|
437 | + * simpleTicketSelector |
|
438 | + * there's one ticket, and max attendees is set to one, |
|
439 | + * so if the event is free, then this is a "simple" ticket selector |
|
440 | + * a.k.a. "Dude Where's my Ticket Selector?" |
|
441 | + * |
|
442 | + * @param \EE_Ticket[] $tickets |
|
443 | + * @param array $template_args |
|
444 | + * @return string |
|
445 | + * @throws EE_Error |
|
446 | + */ |
|
447 | + protected function simpleTicketSelector($tickets, array $template_args) |
|
448 | + { |
|
449 | + // if there is only ONE ticket with a max qty of ONE |
|
450 | + if (count($tickets) > 1 || $this->getMaxAttendees() !== 1) { |
|
451 | + return ''; |
|
452 | + } |
|
453 | + /** @var \EE_Ticket $ticket */ |
|
454 | + $ticket = reset($tickets); |
|
455 | + // if the ticket is free... then not much need for the ticket selector |
|
456 | + if (apply_filters( |
|
457 | + 'FHEE__ticket_selector_chart_template__hide_ticket_selector', |
|
458 | + $ticket->is_free(), |
|
459 | + $this->event->ID() |
|
460 | + )) { |
|
461 | + return new TicketSelectorSimple( |
|
462 | + $this->event, |
|
463 | + $ticket, |
|
464 | + $this->getMaxAttendees(), |
|
465 | + $template_args |
|
466 | + ); |
|
467 | + } |
|
468 | + return ''; |
|
469 | + } |
|
470 | + |
|
471 | + |
|
472 | + /** |
|
473 | + * externalEventRegistration |
|
474 | + * |
|
475 | + * @return string |
|
476 | + */ |
|
477 | + public function externalEventRegistration() |
|
478 | + { |
|
479 | + // if not we still need to trigger the display of the submit button |
|
480 | + add_filter('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', '__return_true'); |
|
481 | + // display notice to admin that registration is external |
|
482 | + return $this->display_full_ui() |
|
483 | + ? esc_html__( |
|
484 | + 'Registration is at an external URL for this event.', |
|
485 | + 'event_espresso' |
|
486 | + ) |
|
487 | + : ''; |
|
488 | + } |
|
489 | + |
|
490 | + |
|
491 | + /** |
|
492 | + * formOpen |
|
493 | + * |
|
494 | + * @param int $ID |
|
495 | + * @param string $external_url |
|
496 | + * @return string |
|
497 | + */ |
|
498 | + public function formOpen($ID = 0, $external_url = '') |
|
499 | + { |
|
500 | + // if redirecting, we don't need any anything else |
|
501 | + if ($external_url) { |
|
502 | + $html = '<form method="GET" '; |
|
503 | + $html .= 'action="' . EEH_URL::refactor_url($external_url) . '" '; |
|
504 | + $html .= 'name="ticket-selector-form-' . $ID . '"'; |
|
505 | + // open link in new window ? |
|
506 | + $html .= apply_filters( |
|
507 | + 'FHEE__EventEspresso_modules_ticket_selector_DisplayTicketSelector__formOpen__external_url_target_blank', |
|
508 | + $this->isIframe(), |
|
509 | + $this |
|
510 | + ) |
|
511 | + ? ' target="_blank"' |
|
512 | + : ''; |
|
513 | + $html .= '>'; |
|
514 | + $query_args = EEH_URL::get_query_string($external_url); |
|
515 | + foreach ((array) $query_args as $query_arg => $value) { |
|
516 | + $html .= '<input type="hidden" name="' . $query_arg . '" value="' . $value . '">'; |
|
517 | + } |
|
518 | + return $html; |
|
519 | + } |
|
520 | + // if there is no submit button, then don't start building a form |
|
521 | + // because the "View Details" button will build its own form |
|
522 | + if (! apply_filters('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', false)) { |
|
523 | + return ''; |
|
524 | + } |
|
525 | + $checkout_url = EEH_Event_View::event_link_url($ID); |
|
526 | + if (! $checkout_url) { |
|
527 | + EE_Error::add_error( |
|
528 | + esc_html__('The URL for the Event Details page could not be retrieved.', 'event_espresso'), |
|
529 | + __FILE__, |
|
530 | + __FUNCTION__, |
|
531 | + __LINE__ |
|
532 | + ); |
|
533 | + } |
|
534 | + // set no cache headers and constants |
|
535 | + EE_System::do_not_cache(); |
|
536 | + $html = '<form method="POST" '; |
|
537 | + $html .= 'action="' . $checkout_url . '" '; |
|
538 | + $html .= 'name="ticket-selector-form-' . $ID . '"'; |
|
539 | + $html .= $this->iframe ? ' target="_blank"' : ''; |
|
540 | + $html .= '>'; |
|
541 | + $html .= '<input type="hidden" name="ee" value="process_ticket_selections">'; |
|
542 | + $html = apply_filters('FHEE__EE_Ticket_Selector__ticket_selector_form_open__html', $html, $this->event); |
|
543 | + return $html; |
|
544 | + } |
|
545 | + |
|
546 | + |
|
547 | + /** |
|
548 | + * displaySubmitButton |
|
549 | + * |
|
550 | + * @param string $external_url |
|
551 | + * @return string |
|
552 | + * @throws EE_Error |
|
553 | + */ |
|
554 | + public function displaySubmitButton($external_url = '') |
|
555 | + { |
|
556 | + $html = ''; |
|
557 | + if ($this->display_full_ui()) { |
|
558 | + // standard TS displayed with submit button, ie: "Register Now" |
|
559 | + if (apply_filters('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', false)) { |
|
560 | + $html .= $this->displayRegisterNowButton(); |
|
561 | + $html .= empty($external_url) |
|
562 | + ? $this->ticketSelectorEndDiv() |
|
563 | + : $this->clearTicketSelector(); |
|
564 | + $html .= '<br/>' . $this->formClose(); |
|
565 | + } elseif ($this->getMaxAttendees() === 1) { |
|
566 | + // its a "Dude Where's my Ticket Selector?" (DWMTS) type event (ie: $_max_atndz === 1) |
|
567 | + if ($this->event->is_sold_out()) { |
|
568 | + // then instead of a View Details or Submit button, just display a "Sold Out" message |
|
569 | + $html .= apply_filters( |
|
570 | + 'FHEE__EE_Ticket_Selector__display_ticket_selector_submit__sold_out_msg', |
|
571 | + sprintf( |
|
572 | + __( |
|
573 | + '%1$s"%2$s" is currently sold out.%4$sPlease check back again later, as spots may become available.%3$s', |
|
574 | + 'event_espresso' |
|
575 | + ), |
|
576 | + '<p class="no-ticket-selector-msg clear-float">', |
|
577 | + $this->event->name(), |
|
578 | + '</p>', |
|
579 | + '<br />' |
|
580 | + ), |
|
581 | + $this->event |
|
582 | + ); |
|
583 | + if (apply_filters( |
|
584 | + 'FHEE__EE_Ticket_Selector__display_ticket_selector_submit__no_tickets_but_display_register_now_button', |
|
585 | + false, |
|
586 | + $this->event |
|
587 | + )) { |
|
588 | + $html .= $this->displayRegisterNowButton(); |
|
589 | + } |
|
590 | + // sold out DWMTS event, no TS, no submit or view details button, but has additional content |
|
591 | + $html .= $this->ticketSelectorEndDiv(); |
|
592 | + } elseif (apply_filters('FHEE__EE_Ticket_Selector__hide_ticket_selector', false) |
|
593 | + && ! is_single() |
|
594 | + ) { |
|
595 | + // this is a "Dude Where's my Ticket Selector?" (DWMTS) type event, |
|
596 | + // but no tickets are available, so display event's "View Details" button. |
|
597 | + // it is being viewed via somewhere other than a single post |
|
598 | + $html .= $this->displayViewDetailsButton(true); |
|
599 | + } else { |
|
600 | + $html .= $this->ticketSelectorEndDiv(); |
|
601 | + } |
|
602 | + } elseif (is_archive()) { |
|
603 | + // event list, no tickets available so display event's "View Details" button |
|
604 | + $html .= $this->ticketSelectorEndDiv(); |
|
605 | + $html .= $this->displayViewDetailsButton(); |
|
606 | + } else { |
|
607 | + if (apply_filters( |
|
608 | + 'FHEE__EE_Ticket_Selector__display_ticket_selector_submit__no_tickets_but_display_register_now_button', |
|
609 | + false, |
|
610 | + $this->event |
|
611 | + )) { |
|
612 | + $html .= $this->displayRegisterNowButton(); |
|
613 | + } |
|
614 | + // no submit or view details button, and no additional content |
|
615 | + $html .= $this->ticketSelectorEndDiv(); |
|
616 | + } |
|
617 | + if (! $this->iframe && ! is_archive()) { |
|
618 | + $html .= EEH_Template::powered_by_event_espresso('', '', array('utm_content' => 'ticket_selector')); |
|
619 | + } |
|
620 | + } |
|
621 | + return apply_filters( |
|
622 | + 'FHEE__EventEspresso_modules_ticket_selector_DisplayTicketSelector__displaySubmitButton__html', |
|
623 | + $html, |
|
624 | + $this->event, |
|
625 | + $this |
|
626 | + ); |
|
627 | + } |
|
628 | + |
|
629 | + |
|
630 | + /** |
|
631 | + * @return string |
|
632 | + * @throws EE_Error |
|
633 | + */ |
|
634 | + public function displayRegisterNowButton() |
|
635 | + { |
|
636 | + $btn_text = apply_filters( |
|
637 | + 'FHEE__EE_Ticket_Selector__display_ticket_selector_submit__btn_text', |
|
638 | + __('Register Now', 'event_espresso'), |
|
639 | + $this->event |
|
640 | + ); |
|
641 | + $external_url = $this->event->external_url(); |
|
642 | + $html = EEH_HTML::div( |
|
643 | + '', |
|
644 | + 'ticket-selector-submit-' . $this->event->ID() . '-btn-wrap', |
|
645 | + 'ticket-selector-submit-btn-wrap' |
|
646 | + ); |
|
647 | + $html .= '<input id="ticket-selector-submit-' . $this->event->ID() . '-btn"'; |
|
648 | + $html .= ' class="ticket-selector-submit-btn '; |
|
649 | + $html .= empty($external_url) ? 'ticket-selector-submit-ajax"' : '"'; |
|
650 | + $html .= ' type="submit" value="' . $btn_text . '" />'; |
|
651 | + $html .= EEH_HTML::divx() . '<!-- .ticket-selector-submit-btn-wrap -->'; |
|
652 | + $html .= apply_filters( |
|
653 | + 'FHEE__EE_Ticket_Selector__after_ticket_selector_submit', |
|
654 | + '', |
|
655 | + $this->event, |
|
656 | + $this->iframe |
|
657 | + ); |
|
658 | + return $html; |
|
659 | + } |
|
660 | + |
|
661 | + |
|
662 | + /** |
|
663 | + * displayViewDetailsButton |
|
664 | + * |
|
665 | + * @param bool $DWMTS indicates a "Dude Where's my Ticket Selector?" (DWMTS) type event |
|
666 | + * (ie: $_max_atndz === 1) where there are no available tickets, |
|
667 | + * either because they are sold out, expired, or not yet on sale. |
|
668 | + * In this case, we need to close the form BEFORE adding any closing divs |
|
669 | + * @return string |
|
670 | + * @throws EE_Error |
|
671 | + */ |
|
672 | + public function displayViewDetailsButton($DWMTS = false) |
|
673 | + { |
|
674 | + if (! $this->event->get_permalink()) { |
|
675 | + EE_Error::add_error( |
|
676 | + esc_html__('The URL for the Event Details page could not be retrieved.', 'event_espresso'), |
|
677 | + __FILE__, |
|
678 | + __FUNCTION__, |
|
679 | + __LINE__ |
|
680 | + ); |
|
681 | + } |
|
682 | + $view_details_btn = '<form method="POST" action="'; |
|
683 | + $view_details_btn .= apply_filters( |
|
684 | + 'FHEE__EE_Ticket_Selector__display_view_details_btn__btn_url', |
|
685 | + $this->event->get_permalink(), |
|
686 | + $this->event |
|
687 | + ); |
|
688 | + $view_details_btn .= '"'; |
|
689 | + // open link in new window ? |
|
690 | + $view_details_btn .= apply_filters( |
|
691 | + 'FHEE__EventEspresso_modules_ticket_selector_DisplayTicketSelector__displayViewDetailsButton__url_target_blank', |
|
692 | + $this->isIframe(), |
|
693 | + $this |
|
694 | + ) |
|
695 | + ? ' target="_blank"' |
|
696 | + : ''; |
|
697 | + $view_details_btn .= '>'; |
|
698 | + $btn_text = apply_filters( |
|
699 | + 'FHEE__EE_Ticket_Selector__display_view_details_btn__btn_text', |
|
700 | + esc_html__('View Details', 'event_espresso'), |
|
701 | + $this->event |
|
702 | + ); |
|
703 | + $view_details_btn .= '<input id="ticket-selector-submit-' |
|
704 | + . $this->event->ID() |
|
705 | + . '-btn" class="ticket-selector-submit-btn view-details-btn" type="submit" value="' |
|
706 | + . $btn_text |
|
707 | + . '" />'; |
|
708 | + $view_details_btn .= apply_filters('FHEE__EE_Ticket_Selector__after_view_details_btn', '', $this->event); |
|
709 | + if ($DWMTS) { |
|
710 | + $view_details_btn .= $this->formClose(); |
|
711 | + $view_details_btn .= $this->ticketSelectorEndDiv(); |
|
712 | + $view_details_btn .= '<br/>'; |
|
713 | + } else { |
|
714 | + $view_details_btn .= $this->clearTicketSelector(); |
|
715 | + $view_details_btn .= '<br/>'; |
|
716 | + $view_details_btn .= $this->formClose(); |
|
717 | + } |
|
718 | + return $view_details_btn; |
|
719 | + } |
|
720 | + |
|
721 | + |
|
722 | + /** |
|
723 | + * @return string |
|
724 | + */ |
|
725 | + public function ticketSelectorEndDiv() |
|
726 | + { |
|
727 | + return $this->clearTicketSelector() . '</div><!-- ticketSelectorEndDiv -->'; |
|
728 | + } |
|
729 | + |
|
730 | + |
|
731 | + /** |
|
732 | + * @return string |
|
733 | + */ |
|
734 | + public function clearTicketSelector() |
|
735 | + { |
|
736 | + // standard TS displayed, appears after a "Register Now" or "view Details" button |
|
737 | + return '<div class="clear"></div><!-- clearTicketSelector -->'; |
|
738 | + } |
|
739 | + |
|
740 | + |
|
741 | + /** |
|
742 | + * @access public |
|
743 | + * @return string |
|
744 | + */ |
|
745 | + public function formClose() |
|
746 | + { |
|
747 | + return '</form>'; |
|
748 | + } |
|
749 | 749 | } |
@@ -135,11 +135,11 @@ discard block |
||
135 | 135 | } |
136 | 136 | } else { |
137 | 137 | $user_msg = __('No Event object or an invalid Event object was supplied.', 'event_espresso'); |
138 | - $dev_msg = $user_msg . __( |
|
138 | + $dev_msg = $user_msg.__( |
|
139 | 139 | 'In order to generate a ticket selector, please ensure you are passing either an EE_Event object or a WP_Post object of the post type "espresso_event" to the EE_Ticket_Selector class constructor.', |
140 | 140 | 'event_espresso' |
141 | 141 | ); |
142 | - EE_Error::add_error($user_msg . '||' . $dev_msg, __FILE__, __FUNCTION__, __LINE__); |
|
142 | + EE_Error::add_error($user_msg.'||'.$dev_msg, __FILE__, __FUNCTION__, __LINE__); |
|
143 | 143 | return false; |
144 | 144 | } |
145 | 145 | return true; |
@@ -200,7 +200,7 @@ discard block |
||
200 | 200 | // reset filter for displaying submit button |
201 | 201 | remove_filter('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', '__return_true'); |
202 | 202 | // poke and prod incoming event till it tells us what it is |
203 | - if (! $this->setEvent($event)) { |
|
203 | + if ( ! $this->setEvent($event)) { |
|
204 | 204 | return false; |
205 | 205 | } |
206 | 206 | // begin gathering template arguments by getting event status |
@@ -235,7 +235,7 @@ discard block |
||
235 | 235 | : $this->loadTicketSelector($tickets, $template_args); |
236 | 236 | // now set up the form (but not for the admin) |
237 | 237 | $ticket_selector = $this->display_full_ui() |
238 | - ? $this->formOpen($this->event->ID(), $external_url) . $ticket_selector |
|
238 | + ? $this->formOpen($this->event->ID(), $external_url).$ticket_selector |
|
239 | 239 | : $ticket_selector; |
240 | 240 | // submit button and form close tag |
241 | 241 | $ticket_selector .= $this->display_full_ui() ? $this->displaySubmitButton($external_url) : ''; |
@@ -283,10 +283,10 @@ discard block |
||
283 | 283 | */ |
284 | 284 | protected function expiredEventMessage() |
285 | 285 | { |
286 | - return '<div class="ee-event-expired-notice"><span class="important-notice">' . esc_html__( |
|
286 | + return '<div class="ee-event-expired-notice"><span class="important-notice">'.esc_html__( |
|
287 | 287 | 'We\'re sorry, but all tickets sales have ended because the event is expired.', |
288 | 288 | 'event_espresso' |
289 | - ) . '</span></div><!-- .ee-event-expired-notice -->'; |
|
289 | + ).'</span></div><!-- .ee-event-expired-notice -->'; |
|
290 | 290 | } |
291 | 291 | |
292 | 292 | |
@@ -316,7 +316,7 @@ discard block |
||
316 | 316 | } |
317 | 317 | return ' |
318 | 318 | <div class="ee-event-expired-notice"> |
319 | - <span class="important-notice">' . $no_ticket_available_msg . '</span> |
|
319 | + <span class="important-notice">' . $no_ticket_available_msg.'</span> |
|
320 | 320 | </div><!-- .ee-event-expired-notice -->'; |
321 | 321 | } |
322 | 322 | |
@@ -348,7 +348,7 @@ discard block |
||
348 | 348 | '</a></span></div><!-- .ee-attention ticketSalesClosedMessage -->' |
349 | 349 | ); |
350 | 350 | } |
351 | - return '<p><span class="important-notice">' . $sales_closed_msg . '</span></p>'; |
|
351 | + return '<p><span class="important-notice">'.$sales_closed_msg.'</span></p>'; |
|
352 | 352 | } |
353 | 353 | |
354 | 354 | |
@@ -373,7 +373,7 @@ discard block |
||
373 | 373 | 'Datetime.DTT_EVT_start' => 'DESC', |
374 | 374 | ), |
375 | 375 | ); |
376 | - if (! ( |
|
376 | + if ( ! ( |
|
377 | 377 | EE_Registry::instance()->CFG->template_settings->EED_Ticket_Selector instanceof EE_Ticket_Selector_Config |
378 | 378 | && EE_Registry::instance()->CFG->template_settings->EED_Ticket_Selector->show_expired_tickets |
379 | 379 | )) { |
@@ -414,7 +414,7 @@ discard block |
||
414 | 414 | */ |
415 | 415 | $template_args['anchor_id'] = apply_filters( |
416 | 416 | 'FHEE__EE_Ticket_Selector__redirect_anchor_id', |
417 | - '#tkt-slctr-tbl-' . $this->event->ID(), |
|
417 | + '#tkt-slctr-tbl-'.$this->event->ID(), |
|
418 | 418 | $this->event->ID() |
419 | 419 | ); |
420 | 420 | $template_args['tickets'] = $tickets; |
@@ -500,8 +500,8 @@ discard block |
||
500 | 500 | // if redirecting, we don't need any anything else |
501 | 501 | if ($external_url) { |
502 | 502 | $html = '<form method="GET" '; |
503 | - $html .= 'action="' . EEH_URL::refactor_url($external_url) . '" '; |
|
504 | - $html .= 'name="ticket-selector-form-' . $ID . '"'; |
|
503 | + $html .= 'action="'.EEH_URL::refactor_url($external_url).'" '; |
|
504 | + $html .= 'name="ticket-selector-form-'.$ID.'"'; |
|
505 | 505 | // open link in new window ? |
506 | 506 | $html .= apply_filters( |
507 | 507 | 'FHEE__EventEspresso_modules_ticket_selector_DisplayTicketSelector__formOpen__external_url_target_blank', |
@@ -513,17 +513,17 @@ discard block |
||
513 | 513 | $html .= '>'; |
514 | 514 | $query_args = EEH_URL::get_query_string($external_url); |
515 | 515 | foreach ((array) $query_args as $query_arg => $value) { |
516 | - $html .= '<input type="hidden" name="' . $query_arg . '" value="' . $value . '">'; |
|
516 | + $html .= '<input type="hidden" name="'.$query_arg.'" value="'.$value.'">'; |
|
517 | 517 | } |
518 | 518 | return $html; |
519 | 519 | } |
520 | 520 | // if there is no submit button, then don't start building a form |
521 | 521 | // because the "View Details" button will build its own form |
522 | - if (! apply_filters('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', false)) { |
|
522 | + if ( ! apply_filters('FHEE__EE_Ticket_Selector__display_ticket_selector_submit', false)) { |
|
523 | 523 | return ''; |
524 | 524 | } |
525 | 525 | $checkout_url = EEH_Event_View::event_link_url($ID); |
526 | - if (! $checkout_url) { |
|
526 | + if ( ! $checkout_url) { |
|
527 | 527 | EE_Error::add_error( |
528 | 528 | esc_html__('The URL for the Event Details page could not be retrieved.', 'event_espresso'), |
529 | 529 | __FILE__, |
@@ -534,8 +534,8 @@ discard block |
||
534 | 534 | // set no cache headers and constants |
535 | 535 | EE_System::do_not_cache(); |
536 | 536 | $html = '<form method="POST" '; |
537 | - $html .= 'action="' . $checkout_url . '" '; |
|
538 | - $html .= 'name="ticket-selector-form-' . $ID . '"'; |
|
537 | + $html .= 'action="'.$checkout_url.'" '; |
|
538 | + $html .= 'name="ticket-selector-form-'.$ID.'"'; |
|
539 | 539 | $html .= $this->iframe ? ' target="_blank"' : ''; |
540 | 540 | $html .= '>'; |
541 | 541 | $html .= '<input type="hidden" name="ee" value="process_ticket_selections">'; |
@@ -561,7 +561,7 @@ discard block |
||
561 | 561 | $html .= empty($external_url) |
562 | 562 | ? $this->ticketSelectorEndDiv() |
563 | 563 | : $this->clearTicketSelector(); |
564 | - $html .= '<br/>' . $this->formClose(); |
|
564 | + $html .= '<br/>'.$this->formClose(); |
|
565 | 565 | } elseif ($this->getMaxAttendees() === 1) { |
566 | 566 | // its a "Dude Where's my Ticket Selector?" (DWMTS) type event (ie: $_max_atndz === 1) |
567 | 567 | if ($this->event->is_sold_out()) { |
@@ -614,7 +614,7 @@ discard block |
||
614 | 614 | // no submit or view details button, and no additional content |
615 | 615 | $html .= $this->ticketSelectorEndDiv(); |
616 | 616 | } |
617 | - if (! $this->iframe && ! is_archive()) { |
|
617 | + if ( ! $this->iframe && ! is_archive()) { |
|
618 | 618 | $html .= EEH_Template::powered_by_event_espresso('', '', array('utm_content' => 'ticket_selector')); |
619 | 619 | } |
620 | 620 | } |
@@ -641,14 +641,14 @@ discard block |
||
641 | 641 | $external_url = $this->event->external_url(); |
642 | 642 | $html = EEH_HTML::div( |
643 | 643 | '', |
644 | - 'ticket-selector-submit-' . $this->event->ID() . '-btn-wrap', |
|
644 | + 'ticket-selector-submit-'.$this->event->ID().'-btn-wrap', |
|
645 | 645 | 'ticket-selector-submit-btn-wrap' |
646 | 646 | ); |
647 | - $html .= '<input id="ticket-selector-submit-' . $this->event->ID() . '-btn"'; |
|
647 | + $html .= '<input id="ticket-selector-submit-'.$this->event->ID().'-btn"'; |
|
648 | 648 | $html .= ' class="ticket-selector-submit-btn '; |
649 | 649 | $html .= empty($external_url) ? 'ticket-selector-submit-ajax"' : '"'; |
650 | - $html .= ' type="submit" value="' . $btn_text . '" />'; |
|
651 | - $html .= EEH_HTML::divx() . '<!-- .ticket-selector-submit-btn-wrap -->'; |
|
650 | + $html .= ' type="submit" value="'.$btn_text.'" />'; |
|
651 | + $html .= EEH_HTML::divx().'<!-- .ticket-selector-submit-btn-wrap -->'; |
|
652 | 652 | $html .= apply_filters( |
653 | 653 | 'FHEE__EE_Ticket_Selector__after_ticket_selector_submit', |
654 | 654 | '', |
@@ -671,7 +671,7 @@ discard block |
||
671 | 671 | */ |
672 | 672 | public function displayViewDetailsButton($DWMTS = false) |
673 | 673 | { |
674 | - if (! $this->event->get_permalink()) { |
|
674 | + if ( ! $this->event->get_permalink()) { |
|
675 | 675 | EE_Error::add_error( |
676 | 676 | esc_html__('The URL for the Event Details page could not be retrieved.', 'event_espresso'), |
677 | 677 | __FILE__, |
@@ -724,7 +724,7 @@ discard block |
||
724 | 724 | */ |
725 | 725 | public function ticketSelectorEndDiv() |
726 | 726 | { |
727 | - return $this->clearTicketSelector() . '</div><!-- ticketSelectorEndDiv -->'; |
|
727 | + return $this->clearTicketSelector().'</div><!-- ticketSelectorEndDiv -->'; |
|
728 | 728 | } |
729 | 729 | |
730 | 730 |
@@ -12,171 +12,171 @@ |
||
12 | 12 | class DatetimeSelector |
13 | 13 | { |
14 | 14 | |
15 | - /** |
|
16 | - * @var \EE_Event $event |
|
17 | - */ |
|
18 | - protected $event; |
|
19 | - |
|
20 | - /** |
|
21 | - * @var \EE_Ticket[] $tickets |
|
22 | - */ |
|
23 | - protected $tickets; |
|
24 | - |
|
25 | - /** |
|
26 | - * @var \EE_Datetime[] $datetimes |
|
27 | - */ |
|
28 | - protected $datetimes; |
|
29 | - |
|
30 | - /** |
|
31 | - * @var \EE_Datetime[] $unique_dates |
|
32 | - */ |
|
33 | - protected $unique_dates; |
|
34 | - |
|
35 | - /** |
|
36 | - * @var \EE_Ticket_Selector_Config $template_settings |
|
37 | - */ |
|
38 | - protected $template_settings; |
|
39 | - |
|
40 | - /** |
|
41 | - * @var boolean $active |
|
42 | - */ |
|
43 | - protected $active = false; |
|
44 | - |
|
45 | - |
|
46 | - /** |
|
47 | - * DatetimeSelector constructor. |
|
48 | - * |
|
49 | - * @param \EE_Event $event |
|
50 | - * @param \EE_Ticket[] $tickets |
|
51 | - * @param \EE_Ticket_Selector_Config $template_settings |
|
52 | - * @param string $date_format |
|
53 | - * @param string $time_format |
|
54 | - * @throws \EE_Error |
|
55 | - */ |
|
56 | - public function __construct( |
|
57 | - \EE_Event $event, |
|
58 | - array $tickets, |
|
59 | - \EE_Ticket_Selector_Config $template_settings, |
|
60 | - $date_format = 'Y-m-d', |
|
61 | - $time_format = 'g:i a' |
|
62 | - ) { |
|
63 | - $this->event = $event; |
|
64 | - $this->tickets = $tickets; |
|
65 | - $this->template_settings = $template_settings; |
|
66 | - $this->datetimes = $this->getAllDatetimesForAllTicket($tickets); |
|
67 | - $this->unique_dates = $this->getUniqueDatetimeOptions($date_format, $time_format); |
|
68 | - $this->active = $this->template_settings->showDatetimeSelector($this->unique_dates); |
|
69 | - } |
|
70 | - |
|
71 | - |
|
72 | - /** |
|
73 | - * @param \EE_Ticket[] $tickets |
|
74 | - * @return array |
|
75 | - * @throws \EE_Error |
|
76 | - */ |
|
77 | - protected function getAllDatetimesForAllTicket($tickets = array()) |
|
78 | - { |
|
79 | - $datetimes = array(); |
|
80 | - foreach ($tickets as $ticket) { |
|
81 | - $datetimes = $this->getTicketDatetimes($ticket, $datetimes); |
|
82 | - } |
|
83 | - return $datetimes; |
|
84 | - } |
|
85 | - |
|
86 | - |
|
87 | - /** |
|
88 | - * @param \EE_Ticket $ticket |
|
89 | - * @param \EE_Datetime[] $datetimes |
|
90 | - * @return \EE_Datetime[] |
|
91 | - * @throws \EE_Error |
|
92 | - */ |
|
93 | - protected function getTicketDatetimes(\EE_Ticket $ticket, $datetimes = array()) |
|
94 | - { |
|
95 | - $ticket_datetimes = $ticket->datetimes( |
|
96 | - array( |
|
97 | - 'order_by' => array( |
|
98 | - 'DTT_order' => 'ASC', |
|
99 | - 'DTT_EVT_start' => 'ASC', |
|
100 | - ), |
|
101 | - 'default_where_conditions' => 'none', |
|
102 | - ) |
|
103 | - ); |
|
104 | - foreach ($ticket_datetimes as $ticket_datetime) { |
|
105 | - if (! $ticket_datetime instanceof \EE_Datetime) { |
|
106 | - continue; |
|
107 | - } |
|
108 | - $datetimes[ $ticket_datetime->ID() ] = $ticket_datetime; |
|
109 | - } |
|
110 | - return $datetimes; |
|
111 | - } |
|
112 | - |
|
113 | - |
|
114 | - /** |
|
115 | - * @param \EE_Ticket $ticket |
|
116 | - * @return string |
|
117 | - * @throws \EE_Error |
|
118 | - */ |
|
119 | - public function getTicketDatetimeClasses(\EE_Ticket $ticket) |
|
120 | - { |
|
121 | - if (! $this->active) { |
|
122 | - return ''; |
|
123 | - } |
|
124 | - $ticket_datetimes = $this->getTicketDatetimes($ticket); |
|
125 | - $classes = ''; |
|
126 | - foreach ($this->datetimes as $datetime) { |
|
127 | - if (! $datetime instanceof \EE_Datetime || ! in_array($datetime, $ticket_datetimes, true)) { |
|
128 | - continue; |
|
129 | - } |
|
130 | - $classes .= ' ee-ticket-datetimes-' . $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_'); |
|
131 | - } |
|
132 | - return $classes; |
|
133 | - } |
|
134 | - |
|
135 | - |
|
136 | - /** |
|
137 | - * @param string $date_format |
|
138 | - * @param string $time_format |
|
139 | - * @return array |
|
140 | - * @throws \EE_Error |
|
141 | - */ |
|
142 | - public function getUniqueDatetimeOptions($date_format = 'Y-m-d', $time_format = 'g:i a') |
|
143 | - { |
|
144 | - $datetime_options = array(); |
|
145 | - foreach ($this->datetimes as $datetime) { |
|
146 | - if (! $datetime instanceof \EE_Datetime) { |
|
147 | - continue; |
|
148 | - } |
|
149 | - $datetime_options[ $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_') ] = |
|
150 | - $datetime->date_and_time_range($date_format, $time_format, ' - '); |
|
151 | - } |
|
152 | - return $datetime_options; |
|
153 | - } |
|
154 | - |
|
155 | - |
|
156 | - /** |
|
157 | - * @return string |
|
158 | - * @throws \EE_Error |
|
159 | - */ |
|
160 | - public function getDatetimeSelector() |
|
161 | - { |
|
162 | - if (! $this->active) { |
|
163 | - return ''; |
|
164 | - } |
|
165 | - $dropdown_selector = new \EE_Checkbox_Dropdown_Selector_Input( |
|
166 | - $this->unique_dates, |
|
167 | - array( |
|
168 | - 'html_id' => 'datetime-selector-' . $this->event->ID(), |
|
169 | - 'html_name' => 'datetime_selector_' . $this->event->ID(), |
|
170 | - 'html_class' => 'datetime-selector', |
|
171 | - 'select_button_text' => '<span class="dashicons dashicons-calendar-alt"></span> ' |
|
172 | - . esc_html__('Filter by Date', 'event_espresso'), |
|
173 | - 'other_html_attributes' => ' data-tkt_slctr_evt="' . $this->event->ID() . '"', |
|
174 | - ) |
|
175 | - ); |
|
176 | - return \EEH_HTML::div( |
|
177 | - $dropdown_selector->get_html_for_input(), |
|
178 | - '', |
|
179 | - 'datetime_selector-dv' |
|
180 | - ); |
|
181 | - } |
|
15 | + /** |
|
16 | + * @var \EE_Event $event |
|
17 | + */ |
|
18 | + protected $event; |
|
19 | + |
|
20 | + /** |
|
21 | + * @var \EE_Ticket[] $tickets |
|
22 | + */ |
|
23 | + protected $tickets; |
|
24 | + |
|
25 | + /** |
|
26 | + * @var \EE_Datetime[] $datetimes |
|
27 | + */ |
|
28 | + protected $datetimes; |
|
29 | + |
|
30 | + /** |
|
31 | + * @var \EE_Datetime[] $unique_dates |
|
32 | + */ |
|
33 | + protected $unique_dates; |
|
34 | + |
|
35 | + /** |
|
36 | + * @var \EE_Ticket_Selector_Config $template_settings |
|
37 | + */ |
|
38 | + protected $template_settings; |
|
39 | + |
|
40 | + /** |
|
41 | + * @var boolean $active |
|
42 | + */ |
|
43 | + protected $active = false; |
|
44 | + |
|
45 | + |
|
46 | + /** |
|
47 | + * DatetimeSelector constructor. |
|
48 | + * |
|
49 | + * @param \EE_Event $event |
|
50 | + * @param \EE_Ticket[] $tickets |
|
51 | + * @param \EE_Ticket_Selector_Config $template_settings |
|
52 | + * @param string $date_format |
|
53 | + * @param string $time_format |
|
54 | + * @throws \EE_Error |
|
55 | + */ |
|
56 | + public function __construct( |
|
57 | + \EE_Event $event, |
|
58 | + array $tickets, |
|
59 | + \EE_Ticket_Selector_Config $template_settings, |
|
60 | + $date_format = 'Y-m-d', |
|
61 | + $time_format = 'g:i a' |
|
62 | + ) { |
|
63 | + $this->event = $event; |
|
64 | + $this->tickets = $tickets; |
|
65 | + $this->template_settings = $template_settings; |
|
66 | + $this->datetimes = $this->getAllDatetimesForAllTicket($tickets); |
|
67 | + $this->unique_dates = $this->getUniqueDatetimeOptions($date_format, $time_format); |
|
68 | + $this->active = $this->template_settings->showDatetimeSelector($this->unique_dates); |
|
69 | + } |
|
70 | + |
|
71 | + |
|
72 | + /** |
|
73 | + * @param \EE_Ticket[] $tickets |
|
74 | + * @return array |
|
75 | + * @throws \EE_Error |
|
76 | + */ |
|
77 | + protected function getAllDatetimesForAllTicket($tickets = array()) |
|
78 | + { |
|
79 | + $datetimes = array(); |
|
80 | + foreach ($tickets as $ticket) { |
|
81 | + $datetimes = $this->getTicketDatetimes($ticket, $datetimes); |
|
82 | + } |
|
83 | + return $datetimes; |
|
84 | + } |
|
85 | + |
|
86 | + |
|
87 | + /** |
|
88 | + * @param \EE_Ticket $ticket |
|
89 | + * @param \EE_Datetime[] $datetimes |
|
90 | + * @return \EE_Datetime[] |
|
91 | + * @throws \EE_Error |
|
92 | + */ |
|
93 | + protected function getTicketDatetimes(\EE_Ticket $ticket, $datetimes = array()) |
|
94 | + { |
|
95 | + $ticket_datetimes = $ticket->datetimes( |
|
96 | + array( |
|
97 | + 'order_by' => array( |
|
98 | + 'DTT_order' => 'ASC', |
|
99 | + 'DTT_EVT_start' => 'ASC', |
|
100 | + ), |
|
101 | + 'default_where_conditions' => 'none', |
|
102 | + ) |
|
103 | + ); |
|
104 | + foreach ($ticket_datetimes as $ticket_datetime) { |
|
105 | + if (! $ticket_datetime instanceof \EE_Datetime) { |
|
106 | + continue; |
|
107 | + } |
|
108 | + $datetimes[ $ticket_datetime->ID() ] = $ticket_datetime; |
|
109 | + } |
|
110 | + return $datetimes; |
|
111 | + } |
|
112 | + |
|
113 | + |
|
114 | + /** |
|
115 | + * @param \EE_Ticket $ticket |
|
116 | + * @return string |
|
117 | + * @throws \EE_Error |
|
118 | + */ |
|
119 | + public function getTicketDatetimeClasses(\EE_Ticket $ticket) |
|
120 | + { |
|
121 | + if (! $this->active) { |
|
122 | + return ''; |
|
123 | + } |
|
124 | + $ticket_datetimes = $this->getTicketDatetimes($ticket); |
|
125 | + $classes = ''; |
|
126 | + foreach ($this->datetimes as $datetime) { |
|
127 | + if (! $datetime instanceof \EE_Datetime || ! in_array($datetime, $ticket_datetimes, true)) { |
|
128 | + continue; |
|
129 | + } |
|
130 | + $classes .= ' ee-ticket-datetimes-' . $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_'); |
|
131 | + } |
|
132 | + return $classes; |
|
133 | + } |
|
134 | + |
|
135 | + |
|
136 | + /** |
|
137 | + * @param string $date_format |
|
138 | + * @param string $time_format |
|
139 | + * @return array |
|
140 | + * @throws \EE_Error |
|
141 | + */ |
|
142 | + public function getUniqueDatetimeOptions($date_format = 'Y-m-d', $time_format = 'g:i a') |
|
143 | + { |
|
144 | + $datetime_options = array(); |
|
145 | + foreach ($this->datetimes as $datetime) { |
|
146 | + if (! $datetime instanceof \EE_Datetime) { |
|
147 | + continue; |
|
148 | + } |
|
149 | + $datetime_options[ $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_') ] = |
|
150 | + $datetime->date_and_time_range($date_format, $time_format, ' - '); |
|
151 | + } |
|
152 | + return $datetime_options; |
|
153 | + } |
|
154 | + |
|
155 | + |
|
156 | + /** |
|
157 | + * @return string |
|
158 | + * @throws \EE_Error |
|
159 | + */ |
|
160 | + public function getDatetimeSelector() |
|
161 | + { |
|
162 | + if (! $this->active) { |
|
163 | + return ''; |
|
164 | + } |
|
165 | + $dropdown_selector = new \EE_Checkbox_Dropdown_Selector_Input( |
|
166 | + $this->unique_dates, |
|
167 | + array( |
|
168 | + 'html_id' => 'datetime-selector-' . $this->event->ID(), |
|
169 | + 'html_name' => 'datetime_selector_' . $this->event->ID(), |
|
170 | + 'html_class' => 'datetime-selector', |
|
171 | + 'select_button_text' => '<span class="dashicons dashicons-calendar-alt"></span> ' |
|
172 | + . esc_html__('Filter by Date', 'event_espresso'), |
|
173 | + 'other_html_attributes' => ' data-tkt_slctr_evt="' . $this->event->ID() . '"', |
|
174 | + ) |
|
175 | + ); |
|
176 | + return \EEH_HTML::div( |
|
177 | + $dropdown_selector->get_html_for_input(), |
|
178 | + '', |
|
179 | + 'datetime_selector-dv' |
|
180 | + ); |
|
181 | + } |
|
182 | 182 | } |
@@ -102,10 +102,10 @@ discard block |
||
102 | 102 | ) |
103 | 103 | ); |
104 | 104 | foreach ($ticket_datetimes as $ticket_datetime) { |
105 | - if (! $ticket_datetime instanceof \EE_Datetime) { |
|
105 | + if ( ! $ticket_datetime instanceof \EE_Datetime) { |
|
106 | 106 | continue; |
107 | 107 | } |
108 | - $datetimes[ $ticket_datetime->ID() ] = $ticket_datetime; |
|
108 | + $datetimes[$ticket_datetime->ID()] = $ticket_datetime; |
|
109 | 109 | } |
110 | 110 | return $datetimes; |
111 | 111 | } |
@@ -118,16 +118,16 @@ discard block |
||
118 | 118 | */ |
119 | 119 | public function getTicketDatetimeClasses(\EE_Ticket $ticket) |
120 | 120 | { |
121 | - if (! $this->active) { |
|
121 | + if ( ! $this->active) { |
|
122 | 122 | return ''; |
123 | 123 | } |
124 | 124 | $ticket_datetimes = $this->getTicketDatetimes($ticket); |
125 | 125 | $classes = ''; |
126 | 126 | foreach ($this->datetimes as $datetime) { |
127 | - if (! $datetime instanceof \EE_Datetime || ! in_array($datetime, $ticket_datetimes, true)) { |
|
127 | + if ( ! $datetime instanceof \EE_Datetime || ! in_array($datetime, $ticket_datetimes, true)) { |
|
128 | 128 | continue; |
129 | 129 | } |
130 | - $classes .= ' ee-ticket-datetimes-' . $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_'); |
|
130 | + $classes .= ' ee-ticket-datetimes-'.$datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_'); |
|
131 | 131 | } |
132 | 132 | return $classes; |
133 | 133 | } |
@@ -143,10 +143,10 @@ discard block |
||
143 | 143 | { |
144 | 144 | $datetime_options = array(); |
145 | 145 | foreach ($this->datetimes as $datetime) { |
146 | - if (! $datetime instanceof \EE_Datetime) { |
|
146 | + if ( ! $datetime instanceof \EE_Datetime) { |
|
147 | 147 | continue; |
148 | 148 | } |
149 | - $datetime_options[ $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_') ] = |
|
149 | + $datetime_options[$datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_')] = |
|
150 | 150 | $datetime->date_and_time_range($date_format, $time_format, ' - '); |
151 | 151 | } |
152 | 152 | return $datetime_options; |
@@ -159,18 +159,18 @@ discard block |
||
159 | 159 | */ |
160 | 160 | public function getDatetimeSelector() |
161 | 161 | { |
162 | - if (! $this->active) { |
|
162 | + if ( ! $this->active) { |
|
163 | 163 | return ''; |
164 | 164 | } |
165 | 165 | $dropdown_selector = new \EE_Checkbox_Dropdown_Selector_Input( |
166 | 166 | $this->unique_dates, |
167 | 167 | array( |
168 | - 'html_id' => 'datetime-selector-' . $this->event->ID(), |
|
169 | - 'html_name' => 'datetime_selector_' . $this->event->ID(), |
|
168 | + 'html_id' => 'datetime-selector-'.$this->event->ID(), |
|
169 | + 'html_name' => 'datetime_selector_'.$this->event->ID(), |
|
170 | 170 | 'html_class' => 'datetime-selector', |
171 | 171 | 'select_button_text' => '<span class="dashicons dashicons-calendar-alt"></span> ' |
172 | 172 | . esc_html__('Filter by Date', 'event_espresso'), |
173 | - 'other_html_attributes' => ' data-tkt_slctr_evt="' . $this->event->ID() . '"', |
|
173 | + 'other_html_attributes' => ' data-tkt_slctr_evt="'.$this->event->ID().'"', |
|
174 | 174 | ) |
175 | 175 | ); |
176 | 176 | return \EEH_HTML::div( |
@@ -28,74 +28,74 @@ |
||
28 | 28 | */ |
29 | 29 | class Response |
30 | 30 | { |
31 | - /** |
|
32 | - * Succes or failure. |
|
33 | - * |
|
34 | - * @var boolean |
|
35 | - */ |
|
36 | - private $success = false; |
|
31 | + /** |
|
32 | + * Succes or failure. |
|
33 | + * |
|
34 | + * @var boolean |
|
35 | + */ |
|
36 | + private $success = false; |
|
37 | 37 | |
38 | - /** |
|
39 | - * Error code strings. |
|
40 | - * |
|
41 | - * @var array |
|
42 | - */ |
|
43 | - private $errorCodes = array(); |
|
38 | + /** |
|
39 | + * Error code strings. |
|
40 | + * |
|
41 | + * @var array |
|
42 | + */ |
|
43 | + private $errorCodes = array(); |
|
44 | 44 | |
45 | - /** |
|
46 | - * Build the response from the expected JSON returned by the service. |
|
47 | - * |
|
48 | - * @param string $json |
|
49 | - * @return \ReCaptcha\Response |
|
50 | - */ |
|
51 | - public static function fromJson($json) |
|
52 | - { |
|
53 | - $responseData = json_decode($json, true); |
|
45 | + /** |
|
46 | + * Build the response from the expected JSON returned by the service. |
|
47 | + * |
|
48 | + * @param string $json |
|
49 | + * @return \ReCaptcha\Response |
|
50 | + */ |
|
51 | + public static function fromJson($json) |
|
52 | + { |
|
53 | + $responseData = json_decode($json, true); |
|
54 | 54 | |
55 | - if (! $responseData) { |
|
56 | - return new Response(false, array('invalid-json')); |
|
57 | - } |
|
55 | + if (! $responseData) { |
|
56 | + return new Response(false, array('invalid-json')); |
|
57 | + } |
|
58 | 58 | |
59 | - if (isset($responseData['success']) && $responseData['success'] == true) { |
|
60 | - return new Response(true); |
|
61 | - } |
|
59 | + if (isset($responseData['success']) && $responseData['success'] == true) { |
|
60 | + return new Response(true); |
|
61 | + } |
|
62 | 62 | |
63 | - if (isset($responseData['error-codes']) && is_array($responseData['error-codes'])) { |
|
64 | - return new Response(false, $responseData['error-codes']); |
|
65 | - } |
|
63 | + if (isset($responseData['error-codes']) && is_array($responseData['error-codes'])) { |
|
64 | + return new Response(false, $responseData['error-codes']); |
|
65 | + } |
|
66 | 66 | |
67 | - return new Response(false); |
|
68 | - } |
|
67 | + return new Response(false); |
|
68 | + } |
|
69 | 69 | |
70 | - /** |
|
71 | - * Constructor. |
|
72 | - * |
|
73 | - * @param boolean $success |
|
74 | - * @param array $errorCodes |
|
75 | - */ |
|
76 | - public function __construct($success, array $errorCodes = array()) |
|
77 | - { |
|
78 | - $this->success = $success; |
|
79 | - $this->errorCodes = $errorCodes; |
|
80 | - } |
|
70 | + /** |
|
71 | + * Constructor. |
|
72 | + * |
|
73 | + * @param boolean $success |
|
74 | + * @param array $errorCodes |
|
75 | + */ |
|
76 | + public function __construct($success, array $errorCodes = array()) |
|
77 | + { |
|
78 | + $this->success = $success; |
|
79 | + $this->errorCodes = $errorCodes; |
|
80 | + } |
|
81 | 81 | |
82 | - /** |
|
83 | - * Is success? |
|
84 | - * |
|
85 | - * @return boolean |
|
86 | - */ |
|
87 | - public function isSuccess() |
|
88 | - { |
|
89 | - return $this->success; |
|
90 | - } |
|
82 | + /** |
|
83 | + * Is success? |
|
84 | + * |
|
85 | + * @return boolean |
|
86 | + */ |
|
87 | + public function isSuccess() |
|
88 | + { |
|
89 | + return $this->success; |
|
90 | + } |
|
91 | 91 | |
92 | - /** |
|
93 | - * Get error codes. |
|
94 | - * |
|
95 | - * @return array |
|
96 | - */ |
|
97 | - public function getErrorCodes() |
|
98 | - { |
|
99 | - return $this->errorCodes; |
|
100 | - } |
|
92 | + /** |
|
93 | + * Get error codes. |
|
94 | + * |
|
95 | + * @return array |
|
96 | + */ |
|
97 | + public function getErrorCodes() |
|
98 | + { |
|
99 | + return $this->errorCodes; |
|
100 | + } |
|
101 | 101 | } |
@@ -52,7 +52,7 @@ |
||
52 | 52 | { |
53 | 53 | $responseData = json_decode($json, true); |
54 | 54 | |
55 | - if (! $responseData) { |
|
55 | + if ( ! $responseData) { |
|
56 | 56 | return new Response(false, array('invalid-json')); |
57 | 57 | } |
58 | 58 |