@@ -14,195 +14,195 @@ |
||
14 | 14 | class EE_Template_Part_Manager |
15 | 15 | { |
16 | 16 | |
17 | - /** |
|
18 | - * @param EE_Template_Part_PriorityQueue $template_parts |
|
19 | - */ |
|
20 | - protected $template_parts; |
|
21 | - |
|
22 | - /** |
|
23 | - * @param array $priorities |
|
24 | - */ |
|
25 | - protected $priorities = array(); |
|
26 | - |
|
27 | - /** |
|
28 | - * @param int $event_desc_priority |
|
29 | - */ |
|
30 | - protected $event_desc_priority; |
|
31 | - |
|
32 | - /** |
|
33 | - * @param string $before_event_content |
|
34 | - */ |
|
35 | - protected $before_event_content; |
|
36 | - |
|
37 | - /** |
|
38 | - * @param string $event_content |
|
39 | - */ |
|
40 | - protected $event_content; |
|
41 | - |
|
42 | - /** |
|
43 | - * @param string $after_event_content |
|
44 | - */ |
|
45 | - protected $after_event_content; |
|
46 | - |
|
47 | - |
|
48 | - /** |
|
49 | - * class constructor |
|
50 | - */ |
|
51 | - public function __construct() |
|
52 | - { |
|
53 | - $this->template_parts = new EE_Template_Part_PriorityQueue(); |
|
54 | - } |
|
55 | - |
|
56 | - |
|
57 | - /** |
|
58 | - * add_template_part |
|
59 | - * |
|
60 | - * used for setting the details about a particular template part |
|
61 | - * |
|
62 | - * @param string $name - just a simple string identifier - do NOT use 'event' |
|
63 | - * @param string $label - template part label displayed in admin |
|
64 | - * @param string $template - name or path of template to be used by EEH_Template::locate_template() |
|
65 | - * @param int $priority - order in which template parts should be applied |
|
66 | - */ |
|
67 | - public function add_template_part($name, $label, $template, $priority) |
|
68 | - { |
|
69 | - // SplPriorityQueue doesn't play nice with multiple items having the same priority |
|
70 | - // so if the incoming priority is already occupied, then let's increment it by one, |
|
71 | - // and then pass everything back into this method and try again with the new priority |
|
72 | - if (isset($this->priorities[ $priority ])) { |
|
73 | - $priority++; |
|
74 | - $this->add_template_part($name, $label, $template, $priority); |
|
75 | - return; |
|
76 | - } |
|
77 | - // kk now we can mark this priority as being occupied |
|
78 | - $this->priorities[ $priority ] = true; |
|
79 | - // create the template part and add to the queue |
|
80 | - $this->template_parts->insert( |
|
81 | - new EE_Template_Part($name, $label, $template, $priority), |
|
82 | - $priority |
|
83 | - ); |
|
84 | - if ($name === 'event') { |
|
85 | - $this->event_desc_priority = $priority; |
|
86 | - } |
|
87 | - } |
|
88 | - |
|
89 | - |
|
90 | - /** |
|
91 | - * apply_template_part_filters |
|
92 | - * |
|
93 | - * adds template parts to the supplied content |
|
94 | - * according to the details set when the template parts were added |
|
95 | - * |
|
96 | - * @access public |
|
97 | - * @param string $content |
|
98 | - * @return string |
|
99 | - */ |
|
100 | - public function apply_template_part_filters($content = '') |
|
101 | - { |
|
102 | - $this->template_parts->rewind(); |
|
103 | - // loop through template parts and position content |
|
104 | - while ($this->template_parts->valid()) { |
|
105 | - $this->_position_template_part( |
|
106 | - $content, |
|
107 | - $this->template_parts->current()->template(), |
|
108 | - $this->template_parts->current()->priority() |
|
109 | - ); |
|
110 | - $this->template_parts->next(); |
|
111 | - } |
|
112 | - // now simply add our three strings of content together |
|
113 | - return $this->before_event_content . $this->event_content . $this->after_event_content; |
|
114 | - } |
|
115 | - |
|
116 | - |
|
117 | - /** |
|
118 | - * position_template_part |
|
119 | - * |
|
120 | - * based on the priority of the incoming template part |
|
121 | - * relative to the known event description template part priority, |
|
122 | - * this method will assign template parts to one of the following: |
|
123 | - * $this->before_event_content |
|
124 | - * $this->event_content |
|
125 | - * $this->after_event_content |
|
126 | - * |
|
127 | - * @access protected |
|
128 | - * @param string $content |
|
129 | - * @param string $template |
|
130 | - * @param int $priority |
|
131 | - * @return void |
|
132 | - */ |
|
133 | - protected function _position_template_part($content, $template, $priority) |
|
134 | - { |
|
135 | - // Event Description content is the actual incoming content itself |
|
136 | - if ($priority === $this->event_desc_priority) { |
|
137 | - $this->event_content = $content; |
|
138 | - } elseif ($priority < $this->event_desc_priority) { |
|
139 | - // everything BEFORE the Event Description |
|
140 | - $this->before_event_content .= EEH_Template::locate_template($template); |
|
141 | - } elseif ($priority > $this->event_desc_priority) { |
|
142 | - // everything AFTER the Event Description |
|
143 | - $this->after_event_content .= EEH_Template::locate_template($template); |
|
144 | - } |
|
145 | - } |
|
146 | - |
|
147 | - |
|
148 | - /** |
|
149 | - * generate_sortable_list_of_template_parts |
|
150 | - * |
|
151 | - * creates an HTML list (<ul>) with list items (<li>) for each template part, |
|
152 | - * in a format that can be used as a sortable list in the admin |
|
153 | - * |
|
154 | - * @access public |
|
155 | - * @param string $list_css_id |
|
156 | - * @param string $list_css_class |
|
157 | - * @param string $list_item_css_class |
|
158 | - * @param string $list_item_css_id_prefix |
|
159 | - * @return string |
|
160 | - */ |
|
161 | - public function generate_sortable_list_of_template_parts( |
|
162 | - $list_css_id = '', |
|
163 | - $list_css_class = '', |
|
164 | - $list_item_css_class = '', |
|
165 | - $list_item_css_id_prefix = '' |
|
166 | - ) { |
|
167 | - $event_archive_display_order = EEH_HTML::ul($list_css_id, $list_css_class); |
|
168 | - $this->template_parts->rewind(); |
|
169 | - // loop through template parts and add template content |
|
170 | - while ($this->template_parts->valid()) { |
|
171 | - $event_archive_display_order .= EEH_HTML::li( |
|
172 | - EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') . |
|
173 | - EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') . |
|
174 | - $this->template_parts->current()->label(), |
|
175 | - $list_item_css_id_prefix . $this->template_parts->current()->name(), |
|
176 | - $list_item_css_class |
|
177 | - ); |
|
178 | - $this->template_parts->next(); |
|
179 | - } |
|
180 | - $event_archive_display_order .= EEH_HTML::ulx(); |
|
181 | - return $event_archive_display_order; |
|
182 | - } |
|
183 | - |
|
184 | - |
|
185 | - /** |
|
186 | - * display_template_parts |
|
187 | - * |
|
188 | - * just for debugging purposes |
|
189 | - * |
|
190 | - * @access public |
|
191 | - * @return void |
|
192 | - */ |
|
193 | - public function display_template_parts() |
|
194 | - { |
|
195 | - if (WP_DEBUG) { |
|
196 | - $this->template_parts->rewind(); |
|
197 | - while ($this->template_parts->valid()) { |
|
198 | - EEH_Debug_Tools::printr( |
|
199 | - $this->template_parts->current(), |
|
200 | - 'template_part', |
|
201 | - __FILE__, |
|
202 | - __LINE__ |
|
203 | - ); |
|
204 | - $this->template_parts->next(); |
|
205 | - } |
|
206 | - } |
|
207 | - } |
|
17 | + /** |
|
18 | + * @param EE_Template_Part_PriorityQueue $template_parts |
|
19 | + */ |
|
20 | + protected $template_parts; |
|
21 | + |
|
22 | + /** |
|
23 | + * @param array $priorities |
|
24 | + */ |
|
25 | + protected $priorities = array(); |
|
26 | + |
|
27 | + /** |
|
28 | + * @param int $event_desc_priority |
|
29 | + */ |
|
30 | + protected $event_desc_priority; |
|
31 | + |
|
32 | + /** |
|
33 | + * @param string $before_event_content |
|
34 | + */ |
|
35 | + protected $before_event_content; |
|
36 | + |
|
37 | + /** |
|
38 | + * @param string $event_content |
|
39 | + */ |
|
40 | + protected $event_content; |
|
41 | + |
|
42 | + /** |
|
43 | + * @param string $after_event_content |
|
44 | + */ |
|
45 | + protected $after_event_content; |
|
46 | + |
|
47 | + |
|
48 | + /** |
|
49 | + * class constructor |
|
50 | + */ |
|
51 | + public function __construct() |
|
52 | + { |
|
53 | + $this->template_parts = new EE_Template_Part_PriorityQueue(); |
|
54 | + } |
|
55 | + |
|
56 | + |
|
57 | + /** |
|
58 | + * add_template_part |
|
59 | + * |
|
60 | + * used for setting the details about a particular template part |
|
61 | + * |
|
62 | + * @param string $name - just a simple string identifier - do NOT use 'event' |
|
63 | + * @param string $label - template part label displayed in admin |
|
64 | + * @param string $template - name or path of template to be used by EEH_Template::locate_template() |
|
65 | + * @param int $priority - order in which template parts should be applied |
|
66 | + */ |
|
67 | + public function add_template_part($name, $label, $template, $priority) |
|
68 | + { |
|
69 | + // SplPriorityQueue doesn't play nice with multiple items having the same priority |
|
70 | + // so if the incoming priority is already occupied, then let's increment it by one, |
|
71 | + // and then pass everything back into this method and try again with the new priority |
|
72 | + if (isset($this->priorities[ $priority ])) { |
|
73 | + $priority++; |
|
74 | + $this->add_template_part($name, $label, $template, $priority); |
|
75 | + return; |
|
76 | + } |
|
77 | + // kk now we can mark this priority as being occupied |
|
78 | + $this->priorities[ $priority ] = true; |
|
79 | + // create the template part and add to the queue |
|
80 | + $this->template_parts->insert( |
|
81 | + new EE_Template_Part($name, $label, $template, $priority), |
|
82 | + $priority |
|
83 | + ); |
|
84 | + if ($name === 'event') { |
|
85 | + $this->event_desc_priority = $priority; |
|
86 | + } |
|
87 | + } |
|
88 | + |
|
89 | + |
|
90 | + /** |
|
91 | + * apply_template_part_filters |
|
92 | + * |
|
93 | + * adds template parts to the supplied content |
|
94 | + * according to the details set when the template parts were added |
|
95 | + * |
|
96 | + * @access public |
|
97 | + * @param string $content |
|
98 | + * @return string |
|
99 | + */ |
|
100 | + public function apply_template_part_filters($content = '') |
|
101 | + { |
|
102 | + $this->template_parts->rewind(); |
|
103 | + // loop through template parts and position content |
|
104 | + while ($this->template_parts->valid()) { |
|
105 | + $this->_position_template_part( |
|
106 | + $content, |
|
107 | + $this->template_parts->current()->template(), |
|
108 | + $this->template_parts->current()->priority() |
|
109 | + ); |
|
110 | + $this->template_parts->next(); |
|
111 | + } |
|
112 | + // now simply add our three strings of content together |
|
113 | + return $this->before_event_content . $this->event_content . $this->after_event_content; |
|
114 | + } |
|
115 | + |
|
116 | + |
|
117 | + /** |
|
118 | + * position_template_part |
|
119 | + * |
|
120 | + * based on the priority of the incoming template part |
|
121 | + * relative to the known event description template part priority, |
|
122 | + * this method will assign template parts to one of the following: |
|
123 | + * $this->before_event_content |
|
124 | + * $this->event_content |
|
125 | + * $this->after_event_content |
|
126 | + * |
|
127 | + * @access protected |
|
128 | + * @param string $content |
|
129 | + * @param string $template |
|
130 | + * @param int $priority |
|
131 | + * @return void |
|
132 | + */ |
|
133 | + protected function _position_template_part($content, $template, $priority) |
|
134 | + { |
|
135 | + // Event Description content is the actual incoming content itself |
|
136 | + if ($priority === $this->event_desc_priority) { |
|
137 | + $this->event_content = $content; |
|
138 | + } elseif ($priority < $this->event_desc_priority) { |
|
139 | + // everything BEFORE the Event Description |
|
140 | + $this->before_event_content .= EEH_Template::locate_template($template); |
|
141 | + } elseif ($priority > $this->event_desc_priority) { |
|
142 | + // everything AFTER the Event Description |
|
143 | + $this->after_event_content .= EEH_Template::locate_template($template); |
|
144 | + } |
|
145 | + } |
|
146 | + |
|
147 | + |
|
148 | + /** |
|
149 | + * generate_sortable_list_of_template_parts |
|
150 | + * |
|
151 | + * creates an HTML list (<ul>) with list items (<li>) for each template part, |
|
152 | + * in a format that can be used as a sortable list in the admin |
|
153 | + * |
|
154 | + * @access public |
|
155 | + * @param string $list_css_id |
|
156 | + * @param string $list_css_class |
|
157 | + * @param string $list_item_css_class |
|
158 | + * @param string $list_item_css_id_prefix |
|
159 | + * @return string |
|
160 | + */ |
|
161 | + public function generate_sortable_list_of_template_parts( |
|
162 | + $list_css_id = '', |
|
163 | + $list_css_class = '', |
|
164 | + $list_item_css_class = '', |
|
165 | + $list_item_css_id_prefix = '' |
|
166 | + ) { |
|
167 | + $event_archive_display_order = EEH_HTML::ul($list_css_id, $list_css_class); |
|
168 | + $this->template_parts->rewind(); |
|
169 | + // loop through template parts and add template content |
|
170 | + while ($this->template_parts->valid()) { |
|
171 | + $event_archive_display_order .= EEH_HTML::li( |
|
172 | + EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') . |
|
173 | + EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') . |
|
174 | + $this->template_parts->current()->label(), |
|
175 | + $list_item_css_id_prefix . $this->template_parts->current()->name(), |
|
176 | + $list_item_css_class |
|
177 | + ); |
|
178 | + $this->template_parts->next(); |
|
179 | + } |
|
180 | + $event_archive_display_order .= EEH_HTML::ulx(); |
|
181 | + return $event_archive_display_order; |
|
182 | + } |
|
183 | + |
|
184 | + |
|
185 | + /** |
|
186 | + * display_template_parts |
|
187 | + * |
|
188 | + * just for debugging purposes |
|
189 | + * |
|
190 | + * @access public |
|
191 | + * @return void |
|
192 | + */ |
|
193 | + public function display_template_parts() |
|
194 | + { |
|
195 | + if (WP_DEBUG) { |
|
196 | + $this->template_parts->rewind(); |
|
197 | + while ($this->template_parts->valid()) { |
|
198 | + EEH_Debug_Tools::printr( |
|
199 | + $this->template_parts->current(), |
|
200 | + 'template_part', |
|
201 | + __FILE__, |
|
202 | + __LINE__ |
|
203 | + ); |
|
204 | + $this->template_parts->next(); |
|
205 | + } |
|
206 | + } |
|
207 | + } |
|
208 | 208 | } |
@@ -69,13 +69,13 @@ discard block |
||
69 | 69 | // SplPriorityQueue doesn't play nice with multiple items having the same priority |
70 | 70 | // so if the incoming priority is already occupied, then let's increment it by one, |
71 | 71 | // and then pass everything back into this method and try again with the new priority |
72 | - if (isset($this->priorities[ $priority ])) { |
|
72 | + if (isset($this->priorities[$priority])) { |
|
73 | 73 | $priority++; |
74 | 74 | $this->add_template_part($name, $label, $template, $priority); |
75 | 75 | return; |
76 | 76 | } |
77 | 77 | // kk now we can mark this priority as being occupied |
78 | - $this->priorities[ $priority ] = true; |
|
78 | + $this->priorities[$priority] = true; |
|
79 | 79 | // create the template part and add to the queue |
80 | 80 | $this->template_parts->insert( |
81 | 81 | new EE_Template_Part($name, $label, $template, $priority), |
@@ -110,7 +110,7 @@ discard block |
||
110 | 110 | $this->template_parts->next(); |
111 | 111 | } |
112 | 112 | // now simply add our three strings of content together |
113 | - return $this->before_event_content . $this->event_content . $this->after_event_content; |
|
113 | + return $this->before_event_content.$this->event_content.$this->after_event_content; |
|
114 | 114 | } |
115 | 115 | |
116 | 116 | |
@@ -169,10 +169,10 @@ discard block |
||
169 | 169 | // loop through template parts and add template content |
170 | 170 | while ($this->template_parts->valid()) { |
171 | 171 | $event_archive_display_order .= EEH_HTML::li( |
172 | - EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') . |
|
173 | - EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') . |
|
172 | + EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2'). |
|
173 | + EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2'). |
|
174 | 174 | $this->template_parts->current()->label(), |
175 | - $list_item_css_id_prefix . $this->template_parts->current()->name(), |
|
175 | + $list_item_css_id_prefix.$this->template_parts->current()->name(), |
|
176 | 176 | $list_item_css_class |
177 | 177 | ); |
178 | 178 | $this->template_parts->next(); |
@@ -16,112 +16,112 @@ |
||
16 | 16 | { |
17 | 17 | |
18 | 18 | |
19 | - /** |
|
20 | - * @type string $name |
|
21 | - */ |
|
22 | - protected $name; |
|
23 | - |
|
24 | - /** |
|
25 | - * @type string $label |
|
26 | - */ |
|
27 | - protected $label; |
|
28 | - |
|
29 | - /** |
|
30 | - * @type string $template |
|
31 | - */ |
|
32 | - protected $template; |
|
33 | - |
|
34 | - /** |
|
35 | - * @type int $priority |
|
36 | - */ |
|
37 | - protected $priority; |
|
38 | - |
|
39 | - |
|
40 | - /** |
|
41 | - * class constructor |
|
42 | - * |
|
43 | - * @param string $name |
|
44 | - * @param string $label |
|
45 | - * @param string $template |
|
46 | - * @param int $priority |
|
47 | - */ |
|
48 | - public function __construct($name, $label, $template, $priority = 100) |
|
49 | - { |
|
50 | - $this->set_name($name); |
|
51 | - $this->set_label($label); |
|
52 | - $this->set_template($template); |
|
53 | - $this->set_priority($priority); |
|
54 | - } |
|
55 | - |
|
56 | - |
|
57 | - /** |
|
58 | - * @return mixed |
|
59 | - */ |
|
60 | - public function name() |
|
61 | - { |
|
62 | - return $this->name; |
|
63 | - } |
|
64 | - |
|
65 | - |
|
66 | - /** |
|
67 | - * @param mixed $name |
|
68 | - */ |
|
69 | - public function set_name($name) |
|
70 | - { |
|
71 | - $this->name = $name; |
|
72 | - } |
|
73 | - |
|
74 | - |
|
75 | - /** |
|
76 | - * @return string |
|
77 | - */ |
|
78 | - public function label() |
|
79 | - { |
|
80 | - return $this->label; |
|
81 | - } |
|
82 | - |
|
83 | - |
|
84 | - /** |
|
85 | - * @param string $label |
|
86 | - */ |
|
87 | - public function set_label($label) |
|
88 | - { |
|
89 | - $this->label = $label; |
|
90 | - } |
|
91 | - |
|
92 | - |
|
93 | - /** |
|
94 | - * @return array |
|
95 | - */ |
|
96 | - public function template() |
|
97 | - { |
|
98 | - return $this->template; |
|
99 | - } |
|
100 | - |
|
101 | - |
|
102 | - /** |
|
103 | - * @param string $template |
|
104 | - */ |
|
105 | - public function set_template($template) |
|
106 | - { |
|
107 | - $this->template = $template; |
|
108 | - } |
|
109 | - |
|
110 | - |
|
111 | - /** |
|
112 | - * @return int |
|
113 | - */ |
|
114 | - public function priority() |
|
115 | - { |
|
116 | - return $this->priority; |
|
117 | - } |
|
118 | - |
|
119 | - |
|
120 | - /** |
|
121 | - * @param int $priority |
|
122 | - */ |
|
123 | - public function set_priority($priority) |
|
124 | - { |
|
125 | - $this->priority = intval($priority); |
|
126 | - } |
|
19 | + /** |
|
20 | + * @type string $name |
|
21 | + */ |
|
22 | + protected $name; |
|
23 | + |
|
24 | + /** |
|
25 | + * @type string $label |
|
26 | + */ |
|
27 | + protected $label; |
|
28 | + |
|
29 | + /** |
|
30 | + * @type string $template |
|
31 | + */ |
|
32 | + protected $template; |
|
33 | + |
|
34 | + /** |
|
35 | + * @type int $priority |
|
36 | + */ |
|
37 | + protected $priority; |
|
38 | + |
|
39 | + |
|
40 | + /** |
|
41 | + * class constructor |
|
42 | + * |
|
43 | + * @param string $name |
|
44 | + * @param string $label |
|
45 | + * @param string $template |
|
46 | + * @param int $priority |
|
47 | + */ |
|
48 | + public function __construct($name, $label, $template, $priority = 100) |
|
49 | + { |
|
50 | + $this->set_name($name); |
|
51 | + $this->set_label($label); |
|
52 | + $this->set_template($template); |
|
53 | + $this->set_priority($priority); |
|
54 | + } |
|
55 | + |
|
56 | + |
|
57 | + /** |
|
58 | + * @return mixed |
|
59 | + */ |
|
60 | + public function name() |
|
61 | + { |
|
62 | + return $this->name; |
|
63 | + } |
|
64 | + |
|
65 | + |
|
66 | + /** |
|
67 | + * @param mixed $name |
|
68 | + */ |
|
69 | + public function set_name($name) |
|
70 | + { |
|
71 | + $this->name = $name; |
|
72 | + } |
|
73 | + |
|
74 | + |
|
75 | + /** |
|
76 | + * @return string |
|
77 | + */ |
|
78 | + public function label() |
|
79 | + { |
|
80 | + return $this->label; |
|
81 | + } |
|
82 | + |
|
83 | + |
|
84 | + /** |
|
85 | + * @param string $label |
|
86 | + */ |
|
87 | + public function set_label($label) |
|
88 | + { |
|
89 | + $this->label = $label; |
|
90 | + } |
|
91 | + |
|
92 | + |
|
93 | + /** |
|
94 | + * @return array |
|
95 | + */ |
|
96 | + public function template() |
|
97 | + { |
|
98 | + return $this->template; |
|
99 | + } |
|
100 | + |
|
101 | + |
|
102 | + /** |
|
103 | + * @param string $template |
|
104 | + */ |
|
105 | + public function set_template($template) |
|
106 | + { |
|
107 | + $this->template = $template; |
|
108 | + } |
|
109 | + |
|
110 | + |
|
111 | + /** |
|
112 | + * @return int |
|
113 | + */ |
|
114 | + public function priority() |
|
115 | + { |
|
116 | + return $this->priority; |
|
117 | + } |
|
118 | + |
|
119 | + |
|
120 | + /** |
|
121 | + * @param int $priority |
|
122 | + */ |
|
123 | + public function set_priority($priority) |
|
124 | + { |
|
125 | + $this->priority = intval($priority); |
|
126 | + } |
|
127 | 127 | } |
@@ -17,43 +17,43 @@ |
||
17 | 17 | { |
18 | 18 | |
19 | 19 | |
20 | - /** |
|
21 | - * add |
|
22 | - * |
|
23 | - * attaches aTemplate_Part to the Collection |
|
24 | - * and sets any supplied data associated with the current iterator entry |
|
25 | - * |
|
26 | - * @access public |
|
27 | - * @param EE_Template_Part $object |
|
28 | - * @param int $priority |
|
29 | - * @return bool |
|
30 | - */ |
|
31 | - public function insert($object, $priority = 100) |
|
32 | - { |
|
33 | - if ($object instanceof EE_Template_Part) { |
|
34 | - parent::insert($object, $priority); |
|
35 | - return true; |
|
36 | - } else { |
|
37 | - return false; |
|
38 | - } |
|
39 | - } |
|
20 | + /** |
|
21 | + * add |
|
22 | + * |
|
23 | + * attaches aTemplate_Part to the Collection |
|
24 | + * and sets any supplied data associated with the current iterator entry |
|
25 | + * |
|
26 | + * @access public |
|
27 | + * @param EE_Template_Part $object |
|
28 | + * @param int $priority |
|
29 | + * @return bool |
|
30 | + */ |
|
31 | + public function insert($object, $priority = 100) |
|
32 | + { |
|
33 | + if ($object instanceof EE_Template_Part) { |
|
34 | + parent::insert($object, $priority); |
|
35 | + return true; |
|
36 | + } else { |
|
37 | + return false; |
|
38 | + } |
|
39 | + } |
|
40 | 40 | |
41 | 41 | |
42 | - /** |
|
43 | - * compare |
|
44 | - * |
|
45 | - * sorts EE_Template_Part in ascending order based on set priority |
|
46 | - * |
|
47 | - * @access public |
|
48 | - * @param int $priority1 |
|
49 | - * @param int $priority2 |
|
50 | - * @return bool |
|
51 | - */ |
|
52 | - public function compare($priority1, $priority2) |
|
53 | - { |
|
54 | - if ($priority1 === $priority2) { |
|
55 | - return 0; |
|
56 | - } |
|
57 | - return $priority1 > $priority2 ? -1 : 1; |
|
58 | - } |
|
42 | + /** |
|
43 | + * compare |
|
44 | + * |
|
45 | + * sorts EE_Template_Part in ascending order based on set priority |
|
46 | + * |
|
47 | + * @access public |
|
48 | + * @param int $priority1 |
|
49 | + * @param int $priority2 |
|
50 | + * @return bool |
|
51 | + */ |
|
52 | + public function compare($priority1, $priority2) |
|
53 | + { |
|
54 | + if ($priority1 === $priority2) { |
|
55 | + return 0; |
|
56 | + } |
|
57 | + return $priority1 > $priority2 ? -1 : 1; |
|
58 | + } |
|
59 | 59 | } |
@@ -14,71 +14,71 @@ |
||
14 | 14 | class EE_Processor_Base |
15 | 15 | { |
16 | 16 | |
17 | - /** |
|
18 | - * Used to indicate whether current request is for an IPN or not. |
|
19 | - * |
|
20 | - * @var bool |
|
21 | - */ |
|
22 | - protected static $IPN = false; |
|
17 | + /** |
|
18 | + * Used to indicate whether current request is for an IPN or not. |
|
19 | + * |
|
20 | + * @var bool |
|
21 | + */ |
|
22 | + protected static $IPN = false; |
|
23 | 23 | |
24 | - /** |
|
25 | - * Used to indicate whether SPCO is being revisited by registrant or not. |
|
26 | - * |
|
27 | - * @var bool |
|
28 | - */ |
|
29 | - protected $_revisit = false; |
|
24 | + /** |
|
25 | + * Used to indicate whether SPCO is being revisited by registrant or not. |
|
26 | + * |
|
27 | + * @var bool |
|
28 | + */ |
|
29 | + protected $_revisit = false; |
|
30 | 30 | |
31 | 31 | |
32 | - /** |
|
33 | - * @param boolean $IPN |
|
34 | - */ |
|
35 | - public static function set_IPN($IPN) |
|
36 | - { |
|
37 | - self::$IPN = filter_var($IPN, FILTER_VALIDATE_BOOLEAN); |
|
38 | - } |
|
32 | + /** |
|
33 | + * @param boolean $IPN |
|
34 | + */ |
|
35 | + public static function set_IPN($IPN) |
|
36 | + { |
|
37 | + self::$IPN = filter_var($IPN, FILTER_VALIDATE_BOOLEAN); |
|
38 | + } |
|
39 | 39 | |
40 | 40 | |
41 | - /** |
|
42 | - * Allows external class (usually checkout) to set whether SPCO is being revisited by registrant or not. |
|
43 | - * |
|
44 | - * @param bool $revisit |
|
45 | - * @return void |
|
46 | - */ |
|
47 | - public function set_revisit($revisit = false) |
|
48 | - { |
|
49 | - $this->_revisit = filter_var($revisit, FILTER_VALIDATE_BOOLEAN); |
|
50 | - } |
|
41 | + /** |
|
42 | + * Allows external class (usually checkout) to set whether SPCO is being revisited by registrant or not. |
|
43 | + * |
|
44 | + * @param bool $revisit |
|
45 | + * @return void |
|
46 | + */ |
|
47 | + public function set_revisit($revisit = false) |
|
48 | + { |
|
49 | + $this->_revisit = filter_var($revisit, FILTER_VALIDATE_BOOLEAN); |
|
50 | + } |
|
51 | 51 | |
52 | 52 | |
53 | - /** |
|
54 | - * debug |
|
55 | - * |
|
56 | - * @param string $class |
|
57 | - * @param string $func |
|
58 | - * @param string $line |
|
59 | - * @param \EE_Transaction $transaction |
|
60 | - * @param array $info |
|
61 | - * @param bool $display_request |
|
62 | - */ |
|
63 | - protected function log( |
|
64 | - $class = '', |
|
65 | - $func = '', |
|
66 | - $line = '', |
|
67 | - EE_Transaction $transaction, |
|
68 | - $info = array(), |
|
69 | - $display_request = false |
|
70 | - ) { |
|
71 | - if (WP_DEBUG && false) { |
|
72 | - if ($transaction instanceof EE_Transaction) { |
|
73 | - // don't serialize objects |
|
74 | - $info = EEH_Debug_Tools::strip_objects($info); |
|
75 | - if ($transaction->ID()) { |
|
76 | - $info['TXN_status'] = $transaction->status_ID(); |
|
77 | - $info['TXN_reg_steps'] = $transaction->reg_steps(); |
|
78 | - $index = 'EE_Transaction: ' . $transaction->ID(); |
|
79 | - EEH_Debug_Tools::log($class, $func, $line, $info, $display_request, $index); |
|
80 | - } |
|
81 | - } |
|
82 | - } |
|
83 | - } |
|
53 | + /** |
|
54 | + * debug |
|
55 | + * |
|
56 | + * @param string $class |
|
57 | + * @param string $func |
|
58 | + * @param string $line |
|
59 | + * @param \EE_Transaction $transaction |
|
60 | + * @param array $info |
|
61 | + * @param bool $display_request |
|
62 | + */ |
|
63 | + protected function log( |
|
64 | + $class = '', |
|
65 | + $func = '', |
|
66 | + $line = '', |
|
67 | + EE_Transaction $transaction, |
|
68 | + $info = array(), |
|
69 | + $display_request = false |
|
70 | + ) { |
|
71 | + if (WP_DEBUG && false) { |
|
72 | + if ($transaction instanceof EE_Transaction) { |
|
73 | + // don't serialize objects |
|
74 | + $info = EEH_Debug_Tools::strip_objects($info); |
|
75 | + if ($transaction->ID()) { |
|
76 | + $info['TXN_status'] = $transaction->status_ID(); |
|
77 | + $info['TXN_reg_steps'] = $transaction->reg_steps(); |
|
78 | + $index = 'EE_Transaction: ' . $transaction->ID(); |
|
79 | + EEH_Debug_Tools::log($class, $func, $line, $info, $display_request, $index); |
|
80 | + } |
|
81 | + } |
|
82 | + } |
|
83 | + } |
|
84 | 84 | } |
@@ -75,7 +75,7 @@ |
||
75 | 75 | if ($transaction->ID()) { |
76 | 76 | $info['TXN_status'] = $transaction->status_ID(); |
77 | 77 | $info['TXN_reg_steps'] = $transaction->reg_steps(); |
78 | - $index = 'EE_Transaction: ' . $transaction->ID(); |
|
78 | + $index = 'EE_Transaction: '.$transaction->ID(); |
|
79 | 79 | EEH_Debug_Tools::log($class, $func, $line, $info, $display_request, $index); |
80 | 80 | } |
81 | 81 | } |
@@ -17,948 +17,948 @@ |
||
17 | 17 | class EE_Transaction_Processor extends EE_Processor_Base |
18 | 18 | { |
19 | 19 | |
20 | - /** |
|
21 | - * @var EE_Registration_Processor $_instance |
|
22 | - * @access private |
|
23 | - */ |
|
24 | - private static $_instance; |
|
25 | - |
|
26 | - /** |
|
27 | - * array of query WHERE params to use when retrieving cached registrations from a transaction |
|
28 | - * |
|
29 | - * @var array $registration_query_params |
|
30 | - * @access private |
|
31 | - */ |
|
32 | - private $_registration_query_params = array(); |
|
33 | - |
|
34 | - /** |
|
35 | - * @deprecated |
|
36 | - * @var string |
|
37 | - */ |
|
38 | - protected $_old_txn_status; |
|
39 | - |
|
40 | - /** |
|
41 | - * @deprecated |
|
42 | - * @var string |
|
43 | - */ |
|
44 | - protected $_new_txn_status; |
|
45 | - |
|
46 | - |
|
47 | - /** |
|
48 | - * @singleton method used to instantiate class object |
|
49 | - * @access public |
|
50 | - * @param array $registration_query_params |
|
51 | - * @return EE_Transaction_Processor instance |
|
52 | - */ |
|
53 | - public static function instance($registration_query_params = array()) |
|
54 | - { |
|
55 | - // check if class object is instantiated |
|
56 | - if (! self::$_instance instanceof EE_Transaction_Processor) { |
|
57 | - self::$_instance = new self($registration_query_params); |
|
58 | - } |
|
59 | - return self::$_instance; |
|
60 | - } |
|
61 | - |
|
62 | - |
|
63 | - /** |
|
64 | - * @param array $registration_query_params |
|
65 | - */ |
|
66 | - private function __construct($registration_query_params = array()) |
|
67 | - { |
|
68 | - // make sure some query params are set for retrieving registrations |
|
69 | - $this->_set_registration_query_params($registration_query_params); |
|
70 | - } |
|
71 | - |
|
72 | - |
|
73 | - /** |
|
74 | - * @access private |
|
75 | - * @param array $registration_query_params |
|
76 | - */ |
|
77 | - private function _set_registration_query_params($registration_query_params) |
|
78 | - { |
|
79 | - $this->_registration_query_params = ! empty($registration_query_params) ? $registration_query_params |
|
80 | - : array('order_by' => array('REG_count' => 'ASC')); |
|
81 | - } |
|
82 | - |
|
83 | - |
|
84 | - /** |
|
85 | - * manually_update_registration_statuses |
|
86 | - * |
|
87 | - * @access public |
|
88 | - * @param EE_Transaction $transaction |
|
89 | - * @param string $new_reg_status |
|
90 | - * @param array $registration_query_params array of query WHERE params to use |
|
91 | - * when retrieving cached registrations from a transaction |
|
92 | - * @return boolean |
|
93 | - * @throws \EE_Error |
|
94 | - */ |
|
95 | - public function manually_update_registration_statuses( |
|
96 | - EE_Transaction $transaction, |
|
97 | - $new_reg_status = '', |
|
98 | - $registration_query_params = array() |
|
99 | - ) { |
|
100 | - $status_updates = $this->_call_method_on_registrations_via_Registration_Processor( |
|
101 | - 'manually_update_registration_status', |
|
102 | - $transaction, |
|
103 | - $registration_query_params, |
|
104 | - $new_reg_status |
|
105 | - ); |
|
106 | - // send messages |
|
107 | - /** @type EE_Registration_Processor $registration_processor */ |
|
108 | - $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
|
109 | - $registration_processor->trigger_registration_update_notifications( |
|
110 | - $transaction->primary_registration(), |
|
111 | - array('manually_updated' => true) |
|
112 | - ); |
|
113 | - do_action( |
|
114 | - 'AHEE__EE_Transaction_Processor__manually_update_registration_statuses', |
|
115 | - $transaction, |
|
116 | - $status_updates |
|
117 | - ); |
|
118 | - return $status_updates; |
|
119 | - } |
|
120 | - |
|
121 | - |
|
122 | - /** |
|
123 | - * toggle_registration_statuses_for_default_approved_events |
|
124 | - * |
|
125 | - * @access public |
|
126 | - * @param EE_Transaction $transaction |
|
127 | - * @param array $registration_query_params array of query WHERE params to use |
|
128 | - * when retrieving cached registrations from a transaction |
|
129 | - * @return boolean |
|
130 | - * @throws \EE_Error |
|
131 | - */ |
|
132 | - public function toggle_registration_statuses_for_default_approved_events( |
|
133 | - EE_Transaction $transaction, |
|
134 | - $registration_query_params = array() |
|
135 | - ) { |
|
136 | - $status_updates = $this->_call_method_on_registrations_via_Registration_Processor( |
|
137 | - 'toggle_registration_status_for_default_approved_events', |
|
138 | - $transaction, |
|
139 | - $registration_query_params |
|
140 | - ); |
|
141 | - do_action( |
|
142 | - 'AHEE__EE_Transaction_Processor__toggle_registration_statuses_for_default_approved_events', |
|
143 | - $transaction, |
|
144 | - $status_updates |
|
145 | - ); |
|
146 | - return $status_updates; |
|
147 | - } |
|
148 | - |
|
149 | - |
|
150 | - /** |
|
151 | - * toggle_registration_statuses_if_no_monies_owing |
|
152 | - * |
|
153 | - * @access public |
|
154 | - * @param EE_Transaction $transaction |
|
155 | - * @param array $registration_query_params array of query WHERE params to use |
|
156 | - * when retrieving cached registrations from a transaction |
|
157 | - * @return boolean |
|
158 | - * @throws \EE_Error |
|
159 | - */ |
|
160 | - public function toggle_registration_statuses_if_no_monies_owing( |
|
161 | - EE_Transaction $transaction, |
|
162 | - $registration_query_params = array() |
|
163 | - ) { |
|
164 | - $status_updates = $this->_call_method_on_registrations_via_Registration_Processor( |
|
165 | - 'toggle_registration_status_if_no_monies_owing', |
|
166 | - $transaction, |
|
167 | - $registration_query_params |
|
168 | - ); |
|
169 | - do_action( |
|
170 | - 'AHEE__EE_Transaction_Processor__toggle_registration_statuses_if_no_monies_owing', |
|
171 | - $transaction, |
|
172 | - $status_updates |
|
173 | - ); |
|
174 | - return $status_updates; |
|
175 | - } |
|
176 | - |
|
177 | - |
|
178 | - /** |
|
179 | - * update_transaction_and_registrations_after_checkout_or_payment |
|
180 | - * cycles thru related registrations and calls update_registration_after_checkout_or_payment() on each |
|
181 | - * |
|
182 | - * @param EE_Transaction $transaction |
|
183 | - * @param \EE_Payment | NULL $payment |
|
184 | - * @param array $registration_query_params array of query WHERE params to use |
|
185 | - * when retrieving cached registrations from a transaction |
|
186 | - * @param bool $trigger_notifications whether or not to call |
|
187 | - * \EE_Registration_Processor::trigger_registration_update_notifications() |
|
188 | - * @return array |
|
189 | - * @throws \EE_Error |
|
190 | - */ |
|
191 | - public function update_transaction_and_registrations_after_checkout_or_payment( |
|
192 | - EE_Transaction $transaction, |
|
193 | - $payment = null, |
|
194 | - $registration_query_params = array(), |
|
195 | - $trigger_notifications = true |
|
196 | - ) { |
|
197 | - // make sure some query params are set for retrieving registrations |
|
198 | - $this->_set_registration_query_params($registration_query_params); |
|
199 | - // get final reg step status |
|
200 | - $finalized = $transaction->final_reg_step_completed(); |
|
201 | - // if the 'finalize_registration' step has been initiated (has a timestamp) |
|
202 | - // but has not yet been fully completed (TRUE) |
|
203 | - if (is_int($finalized) && $finalized !== false && $finalized !== true) { |
|
204 | - $transaction->set_reg_step_completed('finalize_registration'); |
|
205 | - $finalized = true; |
|
206 | - } |
|
207 | - $transaction->save(); |
|
208 | - // array of details to aid in decision making by systems |
|
209 | - $update_params = array( |
|
210 | - 'old_txn_status' => $transaction->old_txn_status(), |
|
211 | - 'new_txn_status' => $transaction->status_ID(), |
|
212 | - 'finalized' => $finalized, |
|
213 | - 'revisit' => $this->_revisit, |
|
214 | - 'payment_updates' => $payment instanceof EE_Payment ? true : false, |
|
215 | - 'last_payment' => $payment, |
|
216 | - ); |
|
217 | - // now update the registrations and add the results to our $update_params |
|
218 | - $update_params['status_updates'] = $this->_call_method_on_registrations_via_Registration_Processor( |
|
219 | - 'update_registration_after_checkout_or_payment', |
|
220 | - $transaction, |
|
221 | - $this->_registration_query_params, |
|
222 | - $update_params |
|
223 | - ); |
|
224 | - if ($trigger_notifications) { |
|
225 | - // send messages |
|
226 | - /** @type EE_Registration_Processor $registration_processor */ |
|
227 | - $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
|
228 | - $registration_processor->trigger_registration_update_notifications( |
|
229 | - $transaction->primary_registration(), |
|
230 | - $update_params |
|
231 | - ); |
|
232 | - } |
|
233 | - do_action( |
|
234 | - 'AHEE__EE_Transaction_Processor__update_transaction_and_registrations_after_checkout_or_payment', |
|
235 | - $transaction, |
|
236 | - $update_params |
|
237 | - ); |
|
238 | - return $update_params; |
|
239 | - } |
|
240 | - |
|
241 | - |
|
242 | - /** |
|
243 | - * update_transaction_after_registration_reopened |
|
244 | - * readjusts TXN and Line Item totals after a registration is changed from |
|
245 | - * cancelled or declined to another reg status such as pending payment or approved |
|
246 | - * |
|
247 | - * @param \EE_Registration $registration |
|
248 | - * @param array $closed_reg_statuses |
|
249 | - * @param bool $update_txn |
|
250 | - * @return bool |
|
251 | - * @throws \EE_Error |
|
252 | - */ |
|
253 | - public function update_transaction_after_reinstating_canceled_registration( |
|
254 | - EE_Registration $registration, |
|
255 | - $closed_reg_statuses = array(), |
|
256 | - $update_txn = true |
|
257 | - ) { |
|
258 | - // these reg statuses should not be considered in any calculations involving monies owing |
|
259 | - $closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses |
|
260 | - : EEM_Registration::closed_reg_statuses(); |
|
261 | - if (in_array($registration->status_ID(), $closed_reg_statuses, true)) { |
|
262 | - return false; |
|
263 | - } |
|
264 | - try { |
|
265 | - $transaction = $this->get_transaction_for_registration($registration); |
|
266 | - $ticket_line_item = $this->get_ticket_line_item_for_transaction_registration( |
|
267 | - $transaction, |
|
268 | - $registration |
|
269 | - ); |
|
270 | - // un-cancel the ticket |
|
271 | - $success = EEH_Line_Item::reinstate_canceled_ticket_line_item($ticket_line_item); |
|
272 | - } catch (EE_Error $e) { |
|
273 | - EE_Error::add_error( |
|
274 | - sprintf( |
|
275 | - __( |
|
276 | - 'The Ticket Line Item for Registration %1$d could not be reinstated because :%2$s%3$s', |
|
277 | - 'event_espresso' |
|
278 | - ), |
|
279 | - $registration->ID(), |
|
280 | - '<br />', |
|
281 | - $e->getMessage() |
|
282 | - ), |
|
283 | - __FILE__, |
|
284 | - __FUNCTION__, |
|
285 | - __LINE__ |
|
286 | - ); |
|
287 | - return false; |
|
288 | - } |
|
289 | - if ($update_txn) { |
|
290 | - return $transaction->save() ? $success : false; |
|
291 | - } |
|
292 | - return $success; |
|
293 | - } |
|
294 | - |
|
295 | - |
|
296 | - /** |
|
297 | - * update_transaction_after_canceled_or_declined_registration |
|
298 | - * readjusts TXN and Line Item totals after a registration is cancelled or declined |
|
299 | - * |
|
300 | - * @param \EE_Registration $registration |
|
301 | - * @param array $closed_reg_statuses |
|
302 | - * @param bool $update_txn |
|
303 | - * @return bool |
|
304 | - * @throws \EE_Error |
|
305 | - */ |
|
306 | - public function update_transaction_after_canceled_or_declined_registration( |
|
307 | - EE_Registration $registration, |
|
308 | - $closed_reg_statuses = array(), |
|
309 | - $update_txn = true |
|
310 | - ) { |
|
311 | - // these reg statuses should not be considered in any calculations involving monies owing |
|
312 | - $closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses |
|
313 | - : EEM_Registration::closed_reg_statuses(); |
|
314 | - if (! in_array($registration->status_ID(), $closed_reg_statuses, true)) { |
|
315 | - return false; |
|
316 | - } |
|
317 | - try { |
|
318 | - $transaction = $this->get_transaction_for_registration($registration); |
|
319 | - if (apply_filters( |
|
320 | - 'FHEE__EE_Transaction_Processor__update_transaction_after_canceled_or_declined_registration__cancel_ticket_line_item', |
|
321 | - true, |
|
322 | - $registration, |
|
323 | - $transaction |
|
324 | - )) { |
|
325 | - $ticket_line_item = $this->get_ticket_line_item_for_transaction_registration( |
|
326 | - $transaction, |
|
327 | - $registration |
|
328 | - ); |
|
329 | - EEH_Line_Item::cancel_ticket_line_item($ticket_line_item); |
|
330 | - } |
|
331 | - } catch (EE_Error $e) { |
|
332 | - EE_Error::add_error( |
|
333 | - sprintf( |
|
334 | - __( |
|
335 | - 'The Ticket Line Item for Registration %1$d could not be cancelled because :%2$s%3$s', |
|
336 | - 'event_espresso' |
|
337 | - ), |
|
338 | - $registration->ID(), |
|
339 | - '<br />', |
|
340 | - $e->getMessage() |
|
341 | - ), |
|
342 | - __FILE__, |
|
343 | - __FUNCTION__, |
|
344 | - __LINE__ |
|
345 | - ); |
|
346 | - return false; |
|
347 | - } |
|
348 | - if ($update_txn) { |
|
349 | - return $transaction->save() ? true : false; |
|
350 | - } |
|
351 | - return true; |
|
352 | - } |
|
353 | - |
|
354 | - |
|
355 | - /** |
|
356 | - * get_transaction_for_registration |
|
357 | - * |
|
358 | - * @access public |
|
359 | - * @param EE_Registration $registration |
|
360 | - * @return EE_Transaction |
|
361 | - * @throws EE_Error |
|
362 | - */ |
|
363 | - public function get_transaction_for_registration(EE_Registration $registration) |
|
364 | - { |
|
365 | - $transaction = $registration->transaction(); |
|
366 | - if (! $transaction instanceof EE_Transaction) { |
|
367 | - throw new EE_Error( |
|
368 | - sprintf( |
|
369 | - __('The Transaction for Registration %1$d was not found or is invalid.', 'event_espresso'), |
|
370 | - $registration->ID() |
|
371 | - ) |
|
372 | - ); |
|
373 | - } |
|
374 | - return $transaction; |
|
375 | - } |
|
376 | - |
|
377 | - |
|
378 | - /** |
|
379 | - * get_ticket_line_item_for_transaction_registration |
|
380 | - * |
|
381 | - * @access public |
|
382 | - * @param EE_Transaction $transaction |
|
383 | - * @param EE_Registration $registration |
|
384 | - * @return EE_Line_Item |
|
385 | - * @throws EE_Error |
|
386 | - */ |
|
387 | - public function get_ticket_line_item_for_transaction_registration( |
|
388 | - EE_Transaction $transaction, |
|
389 | - EE_Registration $registration |
|
390 | - ) { |
|
391 | - EE_Registry::instance()->load_helper('Line_Item'); |
|
392 | - $ticket_line_item = EEM_Line_Item::instance()->get_ticket_line_item_for_transaction( |
|
393 | - $transaction->ID(), |
|
394 | - $registration->ticket_ID() |
|
395 | - ); |
|
396 | - if (! $ticket_line_item instanceof EE_Line_Item) { |
|
397 | - throw new EE_Error( |
|
398 | - sprintf( |
|
399 | - __( |
|
400 | - 'The Line Item for Transaction %1$d and Ticket %2$d was not found or is invalid.', |
|
401 | - 'event_espresso' |
|
402 | - ), |
|
403 | - $transaction->ID(), |
|
404 | - $registration->ticket_ID() |
|
405 | - ) |
|
406 | - ); |
|
407 | - } |
|
408 | - return $ticket_line_item; |
|
409 | - } |
|
410 | - |
|
411 | - |
|
412 | - /** |
|
413 | - * cancel_transaction_if_all_registrations_canceled |
|
414 | - * cycles thru related registrations and checks their statuses |
|
415 | - * if ALL registrations are Cancelled or Declined, then this sets the TXN status to |
|
416 | - * |
|
417 | - * @access public |
|
418 | - * @param EE_Transaction $transaction |
|
419 | - * @param string $new_TXN_status |
|
420 | - * @param array $registration_query_params - array of query WHERE params to use when |
|
421 | - * retrieving cached registrations from a transaction |
|
422 | - * @param array $closed_reg_statuses |
|
423 | - * @param bool $update_txn |
|
424 | - * @return bool true if TXN status was updated, false if not |
|
425 | - */ |
|
426 | - public function toggle_transaction_status_if_all_registrations_canceled_or_declined( |
|
427 | - EE_Transaction $transaction, |
|
428 | - $new_TXN_status = '', |
|
429 | - $registration_query_params = array(), |
|
430 | - $closed_reg_statuses = array(), |
|
431 | - $update_txn = true |
|
432 | - ) { |
|
433 | - // make sure some query params are set for retrieving registrations |
|
434 | - $this->_set_registration_query_params($registration_query_params); |
|
435 | - // these reg statuses should not be considered in any calculations involving monies owing |
|
436 | - $closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses |
|
437 | - : EEM_Registration::closed_reg_statuses(); |
|
438 | - // loop through cached registrations |
|
439 | - foreach ($transaction->registrations($this->_registration_query_params) as $registration) { |
|
440 | - if ($registration instanceof EE_Registration |
|
441 | - && ! in_array($registration->status_ID(), $closed_reg_statuses) |
|
442 | - ) { |
|
443 | - return false; |
|
444 | - } |
|
445 | - } |
|
446 | - if (in_array($new_TXN_status, EEM_Transaction::txn_status_array())) { |
|
447 | - $transaction->set_status($new_TXN_status); |
|
448 | - } |
|
449 | - if ($update_txn) { |
|
450 | - return $transaction->save() ? true : false; |
|
451 | - } |
|
452 | - return true; |
|
453 | - } |
|
454 | - |
|
455 | - |
|
456 | - /** |
|
457 | - * _call_method_on_registrations_via_Registration_Processor |
|
458 | - * cycles thru related registrations and calls the requested method on each |
|
459 | - * |
|
460 | - * @access private |
|
461 | - * @param string $method_name |
|
462 | - * @param EE_Transaction $transaction |
|
463 | - * @param array $registration_query_params array of query WHERE params to use |
|
464 | - * when retrieving cached registrations from a transaction |
|
465 | - * @param string $additional_param |
|
466 | - * @throws \EE_Error |
|
467 | - * @return boolean |
|
468 | - */ |
|
469 | - private function _call_method_on_registrations_via_Registration_Processor( |
|
470 | - $method_name, |
|
471 | - EE_Transaction $transaction, |
|
472 | - $registration_query_params = array(), |
|
473 | - $additional_param = null |
|
474 | - ) { |
|
475 | - $response = false; |
|
476 | - /** @type EE_Registration_Processor $registration_processor */ |
|
477 | - $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
|
478 | - // check that method exists |
|
479 | - if (! method_exists($registration_processor, $method_name)) { |
|
480 | - throw new EE_Error(__('Method does not exist.', 'event_espresso')); |
|
481 | - } |
|
482 | - // make sure some query params are set for retrieving registrations |
|
483 | - $this->_set_registration_query_params($registration_query_params); |
|
484 | - // loop through cached registrations |
|
485 | - foreach ($transaction->registrations($this->_registration_query_params) as $registration) { |
|
486 | - if ($registration instanceof EE_Registration) { |
|
487 | - if ($additional_param) { |
|
488 | - $response = $registration_processor->{$method_name}($registration, $additional_param) |
|
489 | - ? true |
|
490 | - : $response; |
|
491 | - } else { |
|
492 | - $response = $registration_processor->{$method_name}($registration) |
|
493 | - ? true |
|
494 | - : $response; |
|
495 | - } |
|
496 | - } |
|
497 | - } |
|
498 | - return $response; |
|
499 | - } |
|
500 | - |
|
501 | - |
|
502 | - /** |
|
503 | - * set_transaction_payment_method_based_on_registration_statuses |
|
504 | - * sets or unsets the PMD_ID field on the TXN based on the related REG statuses |
|
505 | - * basically if ALL Registrations are "Not Approved", then the EE_Transaction.PMD_ID is set to null, |
|
506 | - * but if any Registration has a different status, then EE_Transaction.PMD_ID is set to either: |
|
507 | - * the first "default" Payment Method |
|
508 | - * the first active Payment Method |
|
509 | - * whichever is found first. |
|
510 | - * |
|
511 | - * @param EE_Registration $edited_registration |
|
512 | - * @return void |
|
513 | - * @throws \EE_Error |
|
514 | - */ |
|
515 | - public function set_transaction_payment_method_based_on_registration_statuses( |
|
516 | - EE_Registration $edited_registration |
|
517 | - ) { |
|
518 | - if ($edited_registration instanceof EE_Registration) { |
|
519 | - $transaction = $edited_registration->transaction(); |
|
520 | - if ($transaction instanceof EE_Transaction) { |
|
521 | - $all_not_approved = true; |
|
522 | - foreach ($transaction->registrations() as $registration) { |
|
523 | - if ($registration instanceof EE_Registration) { |
|
524 | - // if any REG != "Not Approved" then toggle to false |
|
525 | - $all_not_approved = $registration->is_not_approved() ? $all_not_approved : false; |
|
526 | - } |
|
527 | - } |
|
528 | - // if ALL Registrations are "Not Approved" |
|
529 | - if ($all_not_approved) { |
|
530 | - $transaction->set_payment_method_ID(null); |
|
531 | - $transaction->save(); |
|
532 | - } else { |
|
533 | - $available_payment_methods = EEM_Payment_Method::instance()->get_all_for_transaction( |
|
534 | - $transaction, |
|
535 | - EEM_Payment_Method::scope_cart |
|
536 | - ); |
|
537 | - if (! empty($available_payment_methods)) { |
|
538 | - $PMD_ID = 0; |
|
539 | - foreach ($available_payment_methods as $available_payment_method) { |
|
540 | - if ($available_payment_method instanceof EE_Payment_Method |
|
541 | - && $available_payment_method->open_by_default() |
|
542 | - ) { |
|
543 | - $PMD_ID = $available_payment_method->ID(); |
|
544 | - break; |
|
545 | - } |
|
546 | - } |
|
547 | - if (! $PMD_ID) { |
|
548 | - $first_payment_method = reset($available_payment_methods); |
|
549 | - if ($first_payment_method instanceof EE_Payment_Method) { |
|
550 | - $PMD_ID = $first_payment_method->ID(); |
|
551 | - } else { |
|
552 | - EE_Error::add_error( |
|
553 | - __( |
|
554 | - 'A valid Payment Method could not be determined. Please ensure that at least one Payment Method is activated.', |
|
555 | - 'event_espresso' |
|
556 | - ), |
|
557 | - __FILE__, |
|
558 | - __LINE__, |
|
559 | - __FUNCTION__ |
|
560 | - ); |
|
561 | - } |
|
562 | - } |
|
563 | - $transaction->set_payment_method_ID($PMD_ID); |
|
564 | - $transaction->save(); |
|
565 | - } else { |
|
566 | - EE_Error::add_error( |
|
567 | - __( |
|
568 | - 'Please activate at least one Payment Method in order for things to operate correctly.', |
|
569 | - 'event_espresso' |
|
570 | - ), |
|
571 | - __FILE__, |
|
572 | - __LINE__, |
|
573 | - __FUNCTION__ |
|
574 | - ); |
|
575 | - } |
|
576 | - } |
|
577 | - } |
|
578 | - } |
|
579 | - } |
|
580 | - |
|
581 | - |
|
582 | - |
|
583 | - /********************************** DEPRECATED METHODS **********************************/ |
|
584 | - |
|
585 | - |
|
586 | - /** |
|
587 | - * @deprecated 4.9.12 |
|
588 | - * @return string |
|
589 | - */ |
|
590 | - public function old_txn_status() |
|
591 | - { |
|
592 | - EE_Error::doing_it_wrong( |
|
593 | - __METHOD__, |
|
594 | - esc_html__( |
|
595 | - 'This logic has been moved into \EE_Transaction::old_txn_status(), please use that method instead.', |
|
596 | - 'event_espresso' |
|
597 | - ), |
|
598 | - '4.9.12' |
|
599 | - ); |
|
600 | - return $this->_old_txn_status; |
|
601 | - } |
|
602 | - |
|
603 | - |
|
604 | - /** |
|
605 | - * @deprecated 4.9.12 |
|
606 | - * @param string $old_txn_status |
|
607 | - */ |
|
608 | - public function set_old_txn_status($old_txn_status) |
|
609 | - { |
|
610 | - EE_Error::doing_it_wrong( |
|
611 | - __METHOD__, |
|
612 | - esc_html__( |
|
613 | - 'This logic has been moved into \EE_Transaction::set_old_txn_status(), please use that method instead.', |
|
614 | - 'event_espresso' |
|
615 | - ), |
|
616 | - '4.9.12' |
|
617 | - ); |
|
618 | - // only set the first time |
|
619 | - if ($this->_old_txn_status === null) { |
|
620 | - $this->_old_txn_status = $old_txn_status; |
|
621 | - } |
|
622 | - } |
|
623 | - |
|
624 | - |
|
625 | - /** |
|
626 | - * @deprecated 4.9.12 |
|
627 | - * @return string |
|
628 | - */ |
|
629 | - public function new_txn_status() |
|
630 | - { |
|
631 | - EE_Error::doing_it_wrong( |
|
632 | - __METHOD__, |
|
633 | - esc_html__( |
|
634 | - 'This logic has been removed. Please just use \EE_Transaction::status_ID() instead.', |
|
635 | - 'event_espresso' |
|
636 | - ), |
|
637 | - '4.9.12' |
|
638 | - ); |
|
639 | - return $this->_new_txn_status; |
|
640 | - } |
|
641 | - |
|
642 | - |
|
643 | - /** |
|
644 | - * @deprecated 4.9.12 |
|
645 | - * @param string $new_txn_status |
|
646 | - */ |
|
647 | - public function set_new_txn_status($new_txn_status) |
|
648 | - { |
|
649 | - EE_Error::doing_it_wrong( |
|
650 | - __METHOD__, |
|
651 | - esc_html__( |
|
652 | - 'This logic has been removed. Please just use \EE_Transaction::set_status() instead.', |
|
653 | - 'event_espresso' |
|
654 | - ), |
|
655 | - '4.9.12' |
|
656 | - ); |
|
657 | - $this->_new_txn_status = $new_txn_status; |
|
658 | - } |
|
659 | - |
|
660 | - |
|
661 | - /** |
|
662 | - * reg_status_updated |
|
663 | - * |
|
664 | - * @deprecated 4.9.12 |
|
665 | - * @return bool |
|
666 | - */ |
|
667 | - public function txn_status_updated() |
|
668 | - { |
|
669 | - EE_Error::doing_it_wrong( |
|
670 | - __METHOD__, |
|
671 | - esc_html__( |
|
672 | - 'This logic has been moved into \EE_Transaction::txn_status_updated(), please use that method instead.', |
|
673 | - 'event_espresso' |
|
674 | - ), |
|
675 | - '4.9.12' |
|
676 | - ); |
|
677 | - return $this->_new_txn_status !== $this->_old_txn_status && $this->_old_txn_status !== null ? true : false; |
|
678 | - } |
|
679 | - |
|
680 | - |
|
681 | - /** |
|
682 | - * all_reg_steps_completed |
|
683 | - * returns: |
|
684 | - * true if ALL reg steps have been marked as completed |
|
685 | - * or false if any step is not completed |
|
686 | - * |
|
687 | - * @deprecated 4.9.12 |
|
688 | - * @param EE_Transaction $transaction |
|
689 | - * @return boolean |
|
690 | - */ |
|
691 | - public function all_reg_steps_completed(EE_Transaction $transaction) |
|
692 | - { |
|
693 | - EE_Error::doing_it_wrong( |
|
694 | - __METHOD__, |
|
695 | - esc_html__( |
|
696 | - 'This logic has been moved into \EE_Transaction::all_reg_steps_completed(), please use that method instead.', |
|
697 | - 'event_espresso' |
|
698 | - ), |
|
699 | - '4.9.12', |
|
700 | - '5.0.0' |
|
701 | - ); |
|
702 | - return $transaction->all_reg_steps_completed(); |
|
703 | - } |
|
704 | - |
|
705 | - |
|
706 | - /** |
|
707 | - * all_reg_steps_completed_except |
|
708 | - * returns: |
|
709 | - * true if ALL reg steps, except a particular step that you wish to skip over, have been marked as completed |
|
710 | - * or false if any other step is not completed |
|
711 | - * or false if ALL steps are completed including the exception you are testing !!! |
|
712 | - * |
|
713 | - * @deprecated 4.9.12 |
|
714 | - * @param EE_Transaction $transaction |
|
715 | - * @param string $exception |
|
716 | - * @return boolean |
|
717 | - */ |
|
718 | - public function all_reg_steps_completed_except(EE_Transaction $transaction, $exception = '') |
|
719 | - { |
|
720 | - EE_Error::doing_it_wrong( |
|
721 | - __METHOD__, |
|
722 | - esc_html__( |
|
723 | - 'This logic has been moved into \EE_Transaction::all_reg_steps_completed_except(), please use that method instead.', |
|
724 | - 'event_espresso' |
|
725 | - ), |
|
726 | - '4.9.12', |
|
727 | - '5.0.0' |
|
728 | - ); |
|
729 | - return $transaction->all_reg_steps_completed_except($exception); |
|
730 | - } |
|
731 | - |
|
732 | - |
|
733 | - /** |
|
734 | - * all_reg_steps_completed_except |
|
735 | - * returns: |
|
736 | - * true if ALL reg steps, except the final step, have been marked as completed |
|
737 | - * or false if any step is not completed |
|
738 | - * or false if ALL steps are completed including the final step !!! |
|
739 | - * |
|
740 | - * @deprecated 4.9.12 |
|
741 | - * @param EE_Transaction $transaction |
|
742 | - * @return boolean |
|
743 | - */ |
|
744 | - public function all_reg_steps_completed_except_final_step(EE_Transaction $transaction) |
|
745 | - { |
|
746 | - EE_Error::doing_it_wrong( |
|
747 | - __METHOD__, |
|
748 | - esc_html__( |
|
749 | - 'This logic has been moved into \EE_Transaction::all_reg_steps_completed_except_final_step(), please use that method instead.', |
|
750 | - 'event_espresso' |
|
751 | - ), |
|
752 | - '4.9.12', |
|
753 | - '5.0.0' |
|
754 | - ); |
|
755 | - return $transaction->all_reg_steps_completed_except_final_step(); |
|
756 | - } |
|
757 | - |
|
758 | - |
|
759 | - /** |
|
760 | - * reg_step_completed |
|
761 | - * returns: |
|
762 | - * true if a specific reg step has been marked as completed |
|
763 | - * a Unix timestamp if it has been initialized but not yet completed, |
|
764 | - * or false if it has not yet been initialized |
|
765 | - * |
|
766 | - * @deprecated 4.9.12 |
|
767 | - * @param EE_Transaction $transaction |
|
768 | - * @param string $reg_step_slug |
|
769 | - * @return boolean | int |
|
770 | - */ |
|
771 | - public function reg_step_completed(EE_Transaction $transaction, $reg_step_slug) |
|
772 | - { |
|
773 | - EE_Error::doing_it_wrong( |
|
774 | - __METHOD__, |
|
775 | - esc_html__( |
|
776 | - 'This logic has been moved into \EE_Transaction::reg_step_completed(), please use that method instead.', |
|
777 | - 'event_espresso' |
|
778 | - ), |
|
779 | - '4.9.12', |
|
780 | - '5.0.0' |
|
781 | - ); |
|
782 | - return $transaction->reg_step_completed($reg_step_slug); |
|
783 | - } |
|
784 | - |
|
785 | - |
|
786 | - /** |
|
787 | - * completed_final_reg_step |
|
788 | - * returns: |
|
789 | - * true if the finalize_registration reg step has been marked as completed |
|
790 | - * a Unix timestamp if it has been initialized but not yet completed, |
|
791 | - * or false if it has not yet been initialized |
|
792 | - * |
|
793 | - * @deprecated 4.9.12 |
|
794 | - * @param EE_Transaction $transaction |
|
795 | - * @return boolean | int |
|
796 | - */ |
|
797 | - public function final_reg_step_completed(EE_Transaction $transaction) |
|
798 | - { |
|
799 | - EE_Error::doing_it_wrong( |
|
800 | - __METHOD__, |
|
801 | - esc_html__( |
|
802 | - 'This logic has been moved into \EE_Transaction::final_reg_step_completed(), please use that method instead.', |
|
803 | - 'event_espresso' |
|
804 | - ), |
|
805 | - '4.9.12', |
|
806 | - '5.0.0' |
|
807 | - ); |
|
808 | - return $transaction->final_reg_step_completed(); |
|
809 | - } |
|
810 | - |
|
811 | - |
|
812 | - /** |
|
813 | - * set_reg_step_initiated |
|
814 | - * given a valid TXN_reg_step, this sets it's value to a unix timestamp |
|
815 | - * |
|
816 | - * @deprecated 4.9.12 |
|
817 | - * @access public |
|
818 | - * @param \EE_Transaction $transaction |
|
819 | - * @param string $reg_step_slug |
|
820 | - * @return boolean |
|
821 | - * @throws \EE_Error |
|
822 | - */ |
|
823 | - public function set_reg_step_initiated(EE_Transaction $transaction, $reg_step_slug) |
|
824 | - { |
|
825 | - EE_Error::doing_it_wrong( |
|
826 | - __METHOD__, |
|
827 | - esc_html__( |
|
828 | - 'This logic has been moved into \EE_Transaction::set_reg_step_initiated(), please use that method instead.', |
|
829 | - 'event_espresso' |
|
830 | - ), |
|
831 | - '4.9.12', |
|
832 | - '5.0.0' |
|
833 | - ); |
|
834 | - return $transaction->set_reg_step_initiated($reg_step_slug); |
|
835 | - } |
|
836 | - |
|
837 | - |
|
838 | - /** |
|
839 | - * set_reg_step_completed |
|
840 | - * given a valid TXN_reg_step, this sets the step as completed |
|
841 | - * |
|
842 | - * @deprecated 4.9.12 |
|
843 | - * @access public |
|
844 | - * @param \EE_Transaction $transaction |
|
845 | - * @param string $reg_step_slug |
|
846 | - * @return boolean |
|
847 | - * @throws \EE_Error |
|
848 | - */ |
|
849 | - public function set_reg_step_completed(EE_Transaction $transaction, $reg_step_slug) |
|
850 | - { |
|
851 | - EE_Error::doing_it_wrong( |
|
852 | - __METHOD__, |
|
853 | - esc_html__( |
|
854 | - 'This logic has been moved into \EE_Transaction::set_reg_step_completed(), please use that method instead.', |
|
855 | - 'event_espresso' |
|
856 | - ), |
|
857 | - '4.9.12', |
|
858 | - '5.0.0' |
|
859 | - ); |
|
860 | - return $transaction->set_reg_step_completed($reg_step_slug); |
|
861 | - } |
|
862 | - |
|
863 | - |
|
864 | - /** |
|
865 | - * set_reg_step_completed |
|
866 | - * given a valid TXN_reg_step slug, this sets the step as NOT completed |
|
867 | - * |
|
868 | - * @deprecated 4.9.12 |
|
869 | - * @access public |
|
870 | - * @param \EE_Transaction $transaction |
|
871 | - * @param string $reg_step_slug |
|
872 | - * @return boolean |
|
873 | - * @throws \EE_Error |
|
874 | - */ |
|
875 | - public function set_reg_step_not_completed(EE_Transaction $transaction, $reg_step_slug) |
|
876 | - { |
|
877 | - EE_Error::doing_it_wrong( |
|
878 | - __METHOD__, |
|
879 | - esc_html__( |
|
880 | - 'This logic has been moved into \EE_Transaction::set_reg_step_not_completed(), please use that method instead.', |
|
881 | - 'event_espresso' |
|
882 | - ), |
|
883 | - '4.9.12', |
|
884 | - '5.0.0' |
|
885 | - ); |
|
886 | - return $transaction->set_reg_step_not_completed($reg_step_slug); |
|
887 | - } |
|
888 | - |
|
889 | - |
|
890 | - /** |
|
891 | - * remove_reg_step |
|
892 | - * given a valid TXN_reg_step slug, this will remove (unset) |
|
893 | - * the reg step from the TXN reg step array |
|
894 | - * |
|
895 | - * @deprecated 4.9.12 |
|
896 | - * @access public |
|
897 | - * @param \EE_Transaction $transaction |
|
898 | - * @param string $reg_step_slug |
|
899 | - * @return void |
|
900 | - */ |
|
901 | - public function remove_reg_step(EE_Transaction $transaction, $reg_step_slug) |
|
902 | - { |
|
903 | - EE_Error::doing_it_wrong( |
|
904 | - __METHOD__, |
|
905 | - esc_html__( |
|
906 | - 'This logic has been moved into \EE_Transaction::remove_reg_step(), please use that method instead.', |
|
907 | - 'event_espresso' |
|
908 | - ), |
|
909 | - '4.9.12', |
|
910 | - '5.0.0' |
|
911 | - ); |
|
912 | - $transaction->remove_reg_step($reg_step_slug); |
|
913 | - } |
|
914 | - |
|
915 | - |
|
916 | - /** |
|
917 | - * toggle_failed_transaction_status |
|
918 | - * upgrades a TXNs status from failed to abandoned, |
|
919 | - * meaning that contact information has been captured for at least one registrant |
|
920 | - * |
|
921 | - * @deprecated 4.9.12 |
|
922 | - * @access public |
|
923 | - * @param EE_Transaction $transaction |
|
924 | - * @return boolean |
|
925 | - * @throws \EE_Error |
|
926 | - */ |
|
927 | - public function toggle_failed_transaction_status(EE_Transaction $transaction) |
|
928 | - { |
|
929 | - EE_Error::doing_it_wrong( |
|
930 | - __METHOD__, |
|
931 | - esc_html__( |
|
932 | - 'This logic has been moved into \EE_Transaction::toggle_failed_transaction_status(), please use that method instead.', |
|
933 | - 'event_espresso' |
|
934 | - ), |
|
935 | - '4.9.12', |
|
936 | - '5.0.0' |
|
937 | - ); |
|
938 | - return $transaction->toggle_failed_transaction_status(); |
|
939 | - } |
|
940 | - |
|
941 | - |
|
942 | - /** |
|
943 | - * toggle_abandoned_transaction_status |
|
944 | - * upgrades a TXNs status from failed or abandoned to incomplete |
|
945 | - * |
|
946 | - * @deprecated 4.9.12 |
|
947 | - * @access public |
|
948 | - * @param EE_Transaction $transaction |
|
949 | - * @return boolean |
|
950 | - */ |
|
951 | - public function toggle_abandoned_transaction_status(EE_Transaction $transaction) |
|
952 | - { |
|
953 | - EE_Error::doing_it_wrong( |
|
954 | - __METHOD__, |
|
955 | - esc_html__( |
|
956 | - 'This logic has been moved into \EE_Transaction::toggle_abandoned_transaction_status(), please use that method instead.', |
|
957 | - 'event_espresso' |
|
958 | - ), |
|
959 | - '4.9.12', |
|
960 | - '5.0.0' |
|
961 | - ); |
|
962 | - return $transaction->toggle_abandoned_transaction_status(); |
|
963 | - } |
|
20 | + /** |
|
21 | + * @var EE_Registration_Processor $_instance |
|
22 | + * @access private |
|
23 | + */ |
|
24 | + private static $_instance; |
|
25 | + |
|
26 | + /** |
|
27 | + * array of query WHERE params to use when retrieving cached registrations from a transaction |
|
28 | + * |
|
29 | + * @var array $registration_query_params |
|
30 | + * @access private |
|
31 | + */ |
|
32 | + private $_registration_query_params = array(); |
|
33 | + |
|
34 | + /** |
|
35 | + * @deprecated |
|
36 | + * @var string |
|
37 | + */ |
|
38 | + protected $_old_txn_status; |
|
39 | + |
|
40 | + /** |
|
41 | + * @deprecated |
|
42 | + * @var string |
|
43 | + */ |
|
44 | + protected $_new_txn_status; |
|
45 | + |
|
46 | + |
|
47 | + /** |
|
48 | + * @singleton method used to instantiate class object |
|
49 | + * @access public |
|
50 | + * @param array $registration_query_params |
|
51 | + * @return EE_Transaction_Processor instance |
|
52 | + */ |
|
53 | + public static function instance($registration_query_params = array()) |
|
54 | + { |
|
55 | + // check if class object is instantiated |
|
56 | + if (! self::$_instance instanceof EE_Transaction_Processor) { |
|
57 | + self::$_instance = new self($registration_query_params); |
|
58 | + } |
|
59 | + return self::$_instance; |
|
60 | + } |
|
61 | + |
|
62 | + |
|
63 | + /** |
|
64 | + * @param array $registration_query_params |
|
65 | + */ |
|
66 | + private function __construct($registration_query_params = array()) |
|
67 | + { |
|
68 | + // make sure some query params are set for retrieving registrations |
|
69 | + $this->_set_registration_query_params($registration_query_params); |
|
70 | + } |
|
71 | + |
|
72 | + |
|
73 | + /** |
|
74 | + * @access private |
|
75 | + * @param array $registration_query_params |
|
76 | + */ |
|
77 | + private function _set_registration_query_params($registration_query_params) |
|
78 | + { |
|
79 | + $this->_registration_query_params = ! empty($registration_query_params) ? $registration_query_params |
|
80 | + : array('order_by' => array('REG_count' => 'ASC')); |
|
81 | + } |
|
82 | + |
|
83 | + |
|
84 | + /** |
|
85 | + * manually_update_registration_statuses |
|
86 | + * |
|
87 | + * @access public |
|
88 | + * @param EE_Transaction $transaction |
|
89 | + * @param string $new_reg_status |
|
90 | + * @param array $registration_query_params array of query WHERE params to use |
|
91 | + * when retrieving cached registrations from a transaction |
|
92 | + * @return boolean |
|
93 | + * @throws \EE_Error |
|
94 | + */ |
|
95 | + public function manually_update_registration_statuses( |
|
96 | + EE_Transaction $transaction, |
|
97 | + $new_reg_status = '', |
|
98 | + $registration_query_params = array() |
|
99 | + ) { |
|
100 | + $status_updates = $this->_call_method_on_registrations_via_Registration_Processor( |
|
101 | + 'manually_update_registration_status', |
|
102 | + $transaction, |
|
103 | + $registration_query_params, |
|
104 | + $new_reg_status |
|
105 | + ); |
|
106 | + // send messages |
|
107 | + /** @type EE_Registration_Processor $registration_processor */ |
|
108 | + $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
|
109 | + $registration_processor->trigger_registration_update_notifications( |
|
110 | + $transaction->primary_registration(), |
|
111 | + array('manually_updated' => true) |
|
112 | + ); |
|
113 | + do_action( |
|
114 | + 'AHEE__EE_Transaction_Processor__manually_update_registration_statuses', |
|
115 | + $transaction, |
|
116 | + $status_updates |
|
117 | + ); |
|
118 | + return $status_updates; |
|
119 | + } |
|
120 | + |
|
121 | + |
|
122 | + /** |
|
123 | + * toggle_registration_statuses_for_default_approved_events |
|
124 | + * |
|
125 | + * @access public |
|
126 | + * @param EE_Transaction $transaction |
|
127 | + * @param array $registration_query_params array of query WHERE params to use |
|
128 | + * when retrieving cached registrations from a transaction |
|
129 | + * @return boolean |
|
130 | + * @throws \EE_Error |
|
131 | + */ |
|
132 | + public function toggle_registration_statuses_for_default_approved_events( |
|
133 | + EE_Transaction $transaction, |
|
134 | + $registration_query_params = array() |
|
135 | + ) { |
|
136 | + $status_updates = $this->_call_method_on_registrations_via_Registration_Processor( |
|
137 | + 'toggle_registration_status_for_default_approved_events', |
|
138 | + $transaction, |
|
139 | + $registration_query_params |
|
140 | + ); |
|
141 | + do_action( |
|
142 | + 'AHEE__EE_Transaction_Processor__toggle_registration_statuses_for_default_approved_events', |
|
143 | + $transaction, |
|
144 | + $status_updates |
|
145 | + ); |
|
146 | + return $status_updates; |
|
147 | + } |
|
148 | + |
|
149 | + |
|
150 | + /** |
|
151 | + * toggle_registration_statuses_if_no_monies_owing |
|
152 | + * |
|
153 | + * @access public |
|
154 | + * @param EE_Transaction $transaction |
|
155 | + * @param array $registration_query_params array of query WHERE params to use |
|
156 | + * when retrieving cached registrations from a transaction |
|
157 | + * @return boolean |
|
158 | + * @throws \EE_Error |
|
159 | + */ |
|
160 | + public function toggle_registration_statuses_if_no_monies_owing( |
|
161 | + EE_Transaction $transaction, |
|
162 | + $registration_query_params = array() |
|
163 | + ) { |
|
164 | + $status_updates = $this->_call_method_on_registrations_via_Registration_Processor( |
|
165 | + 'toggle_registration_status_if_no_monies_owing', |
|
166 | + $transaction, |
|
167 | + $registration_query_params |
|
168 | + ); |
|
169 | + do_action( |
|
170 | + 'AHEE__EE_Transaction_Processor__toggle_registration_statuses_if_no_monies_owing', |
|
171 | + $transaction, |
|
172 | + $status_updates |
|
173 | + ); |
|
174 | + return $status_updates; |
|
175 | + } |
|
176 | + |
|
177 | + |
|
178 | + /** |
|
179 | + * update_transaction_and_registrations_after_checkout_or_payment |
|
180 | + * cycles thru related registrations and calls update_registration_after_checkout_or_payment() on each |
|
181 | + * |
|
182 | + * @param EE_Transaction $transaction |
|
183 | + * @param \EE_Payment | NULL $payment |
|
184 | + * @param array $registration_query_params array of query WHERE params to use |
|
185 | + * when retrieving cached registrations from a transaction |
|
186 | + * @param bool $trigger_notifications whether or not to call |
|
187 | + * \EE_Registration_Processor::trigger_registration_update_notifications() |
|
188 | + * @return array |
|
189 | + * @throws \EE_Error |
|
190 | + */ |
|
191 | + public function update_transaction_and_registrations_after_checkout_or_payment( |
|
192 | + EE_Transaction $transaction, |
|
193 | + $payment = null, |
|
194 | + $registration_query_params = array(), |
|
195 | + $trigger_notifications = true |
|
196 | + ) { |
|
197 | + // make sure some query params are set for retrieving registrations |
|
198 | + $this->_set_registration_query_params($registration_query_params); |
|
199 | + // get final reg step status |
|
200 | + $finalized = $transaction->final_reg_step_completed(); |
|
201 | + // if the 'finalize_registration' step has been initiated (has a timestamp) |
|
202 | + // but has not yet been fully completed (TRUE) |
|
203 | + if (is_int($finalized) && $finalized !== false && $finalized !== true) { |
|
204 | + $transaction->set_reg_step_completed('finalize_registration'); |
|
205 | + $finalized = true; |
|
206 | + } |
|
207 | + $transaction->save(); |
|
208 | + // array of details to aid in decision making by systems |
|
209 | + $update_params = array( |
|
210 | + 'old_txn_status' => $transaction->old_txn_status(), |
|
211 | + 'new_txn_status' => $transaction->status_ID(), |
|
212 | + 'finalized' => $finalized, |
|
213 | + 'revisit' => $this->_revisit, |
|
214 | + 'payment_updates' => $payment instanceof EE_Payment ? true : false, |
|
215 | + 'last_payment' => $payment, |
|
216 | + ); |
|
217 | + // now update the registrations and add the results to our $update_params |
|
218 | + $update_params['status_updates'] = $this->_call_method_on_registrations_via_Registration_Processor( |
|
219 | + 'update_registration_after_checkout_or_payment', |
|
220 | + $transaction, |
|
221 | + $this->_registration_query_params, |
|
222 | + $update_params |
|
223 | + ); |
|
224 | + if ($trigger_notifications) { |
|
225 | + // send messages |
|
226 | + /** @type EE_Registration_Processor $registration_processor */ |
|
227 | + $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
|
228 | + $registration_processor->trigger_registration_update_notifications( |
|
229 | + $transaction->primary_registration(), |
|
230 | + $update_params |
|
231 | + ); |
|
232 | + } |
|
233 | + do_action( |
|
234 | + 'AHEE__EE_Transaction_Processor__update_transaction_and_registrations_after_checkout_or_payment', |
|
235 | + $transaction, |
|
236 | + $update_params |
|
237 | + ); |
|
238 | + return $update_params; |
|
239 | + } |
|
240 | + |
|
241 | + |
|
242 | + /** |
|
243 | + * update_transaction_after_registration_reopened |
|
244 | + * readjusts TXN and Line Item totals after a registration is changed from |
|
245 | + * cancelled or declined to another reg status such as pending payment or approved |
|
246 | + * |
|
247 | + * @param \EE_Registration $registration |
|
248 | + * @param array $closed_reg_statuses |
|
249 | + * @param bool $update_txn |
|
250 | + * @return bool |
|
251 | + * @throws \EE_Error |
|
252 | + */ |
|
253 | + public function update_transaction_after_reinstating_canceled_registration( |
|
254 | + EE_Registration $registration, |
|
255 | + $closed_reg_statuses = array(), |
|
256 | + $update_txn = true |
|
257 | + ) { |
|
258 | + // these reg statuses should not be considered in any calculations involving monies owing |
|
259 | + $closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses |
|
260 | + : EEM_Registration::closed_reg_statuses(); |
|
261 | + if (in_array($registration->status_ID(), $closed_reg_statuses, true)) { |
|
262 | + return false; |
|
263 | + } |
|
264 | + try { |
|
265 | + $transaction = $this->get_transaction_for_registration($registration); |
|
266 | + $ticket_line_item = $this->get_ticket_line_item_for_transaction_registration( |
|
267 | + $transaction, |
|
268 | + $registration |
|
269 | + ); |
|
270 | + // un-cancel the ticket |
|
271 | + $success = EEH_Line_Item::reinstate_canceled_ticket_line_item($ticket_line_item); |
|
272 | + } catch (EE_Error $e) { |
|
273 | + EE_Error::add_error( |
|
274 | + sprintf( |
|
275 | + __( |
|
276 | + 'The Ticket Line Item for Registration %1$d could not be reinstated because :%2$s%3$s', |
|
277 | + 'event_espresso' |
|
278 | + ), |
|
279 | + $registration->ID(), |
|
280 | + '<br />', |
|
281 | + $e->getMessage() |
|
282 | + ), |
|
283 | + __FILE__, |
|
284 | + __FUNCTION__, |
|
285 | + __LINE__ |
|
286 | + ); |
|
287 | + return false; |
|
288 | + } |
|
289 | + if ($update_txn) { |
|
290 | + return $transaction->save() ? $success : false; |
|
291 | + } |
|
292 | + return $success; |
|
293 | + } |
|
294 | + |
|
295 | + |
|
296 | + /** |
|
297 | + * update_transaction_after_canceled_or_declined_registration |
|
298 | + * readjusts TXN and Line Item totals after a registration is cancelled or declined |
|
299 | + * |
|
300 | + * @param \EE_Registration $registration |
|
301 | + * @param array $closed_reg_statuses |
|
302 | + * @param bool $update_txn |
|
303 | + * @return bool |
|
304 | + * @throws \EE_Error |
|
305 | + */ |
|
306 | + public function update_transaction_after_canceled_or_declined_registration( |
|
307 | + EE_Registration $registration, |
|
308 | + $closed_reg_statuses = array(), |
|
309 | + $update_txn = true |
|
310 | + ) { |
|
311 | + // these reg statuses should not be considered in any calculations involving monies owing |
|
312 | + $closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses |
|
313 | + : EEM_Registration::closed_reg_statuses(); |
|
314 | + if (! in_array($registration->status_ID(), $closed_reg_statuses, true)) { |
|
315 | + return false; |
|
316 | + } |
|
317 | + try { |
|
318 | + $transaction = $this->get_transaction_for_registration($registration); |
|
319 | + if (apply_filters( |
|
320 | + 'FHEE__EE_Transaction_Processor__update_transaction_after_canceled_or_declined_registration__cancel_ticket_line_item', |
|
321 | + true, |
|
322 | + $registration, |
|
323 | + $transaction |
|
324 | + )) { |
|
325 | + $ticket_line_item = $this->get_ticket_line_item_for_transaction_registration( |
|
326 | + $transaction, |
|
327 | + $registration |
|
328 | + ); |
|
329 | + EEH_Line_Item::cancel_ticket_line_item($ticket_line_item); |
|
330 | + } |
|
331 | + } catch (EE_Error $e) { |
|
332 | + EE_Error::add_error( |
|
333 | + sprintf( |
|
334 | + __( |
|
335 | + 'The Ticket Line Item for Registration %1$d could not be cancelled because :%2$s%3$s', |
|
336 | + 'event_espresso' |
|
337 | + ), |
|
338 | + $registration->ID(), |
|
339 | + '<br />', |
|
340 | + $e->getMessage() |
|
341 | + ), |
|
342 | + __FILE__, |
|
343 | + __FUNCTION__, |
|
344 | + __LINE__ |
|
345 | + ); |
|
346 | + return false; |
|
347 | + } |
|
348 | + if ($update_txn) { |
|
349 | + return $transaction->save() ? true : false; |
|
350 | + } |
|
351 | + return true; |
|
352 | + } |
|
353 | + |
|
354 | + |
|
355 | + /** |
|
356 | + * get_transaction_for_registration |
|
357 | + * |
|
358 | + * @access public |
|
359 | + * @param EE_Registration $registration |
|
360 | + * @return EE_Transaction |
|
361 | + * @throws EE_Error |
|
362 | + */ |
|
363 | + public function get_transaction_for_registration(EE_Registration $registration) |
|
364 | + { |
|
365 | + $transaction = $registration->transaction(); |
|
366 | + if (! $transaction instanceof EE_Transaction) { |
|
367 | + throw new EE_Error( |
|
368 | + sprintf( |
|
369 | + __('The Transaction for Registration %1$d was not found or is invalid.', 'event_espresso'), |
|
370 | + $registration->ID() |
|
371 | + ) |
|
372 | + ); |
|
373 | + } |
|
374 | + return $transaction; |
|
375 | + } |
|
376 | + |
|
377 | + |
|
378 | + /** |
|
379 | + * get_ticket_line_item_for_transaction_registration |
|
380 | + * |
|
381 | + * @access public |
|
382 | + * @param EE_Transaction $transaction |
|
383 | + * @param EE_Registration $registration |
|
384 | + * @return EE_Line_Item |
|
385 | + * @throws EE_Error |
|
386 | + */ |
|
387 | + public function get_ticket_line_item_for_transaction_registration( |
|
388 | + EE_Transaction $transaction, |
|
389 | + EE_Registration $registration |
|
390 | + ) { |
|
391 | + EE_Registry::instance()->load_helper('Line_Item'); |
|
392 | + $ticket_line_item = EEM_Line_Item::instance()->get_ticket_line_item_for_transaction( |
|
393 | + $transaction->ID(), |
|
394 | + $registration->ticket_ID() |
|
395 | + ); |
|
396 | + if (! $ticket_line_item instanceof EE_Line_Item) { |
|
397 | + throw new EE_Error( |
|
398 | + sprintf( |
|
399 | + __( |
|
400 | + 'The Line Item for Transaction %1$d and Ticket %2$d was not found or is invalid.', |
|
401 | + 'event_espresso' |
|
402 | + ), |
|
403 | + $transaction->ID(), |
|
404 | + $registration->ticket_ID() |
|
405 | + ) |
|
406 | + ); |
|
407 | + } |
|
408 | + return $ticket_line_item; |
|
409 | + } |
|
410 | + |
|
411 | + |
|
412 | + /** |
|
413 | + * cancel_transaction_if_all_registrations_canceled |
|
414 | + * cycles thru related registrations and checks their statuses |
|
415 | + * if ALL registrations are Cancelled or Declined, then this sets the TXN status to |
|
416 | + * |
|
417 | + * @access public |
|
418 | + * @param EE_Transaction $transaction |
|
419 | + * @param string $new_TXN_status |
|
420 | + * @param array $registration_query_params - array of query WHERE params to use when |
|
421 | + * retrieving cached registrations from a transaction |
|
422 | + * @param array $closed_reg_statuses |
|
423 | + * @param bool $update_txn |
|
424 | + * @return bool true if TXN status was updated, false if not |
|
425 | + */ |
|
426 | + public function toggle_transaction_status_if_all_registrations_canceled_or_declined( |
|
427 | + EE_Transaction $transaction, |
|
428 | + $new_TXN_status = '', |
|
429 | + $registration_query_params = array(), |
|
430 | + $closed_reg_statuses = array(), |
|
431 | + $update_txn = true |
|
432 | + ) { |
|
433 | + // make sure some query params are set for retrieving registrations |
|
434 | + $this->_set_registration_query_params($registration_query_params); |
|
435 | + // these reg statuses should not be considered in any calculations involving monies owing |
|
436 | + $closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses |
|
437 | + : EEM_Registration::closed_reg_statuses(); |
|
438 | + // loop through cached registrations |
|
439 | + foreach ($transaction->registrations($this->_registration_query_params) as $registration) { |
|
440 | + if ($registration instanceof EE_Registration |
|
441 | + && ! in_array($registration->status_ID(), $closed_reg_statuses) |
|
442 | + ) { |
|
443 | + return false; |
|
444 | + } |
|
445 | + } |
|
446 | + if (in_array($new_TXN_status, EEM_Transaction::txn_status_array())) { |
|
447 | + $transaction->set_status($new_TXN_status); |
|
448 | + } |
|
449 | + if ($update_txn) { |
|
450 | + return $transaction->save() ? true : false; |
|
451 | + } |
|
452 | + return true; |
|
453 | + } |
|
454 | + |
|
455 | + |
|
456 | + /** |
|
457 | + * _call_method_on_registrations_via_Registration_Processor |
|
458 | + * cycles thru related registrations and calls the requested method on each |
|
459 | + * |
|
460 | + * @access private |
|
461 | + * @param string $method_name |
|
462 | + * @param EE_Transaction $transaction |
|
463 | + * @param array $registration_query_params array of query WHERE params to use |
|
464 | + * when retrieving cached registrations from a transaction |
|
465 | + * @param string $additional_param |
|
466 | + * @throws \EE_Error |
|
467 | + * @return boolean |
|
468 | + */ |
|
469 | + private function _call_method_on_registrations_via_Registration_Processor( |
|
470 | + $method_name, |
|
471 | + EE_Transaction $transaction, |
|
472 | + $registration_query_params = array(), |
|
473 | + $additional_param = null |
|
474 | + ) { |
|
475 | + $response = false; |
|
476 | + /** @type EE_Registration_Processor $registration_processor */ |
|
477 | + $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
|
478 | + // check that method exists |
|
479 | + if (! method_exists($registration_processor, $method_name)) { |
|
480 | + throw new EE_Error(__('Method does not exist.', 'event_espresso')); |
|
481 | + } |
|
482 | + // make sure some query params are set for retrieving registrations |
|
483 | + $this->_set_registration_query_params($registration_query_params); |
|
484 | + // loop through cached registrations |
|
485 | + foreach ($transaction->registrations($this->_registration_query_params) as $registration) { |
|
486 | + if ($registration instanceof EE_Registration) { |
|
487 | + if ($additional_param) { |
|
488 | + $response = $registration_processor->{$method_name}($registration, $additional_param) |
|
489 | + ? true |
|
490 | + : $response; |
|
491 | + } else { |
|
492 | + $response = $registration_processor->{$method_name}($registration) |
|
493 | + ? true |
|
494 | + : $response; |
|
495 | + } |
|
496 | + } |
|
497 | + } |
|
498 | + return $response; |
|
499 | + } |
|
500 | + |
|
501 | + |
|
502 | + /** |
|
503 | + * set_transaction_payment_method_based_on_registration_statuses |
|
504 | + * sets or unsets the PMD_ID field on the TXN based on the related REG statuses |
|
505 | + * basically if ALL Registrations are "Not Approved", then the EE_Transaction.PMD_ID is set to null, |
|
506 | + * but if any Registration has a different status, then EE_Transaction.PMD_ID is set to either: |
|
507 | + * the first "default" Payment Method |
|
508 | + * the first active Payment Method |
|
509 | + * whichever is found first. |
|
510 | + * |
|
511 | + * @param EE_Registration $edited_registration |
|
512 | + * @return void |
|
513 | + * @throws \EE_Error |
|
514 | + */ |
|
515 | + public function set_transaction_payment_method_based_on_registration_statuses( |
|
516 | + EE_Registration $edited_registration |
|
517 | + ) { |
|
518 | + if ($edited_registration instanceof EE_Registration) { |
|
519 | + $transaction = $edited_registration->transaction(); |
|
520 | + if ($transaction instanceof EE_Transaction) { |
|
521 | + $all_not_approved = true; |
|
522 | + foreach ($transaction->registrations() as $registration) { |
|
523 | + if ($registration instanceof EE_Registration) { |
|
524 | + // if any REG != "Not Approved" then toggle to false |
|
525 | + $all_not_approved = $registration->is_not_approved() ? $all_not_approved : false; |
|
526 | + } |
|
527 | + } |
|
528 | + // if ALL Registrations are "Not Approved" |
|
529 | + if ($all_not_approved) { |
|
530 | + $transaction->set_payment_method_ID(null); |
|
531 | + $transaction->save(); |
|
532 | + } else { |
|
533 | + $available_payment_methods = EEM_Payment_Method::instance()->get_all_for_transaction( |
|
534 | + $transaction, |
|
535 | + EEM_Payment_Method::scope_cart |
|
536 | + ); |
|
537 | + if (! empty($available_payment_methods)) { |
|
538 | + $PMD_ID = 0; |
|
539 | + foreach ($available_payment_methods as $available_payment_method) { |
|
540 | + if ($available_payment_method instanceof EE_Payment_Method |
|
541 | + && $available_payment_method->open_by_default() |
|
542 | + ) { |
|
543 | + $PMD_ID = $available_payment_method->ID(); |
|
544 | + break; |
|
545 | + } |
|
546 | + } |
|
547 | + if (! $PMD_ID) { |
|
548 | + $first_payment_method = reset($available_payment_methods); |
|
549 | + if ($first_payment_method instanceof EE_Payment_Method) { |
|
550 | + $PMD_ID = $first_payment_method->ID(); |
|
551 | + } else { |
|
552 | + EE_Error::add_error( |
|
553 | + __( |
|
554 | + 'A valid Payment Method could not be determined. Please ensure that at least one Payment Method is activated.', |
|
555 | + 'event_espresso' |
|
556 | + ), |
|
557 | + __FILE__, |
|
558 | + __LINE__, |
|
559 | + __FUNCTION__ |
|
560 | + ); |
|
561 | + } |
|
562 | + } |
|
563 | + $transaction->set_payment_method_ID($PMD_ID); |
|
564 | + $transaction->save(); |
|
565 | + } else { |
|
566 | + EE_Error::add_error( |
|
567 | + __( |
|
568 | + 'Please activate at least one Payment Method in order for things to operate correctly.', |
|
569 | + 'event_espresso' |
|
570 | + ), |
|
571 | + __FILE__, |
|
572 | + __LINE__, |
|
573 | + __FUNCTION__ |
|
574 | + ); |
|
575 | + } |
|
576 | + } |
|
577 | + } |
|
578 | + } |
|
579 | + } |
|
580 | + |
|
581 | + |
|
582 | + |
|
583 | + /********************************** DEPRECATED METHODS **********************************/ |
|
584 | + |
|
585 | + |
|
586 | + /** |
|
587 | + * @deprecated 4.9.12 |
|
588 | + * @return string |
|
589 | + */ |
|
590 | + public function old_txn_status() |
|
591 | + { |
|
592 | + EE_Error::doing_it_wrong( |
|
593 | + __METHOD__, |
|
594 | + esc_html__( |
|
595 | + 'This logic has been moved into \EE_Transaction::old_txn_status(), please use that method instead.', |
|
596 | + 'event_espresso' |
|
597 | + ), |
|
598 | + '4.9.12' |
|
599 | + ); |
|
600 | + return $this->_old_txn_status; |
|
601 | + } |
|
602 | + |
|
603 | + |
|
604 | + /** |
|
605 | + * @deprecated 4.9.12 |
|
606 | + * @param string $old_txn_status |
|
607 | + */ |
|
608 | + public function set_old_txn_status($old_txn_status) |
|
609 | + { |
|
610 | + EE_Error::doing_it_wrong( |
|
611 | + __METHOD__, |
|
612 | + esc_html__( |
|
613 | + 'This logic has been moved into \EE_Transaction::set_old_txn_status(), please use that method instead.', |
|
614 | + 'event_espresso' |
|
615 | + ), |
|
616 | + '4.9.12' |
|
617 | + ); |
|
618 | + // only set the first time |
|
619 | + if ($this->_old_txn_status === null) { |
|
620 | + $this->_old_txn_status = $old_txn_status; |
|
621 | + } |
|
622 | + } |
|
623 | + |
|
624 | + |
|
625 | + /** |
|
626 | + * @deprecated 4.9.12 |
|
627 | + * @return string |
|
628 | + */ |
|
629 | + public function new_txn_status() |
|
630 | + { |
|
631 | + EE_Error::doing_it_wrong( |
|
632 | + __METHOD__, |
|
633 | + esc_html__( |
|
634 | + 'This logic has been removed. Please just use \EE_Transaction::status_ID() instead.', |
|
635 | + 'event_espresso' |
|
636 | + ), |
|
637 | + '4.9.12' |
|
638 | + ); |
|
639 | + return $this->_new_txn_status; |
|
640 | + } |
|
641 | + |
|
642 | + |
|
643 | + /** |
|
644 | + * @deprecated 4.9.12 |
|
645 | + * @param string $new_txn_status |
|
646 | + */ |
|
647 | + public function set_new_txn_status($new_txn_status) |
|
648 | + { |
|
649 | + EE_Error::doing_it_wrong( |
|
650 | + __METHOD__, |
|
651 | + esc_html__( |
|
652 | + 'This logic has been removed. Please just use \EE_Transaction::set_status() instead.', |
|
653 | + 'event_espresso' |
|
654 | + ), |
|
655 | + '4.9.12' |
|
656 | + ); |
|
657 | + $this->_new_txn_status = $new_txn_status; |
|
658 | + } |
|
659 | + |
|
660 | + |
|
661 | + /** |
|
662 | + * reg_status_updated |
|
663 | + * |
|
664 | + * @deprecated 4.9.12 |
|
665 | + * @return bool |
|
666 | + */ |
|
667 | + public function txn_status_updated() |
|
668 | + { |
|
669 | + EE_Error::doing_it_wrong( |
|
670 | + __METHOD__, |
|
671 | + esc_html__( |
|
672 | + 'This logic has been moved into \EE_Transaction::txn_status_updated(), please use that method instead.', |
|
673 | + 'event_espresso' |
|
674 | + ), |
|
675 | + '4.9.12' |
|
676 | + ); |
|
677 | + return $this->_new_txn_status !== $this->_old_txn_status && $this->_old_txn_status !== null ? true : false; |
|
678 | + } |
|
679 | + |
|
680 | + |
|
681 | + /** |
|
682 | + * all_reg_steps_completed |
|
683 | + * returns: |
|
684 | + * true if ALL reg steps have been marked as completed |
|
685 | + * or false if any step is not completed |
|
686 | + * |
|
687 | + * @deprecated 4.9.12 |
|
688 | + * @param EE_Transaction $transaction |
|
689 | + * @return boolean |
|
690 | + */ |
|
691 | + public function all_reg_steps_completed(EE_Transaction $transaction) |
|
692 | + { |
|
693 | + EE_Error::doing_it_wrong( |
|
694 | + __METHOD__, |
|
695 | + esc_html__( |
|
696 | + 'This logic has been moved into \EE_Transaction::all_reg_steps_completed(), please use that method instead.', |
|
697 | + 'event_espresso' |
|
698 | + ), |
|
699 | + '4.9.12', |
|
700 | + '5.0.0' |
|
701 | + ); |
|
702 | + return $transaction->all_reg_steps_completed(); |
|
703 | + } |
|
704 | + |
|
705 | + |
|
706 | + /** |
|
707 | + * all_reg_steps_completed_except |
|
708 | + * returns: |
|
709 | + * true if ALL reg steps, except a particular step that you wish to skip over, have been marked as completed |
|
710 | + * or false if any other step is not completed |
|
711 | + * or false if ALL steps are completed including the exception you are testing !!! |
|
712 | + * |
|
713 | + * @deprecated 4.9.12 |
|
714 | + * @param EE_Transaction $transaction |
|
715 | + * @param string $exception |
|
716 | + * @return boolean |
|
717 | + */ |
|
718 | + public function all_reg_steps_completed_except(EE_Transaction $transaction, $exception = '') |
|
719 | + { |
|
720 | + EE_Error::doing_it_wrong( |
|
721 | + __METHOD__, |
|
722 | + esc_html__( |
|
723 | + 'This logic has been moved into \EE_Transaction::all_reg_steps_completed_except(), please use that method instead.', |
|
724 | + 'event_espresso' |
|
725 | + ), |
|
726 | + '4.9.12', |
|
727 | + '5.0.0' |
|
728 | + ); |
|
729 | + return $transaction->all_reg_steps_completed_except($exception); |
|
730 | + } |
|
731 | + |
|
732 | + |
|
733 | + /** |
|
734 | + * all_reg_steps_completed_except |
|
735 | + * returns: |
|
736 | + * true if ALL reg steps, except the final step, have been marked as completed |
|
737 | + * or false if any step is not completed |
|
738 | + * or false if ALL steps are completed including the final step !!! |
|
739 | + * |
|
740 | + * @deprecated 4.9.12 |
|
741 | + * @param EE_Transaction $transaction |
|
742 | + * @return boolean |
|
743 | + */ |
|
744 | + public function all_reg_steps_completed_except_final_step(EE_Transaction $transaction) |
|
745 | + { |
|
746 | + EE_Error::doing_it_wrong( |
|
747 | + __METHOD__, |
|
748 | + esc_html__( |
|
749 | + 'This logic has been moved into \EE_Transaction::all_reg_steps_completed_except_final_step(), please use that method instead.', |
|
750 | + 'event_espresso' |
|
751 | + ), |
|
752 | + '4.9.12', |
|
753 | + '5.0.0' |
|
754 | + ); |
|
755 | + return $transaction->all_reg_steps_completed_except_final_step(); |
|
756 | + } |
|
757 | + |
|
758 | + |
|
759 | + /** |
|
760 | + * reg_step_completed |
|
761 | + * returns: |
|
762 | + * true if a specific reg step has been marked as completed |
|
763 | + * a Unix timestamp if it has been initialized but not yet completed, |
|
764 | + * or false if it has not yet been initialized |
|
765 | + * |
|
766 | + * @deprecated 4.9.12 |
|
767 | + * @param EE_Transaction $transaction |
|
768 | + * @param string $reg_step_slug |
|
769 | + * @return boolean | int |
|
770 | + */ |
|
771 | + public function reg_step_completed(EE_Transaction $transaction, $reg_step_slug) |
|
772 | + { |
|
773 | + EE_Error::doing_it_wrong( |
|
774 | + __METHOD__, |
|
775 | + esc_html__( |
|
776 | + 'This logic has been moved into \EE_Transaction::reg_step_completed(), please use that method instead.', |
|
777 | + 'event_espresso' |
|
778 | + ), |
|
779 | + '4.9.12', |
|
780 | + '5.0.0' |
|
781 | + ); |
|
782 | + return $transaction->reg_step_completed($reg_step_slug); |
|
783 | + } |
|
784 | + |
|
785 | + |
|
786 | + /** |
|
787 | + * completed_final_reg_step |
|
788 | + * returns: |
|
789 | + * true if the finalize_registration reg step has been marked as completed |
|
790 | + * a Unix timestamp if it has been initialized but not yet completed, |
|
791 | + * or false if it has not yet been initialized |
|
792 | + * |
|
793 | + * @deprecated 4.9.12 |
|
794 | + * @param EE_Transaction $transaction |
|
795 | + * @return boolean | int |
|
796 | + */ |
|
797 | + public function final_reg_step_completed(EE_Transaction $transaction) |
|
798 | + { |
|
799 | + EE_Error::doing_it_wrong( |
|
800 | + __METHOD__, |
|
801 | + esc_html__( |
|
802 | + 'This logic has been moved into \EE_Transaction::final_reg_step_completed(), please use that method instead.', |
|
803 | + 'event_espresso' |
|
804 | + ), |
|
805 | + '4.9.12', |
|
806 | + '5.0.0' |
|
807 | + ); |
|
808 | + return $transaction->final_reg_step_completed(); |
|
809 | + } |
|
810 | + |
|
811 | + |
|
812 | + /** |
|
813 | + * set_reg_step_initiated |
|
814 | + * given a valid TXN_reg_step, this sets it's value to a unix timestamp |
|
815 | + * |
|
816 | + * @deprecated 4.9.12 |
|
817 | + * @access public |
|
818 | + * @param \EE_Transaction $transaction |
|
819 | + * @param string $reg_step_slug |
|
820 | + * @return boolean |
|
821 | + * @throws \EE_Error |
|
822 | + */ |
|
823 | + public function set_reg_step_initiated(EE_Transaction $transaction, $reg_step_slug) |
|
824 | + { |
|
825 | + EE_Error::doing_it_wrong( |
|
826 | + __METHOD__, |
|
827 | + esc_html__( |
|
828 | + 'This logic has been moved into \EE_Transaction::set_reg_step_initiated(), please use that method instead.', |
|
829 | + 'event_espresso' |
|
830 | + ), |
|
831 | + '4.9.12', |
|
832 | + '5.0.0' |
|
833 | + ); |
|
834 | + return $transaction->set_reg_step_initiated($reg_step_slug); |
|
835 | + } |
|
836 | + |
|
837 | + |
|
838 | + /** |
|
839 | + * set_reg_step_completed |
|
840 | + * given a valid TXN_reg_step, this sets the step as completed |
|
841 | + * |
|
842 | + * @deprecated 4.9.12 |
|
843 | + * @access public |
|
844 | + * @param \EE_Transaction $transaction |
|
845 | + * @param string $reg_step_slug |
|
846 | + * @return boolean |
|
847 | + * @throws \EE_Error |
|
848 | + */ |
|
849 | + public function set_reg_step_completed(EE_Transaction $transaction, $reg_step_slug) |
|
850 | + { |
|
851 | + EE_Error::doing_it_wrong( |
|
852 | + __METHOD__, |
|
853 | + esc_html__( |
|
854 | + 'This logic has been moved into \EE_Transaction::set_reg_step_completed(), please use that method instead.', |
|
855 | + 'event_espresso' |
|
856 | + ), |
|
857 | + '4.9.12', |
|
858 | + '5.0.0' |
|
859 | + ); |
|
860 | + return $transaction->set_reg_step_completed($reg_step_slug); |
|
861 | + } |
|
862 | + |
|
863 | + |
|
864 | + /** |
|
865 | + * set_reg_step_completed |
|
866 | + * given a valid TXN_reg_step slug, this sets the step as NOT completed |
|
867 | + * |
|
868 | + * @deprecated 4.9.12 |
|
869 | + * @access public |
|
870 | + * @param \EE_Transaction $transaction |
|
871 | + * @param string $reg_step_slug |
|
872 | + * @return boolean |
|
873 | + * @throws \EE_Error |
|
874 | + */ |
|
875 | + public function set_reg_step_not_completed(EE_Transaction $transaction, $reg_step_slug) |
|
876 | + { |
|
877 | + EE_Error::doing_it_wrong( |
|
878 | + __METHOD__, |
|
879 | + esc_html__( |
|
880 | + 'This logic has been moved into \EE_Transaction::set_reg_step_not_completed(), please use that method instead.', |
|
881 | + 'event_espresso' |
|
882 | + ), |
|
883 | + '4.9.12', |
|
884 | + '5.0.0' |
|
885 | + ); |
|
886 | + return $transaction->set_reg_step_not_completed($reg_step_slug); |
|
887 | + } |
|
888 | + |
|
889 | + |
|
890 | + /** |
|
891 | + * remove_reg_step |
|
892 | + * given a valid TXN_reg_step slug, this will remove (unset) |
|
893 | + * the reg step from the TXN reg step array |
|
894 | + * |
|
895 | + * @deprecated 4.9.12 |
|
896 | + * @access public |
|
897 | + * @param \EE_Transaction $transaction |
|
898 | + * @param string $reg_step_slug |
|
899 | + * @return void |
|
900 | + */ |
|
901 | + public function remove_reg_step(EE_Transaction $transaction, $reg_step_slug) |
|
902 | + { |
|
903 | + EE_Error::doing_it_wrong( |
|
904 | + __METHOD__, |
|
905 | + esc_html__( |
|
906 | + 'This logic has been moved into \EE_Transaction::remove_reg_step(), please use that method instead.', |
|
907 | + 'event_espresso' |
|
908 | + ), |
|
909 | + '4.9.12', |
|
910 | + '5.0.0' |
|
911 | + ); |
|
912 | + $transaction->remove_reg_step($reg_step_slug); |
|
913 | + } |
|
914 | + |
|
915 | + |
|
916 | + /** |
|
917 | + * toggle_failed_transaction_status |
|
918 | + * upgrades a TXNs status from failed to abandoned, |
|
919 | + * meaning that contact information has been captured for at least one registrant |
|
920 | + * |
|
921 | + * @deprecated 4.9.12 |
|
922 | + * @access public |
|
923 | + * @param EE_Transaction $transaction |
|
924 | + * @return boolean |
|
925 | + * @throws \EE_Error |
|
926 | + */ |
|
927 | + public function toggle_failed_transaction_status(EE_Transaction $transaction) |
|
928 | + { |
|
929 | + EE_Error::doing_it_wrong( |
|
930 | + __METHOD__, |
|
931 | + esc_html__( |
|
932 | + 'This logic has been moved into \EE_Transaction::toggle_failed_transaction_status(), please use that method instead.', |
|
933 | + 'event_espresso' |
|
934 | + ), |
|
935 | + '4.9.12', |
|
936 | + '5.0.0' |
|
937 | + ); |
|
938 | + return $transaction->toggle_failed_transaction_status(); |
|
939 | + } |
|
940 | + |
|
941 | + |
|
942 | + /** |
|
943 | + * toggle_abandoned_transaction_status |
|
944 | + * upgrades a TXNs status from failed or abandoned to incomplete |
|
945 | + * |
|
946 | + * @deprecated 4.9.12 |
|
947 | + * @access public |
|
948 | + * @param EE_Transaction $transaction |
|
949 | + * @return boolean |
|
950 | + */ |
|
951 | + public function toggle_abandoned_transaction_status(EE_Transaction $transaction) |
|
952 | + { |
|
953 | + EE_Error::doing_it_wrong( |
|
954 | + __METHOD__, |
|
955 | + esc_html__( |
|
956 | + 'This logic has been moved into \EE_Transaction::toggle_abandoned_transaction_status(), please use that method instead.', |
|
957 | + 'event_espresso' |
|
958 | + ), |
|
959 | + '4.9.12', |
|
960 | + '5.0.0' |
|
961 | + ); |
|
962 | + return $transaction->toggle_abandoned_transaction_status(); |
|
963 | + } |
|
964 | 964 | } |
@@ -53,7 +53,7 @@ discard block |
||
53 | 53 | public static function instance($registration_query_params = array()) |
54 | 54 | { |
55 | 55 | // check if class object is instantiated |
56 | - if (! self::$_instance instanceof EE_Transaction_Processor) { |
|
56 | + if ( ! self::$_instance instanceof EE_Transaction_Processor) { |
|
57 | 57 | self::$_instance = new self($registration_query_params); |
58 | 58 | } |
59 | 59 | return self::$_instance; |
@@ -311,7 +311,7 @@ discard block |
||
311 | 311 | // these reg statuses should not be considered in any calculations involving monies owing |
312 | 312 | $closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses |
313 | 313 | : EEM_Registration::closed_reg_statuses(); |
314 | - if (! in_array($registration->status_ID(), $closed_reg_statuses, true)) { |
|
314 | + if ( ! in_array($registration->status_ID(), $closed_reg_statuses, true)) { |
|
315 | 315 | return false; |
316 | 316 | } |
317 | 317 | try { |
@@ -363,7 +363,7 @@ discard block |
||
363 | 363 | public function get_transaction_for_registration(EE_Registration $registration) |
364 | 364 | { |
365 | 365 | $transaction = $registration->transaction(); |
366 | - if (! $transaction instanceof EE_Transaction) { |
|
366 | + if ( ! $transaction instanceof EE_Transaction) { |
|
367 | 367 | throw new EE_Error( |
368 | 368 | sprintf( |
369 | 369 | __('The Transaction for Registration %1$d was not found or is invalid.', 'event_espresso'), |
@@ -393,7 +393,7 @@ discard block |
||
393 | 393 | $transaction->ID(), |
394 | 394 | $registration->ticket_ID() |
395 | 395 | ); |
396 | - if (! $ticket_line_item instanceof EE_Line_Item) { |
|
396 | + if ( ! $ticket_line_item instanceof EE_Line_Item) { |
|
397 | 397 | throw new EE_Error( |
398 | 398 | sprintf( |
399 | 399 | __( |
@@ -476,7 +476,7 @@ discard block |
||
476 | 476 | /** @type EE_Registration_Processor $registration_processor */ |
477 | 477 | $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
478 | 478 | // check that method exists |
479 | - if (! method_exists($registration_processor, $method_name)) { |
|
479 | + if ( ! method_exists($registration_processor, $method_name)) { |
|
480 | 480 | throw new EE_Error(__('Method does not exist.', 'event_espresso')); |
481 | 481 | } |
482 | 482 | // make sure some query params are set for retrieving registrations |
@@ -534,7 +534,7 @@ discard block |
||
534 | 534 | $transaction, |
535 | 535 | EEM_Payment_Method::scope_cart |
536 | 536 | ); |
537 | - if (! empty($available_payment_methods)) { |
|
537 | + if ( ! empty($available_payment_methods)) { |
|
538 | 538 | $PMD_ID = 0; |
539 | 539 | foreach ($available_payment_methods as $available_payment_method) { |
540 | 540 | if ($available_payment_method instanceof EE_Payment_Method |
@@ -544,7 +544,7 @@ discard block |
||
544 | 544 | break; |
545 | 545 | } |
546 | 546 | } |
547 | - if (! $PMD_ID) { |
|
547 | + if ( ! $PMD_ID) { |
|
548 | 548 | $first_payment_method = reset($available_payment_methods); |
549 | 549 | if ($first_payment_method instanceof EE_Payment_Method) { |
550 | 550 | $PMD_ID = $first_payment_method->ID(); |
@@ -185,6 +185,7 @@ |
||
185 | 185 | * when retrieving cached registrations from a transaction |
186 | 186 | * @param bool $trigger_notifications whether or not to call |
187 | 187 | * \EE_Registration_Processor::trigger_registration_update_notifications() |
188 | + * @param EE_Base_Class $payment |
|
188 | 189 | * @return array |
189 | 190 | * @throws \EE_Error |
190 | 191 | */ |
@@ -15,51 +15,51 @@ |
||
15 | 15 | class EE_Help_Tour_final_stop extends EE_Help_Tour |
16 | 16 | { |
17 | 17 | |
18 | - protected function _set_tour_properties() |
|
19 | - { |
|
20 | - $this->_label = __('Final Stop Tour', 'event_espresso'); |
|
21 | - $this->_slug = 'final-stop-tour'; |
|
22 | - } |
|
18 | + protected function _set_tour_properties() |
|
19 | + { |
|
20 | + $this->_label = __('Final Stop Tour', 'event_espresso'); |
|
21 | + $this->_slug = 'final-stop-tour'; |
|
22 | + } |
|
23 | 23 | |
24 | 24 | |
25 | - protected function _set_tour_stops() |
|
26 | - { |
|
27 | - $this->_stops = array( |
|
28 | - 10 => array( |
|
29 | - 'id' => 'contextual-help-link', |
|
30 | - 'content' => $this->_end(), |
|
31 | - 'button_text' => __('Quit', 'event_espresso'), |
|
32 | - 'options' => array( |
|
33 | - 'tipLocation' => 'left', |
|
34 | - 'tipAdjustmentY' => -20, |
|
35 | - 'tipAdjustmentX' => 10, |
|
36 | - ), |
|
37 | - ), |
|
38 | - ); |
|
39 | - } |
|
25 | + protected function _set_tour_stops() |
|
26 | + { |
|
27 | + $this->_stops = array( |
|
28 | + 10 => array( |
|
29 | + 'id' => 'contextual-help-link', |
|
30 | + 'content' => $this->_end(), |
|
31 | + 'button_text' => __('Quit', 'event_espresso'), |
|
32 | + 'options' => array( |
|
33 | + 'tipLocation' => 'left', |
|
34 | + 'tipAdjustmentY' => -20, |
|
35 | + 'tipAdjustmentX' => 10, |
|
36 | + ), |
|
37 | + ), |
|
38 | + ); |
|
39 | + } |
|
40 | 40 | |
41 | 41 | |
42 | - /** |
|
43 | - * This is the default last stop for all tours that is displayed at the end of a tour OR when a tour is exited for |
|
44 | - * the first time. |
|
45 | - * |
|
46 | - * @return string |
|
47 | - */ |
|
48 | - protected function _end() |
|
49 | - { |
|
50 | - $query_args = array( |
|
51 | - 'action' => 'admin_option_settings', |
|
52 | - 'page' => 'espresso_general_settings', |
|
53 | - ); |
|
54 | - return '<p>' |
|
55 | - . sprintf( |
|
56 | - __( |
|
57 | - 'That\'s it for the tour! At any time you can restart a tour by clicking on this help dropdown and then clicking one of the Tour buttons. There are help tours available on all Event Espresso Admin pages. If you want to turn off help tours for all pages, %sgo here%s. All the best with your events!', |
|
58 | - 'event_espresso' |
|
59 | - ), |
|
60 | - '<a href="' . EE_Admin_Page::add_query_args_and_nonce($query_args, admin_url('admin.php')) . '">', |
|
61 | - '</a>' |
|
62 | - ) |
|
63 | - . '</p>'; |
|
64 | - } |
|
42 | + /** |
|
43 | + * This is the default last stop for all tours that is displayed at the end of a tour OR when a tour is exited for |
|
44 | + * the first time. |
|
45 | + * |
|
46 | + * @return string |
|
47 | + */ |
|
48 | + protected function _end() |
|
49 | + { |
|
50 | + $query_args = array( |
|
51 | + 'action' => 'admin_option_settings', |
|
52 | + 'page' => 'espresso_general_settings', |
|
53 | + ); |
|
54 | + return '<p>' |
|
55 | + . sprintf( |
|
56 | + __( |
|
57 | + 'That\'s it for the tour! At any time you can restart a tour by clicking on this help dropdown and then clicking one of the Tour buttons. There are help tours available on all Event Espresso Admin pages. If you want to turn off help tours for all pages, %sgo here%s. All the best with your events!', |
|
58 | + 'event_espresso' |
|
59 | + ), |
|
60 | + '<a href="' . EE_Admin_Page::add_query_args_and_nonce($query_args, admin_url('admin.php')) . '">', |
|
61 | + '</a>' |
|
62 | + ) |
|
63 | + . '</p>'; |
|
64 | + } |
|
65 | 65 | } |
@@ -57,7 +57,7 @@ |
||
57 | 57 | 'That\'s it for the tour! At any time you can restart a tour by clicking on this help dropdown and then clicking one of the Tour buttons. There are help tours available on all Event Espresso Admin pages. If you want to turn off help tours for all pages, %sgo here%s. All the best with your events!', |
58 | 58 | 'event_espresso' |
59 | 59 | ), |
60 | - '<a href="' . EE_Admin_Page::add_query_args_and_nonce($query_args, admin_url('admin.php')) . '">', |
|
60 | + '<a href="'.EE_Admin_Page::add_query_args_and_nonce($query_args, admin_url('admin.php')).'">', |
|
61 | 61 | '</a>' |
62 | 62 | ) |
63 | 63 | . '</p>'; |
@@ -12,631 +12,631 @@ |
||
12 | 12 | abstract class EE_SPCO_Reg_Step |
13 | 13 | { |
14 | 14 | |
15 | - /** |
|
16 | - * $_completed - TRUE if this step has fully completed it's duties |
|
17 | - * |
|
18 | - * @access protected |
|
19 | - * @type bool $_completed |
|
20 | - */ |
|
21 | - protected $_completed = false; |
|
22 | - |
|
23 | - /** |
|
24 | - * $_is_current_step - TRUE if this is the current step |
|
25 | - * |
|
26 | - * @access protected |
|
27 | - * @type bool $_is_current_step |
|
28 | - */ |
|
29 | - protected $_is_current_step = false; |
|
30 | - |
|
31 | - /** |
|
32 | - * $_order - when the reg step should be run relative to other steps |
|
33 | - * |
|
34 | - * @access protected |
|
35 | - * @type int $_template |
|
36 | - */ |
|
37 | - protected $_order = 0; |
|
38 | - |
|
39 | - /** |
|
40 | - * $_slug - URL param for this step |
|
41 | - * |
|
42 | - * @access protected |
|
43 | - * @type string $_slug |
|
44 | - */ |
|
45 | - protected $_slug; |
|
46 | - |
|
47 | - /** |
|
48 | - * $_name - Step Name - translatable string |
|
49 | - * |
|
50 | - * @access protected |
|
51 | - * @type string $_slug |
|
52 | - */ |
|
53 | - protected $_name; |
|
54 | - |
|
55 | - /** |
|
56 | - * $_submit_button_text - translatable string that appears on this step's submit button |
|
57 | - * |
|
58 | - * @access protected |
|
59 | - * @type string $_slug |
|
60 | - */ |
|
61 | - protected $_submit_button_text; |
|
62 | - |
|
63 | - /** |
|
64 | - * $_template - template name |
|
65 | - * |
|
66 | - * @access protected |
|
67 | - * @type string $_template |
|
68 | - */ |
|
69 | - protected $_template; |
|
70 | - |
|
71 | - /** |
|
72 | - * $_reg_form_name - the form input name and id attribute |
|
73 | - * |
|
74 | - * @access protected |
|
75 | - * @var string $_reg_form_name |
|
76 | - */ |
|
77 | - protected $_reg_form_name; |
|
78 | - |
|
79 | - /** |
|
80 | - * $_success_message - text to display upon successful form submission |
|
81 | - * |
|
82 | - * @access private |
|
83 | - * @var string $_success_message |
|
84 | - */ |
|
85 | - protected $_success_message; |
|
86 | - |
|
87 | - /** |
|
88 | - * $_instructions - a brief description of how to complete the reg step. |
|
89 | - * Usually displayed in conjunction with the previous step's success message. |
|
90 | - * |
|
91 | - * @access private |
|
92 | - * @var string $_instructions |
|
93 | - */ |
|
94 | - protected $_instructions; |
|
95 | - |
|
96 | - /** |
|
97 | - * $_valid_data - the normalized and validated data for this step |
|
98 | - * |
|
99 | - * @access public |
|
100 | - * @var array $_valid_data |
|
101 | - */ |
|
102 | - protected $_valid_data = array(); |
|
103 | - |
|
104 | - /** |
|
105 | - * $reg_form - the registration form for this step |
|
106 | - * |
|
107 | - * @access public |
|
108 | - * @var EE_Form_Section_Proper $reg_form |
|
109 | - */ |
|
110 | - public $reg_form; |
|
111 | - |
|
112 | - /** |
|
113 | - * $checkout - EE_Checkout object for handling the properties of the current checkout process |
|
114 | - * |
|
115 | - * @access public |
|
116 | - * @var EE_Checkout $checkout |
|
117 | - */ |
|
118 | - public $checkout; |
|
119 | - |
|
120 | - |
|
121 | - /** |
|
122 | - * @return void |
|
123 | - */ |
|
124 | - abstract public function translate_js_strings(); |
|
125 | - |
|
126 | - |
|
127 | - /** |
|
128 | - * @return void |
|
129 | - */ |
|
130 | - abstract public function enqueue_styles_and_scripts(); |
|
131 | - |
|
132 | - |
|
133 | - /** |
|
134 | - * @return boolean |
|
135 | - */ |
|
136 | - abstract public function initialize_reg_step(); |
|
137 | - |
|
138 | - |
|
139 | - /** |
|
140 | - * @return string |
|
141 | - */ |
|
142 | - abstract public function generate_reg_form(); |
|
143 | - |
|
144 | - |
|
145 | - /** |
|
146 | - * @return boolean |
|
147 | - */ |
|
148 | - abstract public function process_reg_step(); |
|
149 | - |
|
150 | - |
|
151 | - /** |
|
152 | - * @return boolean |
|
153 | - */ |
|
154 | - abstract public function update_reg_step(); |
|
155 | - |
|
156 | - |
|
157 | - /** |
|
158 | - * @return boolean |
|
159 | - */ |
|
160 | - public function completed() |
|
161 | - { |
|
162 | - return $this->_completed; |
|
163 | - } |
|
164 | - |
|
165 | - |
|
166 | - /** |
|
167 | - * set_completed - toggles $_completed to TRUE |
|
168 | - */ |
|
169 | - public function set_completed() |
|
170 | - { |
|
171 | - // DEBUG LOG |
|
172 | - // $this->checkout->log( __CLASS__, __FUNCTION__, __LINE__ ); |
|
173 | - $this->_completed = apply_filters('FHEE__EE_SPCO_Reg_Step__set_completed___completed', true, $this); |
|
174 | - } |
|
175 | - |
|
176 | - |
|
177 | - /** |
|
178 | - * set_completed - toggles $_completed to FALSE |
|
179 | - */ |
|
180 | - public function set_not_completed() |
|
181 | - { |
|
182 | - $this->_completed = false; |
|
183 | - } |
|
184 | - |
|
185 | - |
|
186 | - /** |
|
187 | - * @return string |
|
188 | - */ |
|
189 | - public function name() |
|
190 | - { |
|
191 | - return $this->_name; |
|
192 | - } |
|
193 | - |
|
194 | - |
|
195 | - /** |
|
196 | - * @return string |
|
197 | - */ |
|
198 | - public function slug() |
|
199 | - { |
|
200 | - return $this->_slug; |
|
201 | - } |
|
202 | - |
|
203 | - |
|
204 | - /** |
|
205 | - * submit_button_text |
|
206 | - * the text that appears on the reg step form submit button |
|
207 | - * |
|
208 | - * @return string |
|
209 | - */ |
|
210 | - public function submit_button_text() |
|
211 | - { |
|
212 | - return $this->_submit_button_text; |
|
213 | - } |
|
214 | - |
|
215 | - |
|
216 | - /** |
|
217 | - * set_submit_button_text |
|
218 | - * sets the text that appears on the reg step form submit button |
|
219 | - * |
|
220 | - * @param string $submit_button_text |
|
221 | - */ |
|
222 | - public function set_submit_button_text($submit_button_text = '') |
|
223 | - { |
|
224 | - if (! empty($submit_button_text)) { |
|
225 | - $this->_submit_button_text = $submit_button_text; |
|
226 | - } elseif ($this->checkout->next_step instanceof EE_SPCO_Reg_Step) { |
|
227 | - if ($this->checkout->revisit) { |
|
228 | - $this->_submit_button_text = sprintf( |
|
229 | - __('Update %s', 'event_espresso'), |
|
230 | - $this->checkout->current_step->name() |
|
231 | - ); |
|
232 | - } else { |
|
233 | - $this->_submit_button_text = sprintf( |
|
234 | - __('Proceed to %s', 'event_espresso'), |
|
235 | - $this->checkout->next_step->name() |
|
236 | - ); |
|
237 | - } |
|
238 | - } |
|
239 | - // filters the submit button text |
|
240 | - $this->_submit_button_text = apply_filters( |
|
241 | - 'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text', |
|
242 | - $this->_submit_button_text, |
|
243 | - $this->checkout |
|
244 | - ); |
|
245 | - } |
|
246 | - |
|
247 | - |
|
248 | - /** |
|
249 | - * @param boolean $is_current_step |
|
250 | - */ |
|
251 | - public function set_is_current_step($is_current_step) |
|
252 | - { |
|
253 | - $this->_is_current_step = $is_current_step; |
|
254 | - } |
|
255 | - |
|
256 | - |
|
257 | - /** |
|
258 | - * @return boolean |
|
259 | - */ |
|
260 | - public function is_current_step() |
|
261 | - { |
|
262 | - return $this->_is_current_step; |
|
263 | - } |
|
264 | - |
|
265 | - |
|
266 | - /** |
|
267 | - * @return boolean |
|
268 | - */ |
|
269 | - public function is_final_step() |
|
270 | - { |
|
271 | - return $this instanceof EE_SPCO_Reg_Step_Finalize_Registration ? true : false; |
|
272 | - } |
|
273 | - |
|
274 | - |
|
275 | - /** |
|
276 | - * @param int $order |
|
277 | - */ |
|
278 | - public function set_order($order) |
|
279 | - { |
|
280 | - $this->_order = $order; |
|
281 | - } |
|
282 | - |
|
283 | - |
|
284 | - /** |
|
285 | - * @return int |
|
286 | - */ |
|
287 | - public function order() |
|
288 | - { |
|
289 | - return $this->_order; |
|
290 | - } |
|
291 | - |
|
292 | - |
|
293 | - /** |
|
294 | - * @return string |
|
295 | - */ |
|
296 | - public function template() |
|
297 | - { |
|
298 | - return $this->_template; |
|
299 | - } |
|
300 | - |
|
301 | - |
|
302 | - /** |
|
303 | - * @return string |
|
304 | - */ |
|
305 | - public function success_message() |
|
306 | - { |
|
307 | - return $this->_success_message; |
|
308 | - } |
|
309 | - |
|
310 | - |
|
311 | - /** |
|
312 | - * _set_success_message |
|
313 | - * |
|
314 | - * @param string $success_message |
|
315 | - */ |
|
316 | - protected function _set_success_message($success_message) |
|
317 | - { |
|
318 | - $this->_success_message = $success_message; |
|
319 | - } |
|
320 | - |
|
321 | - |
|
322 | - /** |
|
323 | - * _reset_success_message |
|
324 | - * |
|
325 | - * @return void |
|
326 | - */ |
|
327 | - protected function _reset_success_message() |
|
328 | - { |
|
329 | - $this->_success_message = ''; |
|
330 | - } |
|
331 | - |
|
332 | - |
|
333 | - /** |
|
334 | - * @return string |
|
335 | - */ |
|
336 | - public function _instructions() |
|
337 | - { |
|
338 | - return $this->_instructions; |
|
339 | - } |
|
340 | - |
|
341 | - |
|
342 | - /** |
|
343 | - * @param string $instructions |
|
344 | - */ |
|
345 | - public function set_instructions($instructions) |
|
346 | - { |
|
347 | - $this->_instructions = apply_filters( |
|
348 | - 'FHEE__EE_SPCO_Reg_Step__set_instructions__instructions', |
|
349 | - $instructions, |
|
350 | - $this |
|
351 | - ); |
|
352 | - } |
|
353 | - |
|
354 | - |
|
355 | - /** |
|
356 | - * @param array $valid_data |
|
357 | - */ |
|
358 | - public function set_valid_data($valid_data) |
|
359 | - { |
|
360 | - $this->_valid_data = $valid_data; |
|
361 | - } |
|
362 | - |
|
363 | - |
|
364 | - /** |
|
365 | - * @return array |
|
366 | - */ |
|
367 | - public function valid_data() |
|
368 | - { |
|
369 | - if (empty($this->_valid_data)) { |
|
370 | - $this->_valid_data = $this->reg_form->valid_data(); |
|
371 | - } |
|
372 | - return $this->_valid_data; |
|
373 | - } |
|
374 | - |
|
375 | - |
|
376 | - /** |
|
377 | - * @return string |
|
378 | - */ |
|
379 | - public function reg_form_name() |
|
380 | - { |
|
381 | - if (empty($this->_reg_form_name)) { |
|
382 | - $this->set_reg_form_name('ee-spco-' . $this->slug() . '-reg-step-form'); |
|
383 | - } |
|
384 | - return $this->_reg_form_name; |
|
385 | - } |
|
386 | - |
|
387 | - |
|
388 | - /** |
|
389 | - * @param string $reg_form_name |
|
390 | - */ |
|
391 | - protected function set_reg_form_name($reg_form_name) |
|
392 | - { |
|
393 | - $this->_reg_form_name = $reg_form_name; |
|
394 | - } |
|
395 | - |
|
396 | - |
|
397 | - /** |
|
398 | - * reg_step_url |
|
399 | - * |
|
400 | - * @param string $action |
|
401 | - * @return string |
|
402 | - */ |
|
403 | - public function reg_step_url($action = '') |
|
404 | - { |
|
405 | - $query_args = array('step' => $this->slug()); |
|
406 | - if (! empty($action)) { |
|
407 | - $query_args['action'] = $action; |
|
408 | - } |
|
409 | - // final step has no display |
|
410 | - if ($this instanceof EE_SPCO_Reg_Step_Finalize_Registration && $action === 'display_spco_reg_step') { |
|
411 | - $query_args['action'] = 'process_reg_step'; |
|
412 | - } |
|
413 | - if ($this->checkout->revisit) { |
|
414 | - $query_args['revisit'] = true; |
|
415 | - } |
|
416 | - if ($this->checkout->reg_url_link) { |
|
417 | - $query_args['e_reg_url_link'] = $this->checkout->reg_url_link; |
|
418 | - } |
|
419 | - return add_query_arg($query_args, $this->checkout->reg_page_base_url); |
|
420 | - } |
|
421 | - |
|
422 | - |
|
423 | - /** |
|
424 | - * creates the default hidden inputs section |
|
425 | - * |
|
426 | - * @return EE_Form_Section_Proper |
|
427 | - * @throws \EE_Error |
|
428 | - */ |
|
429 | - public function reg_step_hidden_inputs() |
|
430 | - { |
|
431 | - // hidden inputs for admin registrations |
|
432 | - if ($this->checkout->admin_request) { |
|
433 | - return new EE_Form_Section_Proper( |
|
434 | - array( |
|
435 | - 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
|
436 | - 'html_id' => 'ee-' . $this->slug() . '-hidden-inputs', |
|
437 | - 'subsections' => array( |
|
438 | - 'next_step' => new EE_Fixed_Hidden_Input( |
|
439 | - array( |
|
440 | - 'html_name' => 'next_step', |
|
441 | - 'html_id' => 'spco-' . $this->slug() . '-next-step', |
|
442 | - 'default' => $this->checkout->next_step instanceof EE_SPCO_Reg_Step |
|
443 | - ? $this->checkout->next_step->slug() |
|
444 | - : '', |
|
445 | - ) |
|
446 | - ), |
|
447 | - ), |
|
448 | - ) |
|
449 | - ); |
|
450 | - } |
|
451 | - // hidden inputs for frontend registrations |
|
452 | - return new EE_Form_Section_Proper( |
|
453 | - array( |
|
454 | - 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
|
455 | - 'html_id' => 'ee-' . $this->slug() . '-hidden-inputs', |
|
456 | - 'subsections' => array( |
|
457 | - 'action' => new EE_Fixed_Hidden_Input( |
|
458 | - array( |
|
459 | - 'html_name' => 'action', |
|
460 | - 'html_id' => 'spco-' . $this->slug() . '-action', |
|
461 | - 'default' => apply_filters( |
|
462 | - 'FHEE__EE_SPCO_Reg_Step__reg_step_hidden_inputs__default_form_action', |
|
463 | - empty($this->checkout->reg_url_link) |
|
464 | - ? 'process_reg_step' |
|
465 | - : 'update_reg_step', |
|
466 | - $this |
|
467 | - ), |
|
468 | - ) |
|
469 | - ), |
|
470 | - 'next_step' => new EE_Fixed_Hidden_Input( |
|
471 | - array( |
|
472 | - 'html_name' => 'next_step', |
|
473 | - 'html_id' => 'spco-' . $this->slug() . '-next-step', |
|
474 | - 'default' => $this->checkout->next_step instanceof EE_SPCO_Reg_Step |
|
475 | - ? $this->checkout->next_step->slug() |
|
476 | - : '', |
|
477 | - ) |
|
478 | - ), |
|
479 | - 'e_reg_url_link' => new EE_Fixed_Hidden_Input( |
|
480 | - array( |
|
481 | - 'html_name' => 'e_reg_url_link', |
|
482 | - 'html_id' => 'spco-reg_url_link', |
|
483 | - 'default' => $this->checkout->reg_url_link, |
|
484 | - ) |
|
485 | - ), |
|
486 | - 'revisit' => new EE_Fixed_Hidden_Input( |
|
487 | - array( |
|
488 | - 'html_name' => 'revisit', |
|
489 | - 'html_id' => 'spco-revisit', |
|
490 | - 'default' => $this->checkout->revisit, |
|
491 | - ) |
|
492 | - ), |
|
493 | - ), |
|
494 | - ) |
|
495 | - ); |
|
496 | - } |
|
497 | - |
|
498 | - |
|
499 | - /** |
|
500 | - * generate_reg_form_for_actions |
|
501 | - * |
|
502 | - * @param array $actions |
|
503 | - * @return void |
|
504 | - */ |
|
505 | - public function generate_reg_form_for_actions($actions = array()) |
|
506 | - { |
|
507 | - $actions = array_merge( |
|
508 | - array( |
|
509 | - 'generate_reg_form', |
|
510 | - 'display_spco_reg_step', |
|
511 | - 'process_reg_step', |
|
512 | - 'update_reg_step', |
|
513 | - ), |
|
514 | - $actions |
|
515 | - ); |
|
516 | - $this->checkout->generate_reg_form = in_array($this->checkout->action, $actions, true) ? true : false; |
|
517 | - } |
|
518 | - |
|
519 | - |
|
520 | - /** |
|
521 | - * @return string |
|
522 | - * @throws \EE_Error |
|
523 | - */ |
|
524 | - public function display_reg_form() |
|
525 | - { |
|
526 | - $html = ''; |
|
527 | - if ($this->reg_form instanceof EE_Form_Section_Proper) { |
|
528 | - do_action('AHEE__EE_SPCO_Reg_Step__display_reg_form__reg_form', $this->reg_form, $this); |
|
529 | - $html .= ! $this->checkout->admin_request ? $this->reg_form->form_open($this->reg_step_url()) : ''; |
|
530 | - if (EE_Registry::instance()->REQ->ajax) { |
|
531 | - $this->reg_form->localize_validation_rules(); |
|
532 | - $this->checkout->json_response->add_validation_rules(EE_Form_Section_Proper::js_localization()); |
|
533 | - } |
|
534 | - $html .= $this->reg_form->get_html(); |
|
535 | - $html .= ! $this->checkout->admin_request ? $this->reg_step_submit_button() : ''; |
|
536 | - $html .= ! $this->checkout->admin_request ? $this->reg_form->form_close() : ''; |
|
537 | - } |
|
538 | - return $html; |
|
539 | - } |
|
540 | - |
|
541 | - |
|
542 | - /** |
|
543 | - * div_class - returns nothing for current step, but a css class of "hidden" for others |
|
544 | - * |
|
545 | - * @return string |
|
546 | - * @throws \EE_Error |
|
547 | - */ |
|
548 | - public function reg_step_submit_button() |
|
549 | - { |
|
550 | - if (! $this->checkout->next_step instanceof EE_SPCO_Reg_Step) { |
|
551 | - return ''; |
|
552 | - } |
|
553 | - ob_start(); |
|
554 | - do_action( |
|
555 | - 'AHEE__before_spco_whats_next_buttons', |
|
556 | - $this->slug(), |
|
557 | - $this->checkout->next_step->slug(), |
|
558 | - $this->checkout |
|
559 | - ); |
|
560 | - $html = ob_get_clean(); |
|
561 | - // generate submit button |
|
562 | - $sbmt_btn = new EE_Submit_Input( |
|
563 | - array( |
|
564 | - 'html_name' => 'spco-go-to-step-' . $this->checkout->next_step->slug(), |
|
565 | - 'html_id' => 'spco-go-to-step-' . $this->checkout->next_step->slug(), |
|
566 | - 'html_class' => 'spco-next-step-btn', |
|
567 | - 'other_html_attributes' => ' rel="' . $this->slug() . '"', |
|
568 | - 'default' => $this->submit_button_text(), |
|
569 | - ) |
|
570 | - ); |
|
571 | - $sbmt_btn->set_button_css_attributes(true, 'large'); |
|
572 | - $sbmt_btn_html = $sbmt_btn->get_html_for_input(); |
|
573 | - $html .= EEH_HTML::div( |
|
574 | - apply_filters('FHEE__EE_SPCO_Reg_Step__reg_step_submit_button__sbmt_btn_html', $sbmt_btn_html, $this), |
|
575 | - 'spco-' . $this->slug() . '-whats-next-buttons-dv', |
|
576 | - 'spco-whats-next-buttons' |
|
577 | - ); |
|
578 | - return $html; |
|
579 | - } |
|
580 | - |
|
581 | - |
|
582 | - /** |
|
583 | - * div_class - returns nothing for current step, but a css class of "hidden" for others |
|
584 | - * |
|
585 | - * @return string |
|
586 | - */ |
|
587 | - public function div_class() |
|
588 | - { |
|
589 | - return $this->is_current_step() ? '' : ' hidden'; |
|
590 | - } |
|
591 | - |
|
592 | - |
|
593 | - /** |
|
594 | - * div_class - returns a css class of "hidden" for current step, but nothing for others |
|
595 | - * |
|
596 | - * @return string |
|
597 | - */ |
|
598 | - public function edit_lnk_url() |
|
599 | - { |
|
600 | - return add_query_arg(array('step' => $this->slug()), $this->checkout->reg_page_base_url); |
|
601 | - } |
|
602 | - |
|
603 | - |
|
604 | - /** |
|
605 | - * div_class - returns a css class of "hidden" for current step, but nothing for others |
|
606 | - * |
|
607 | - * @return string |
|
608 | - */ |
|
609 | - public function edit_link_class() |
|
610 | - { |
|
611 | - return $this->is_current_step() ? ' hidden' : ''; |
|
612 | - } |
|
613 | - |
|
614 | - |
|
615 | - /** |
|
616 | - * update_checkout with changes that have been made to the cart |
|
617 | - * |
|
618 | - * @return void |
|
619 | - * @throws \EE_Error |
|
620 | - */ |
|
621 | - public function update_checkout() |
|
622 | - { |
|
623 | - // grab the cart grand total and reset TXN total |
|
624 | - $this->checkout->transaction->set_total($this->checkout->cart->get_cart_grand_total()); |
|
625 | - $this->checkout->stash_transaction_and_checkout(); |
|
626 | - } |
|
627 | - |
|
628 | - |
|
629 | - /** |
|
630 | - * __sleep |
|
631 | - * to conserve db space, let's remove the reg_form and the EE_Checkout object from EE_SPCO_Reg_Step objects upon |
|
632 | - * serialization EE_Checkout will handle the reimplementation of itself upon waking, but we won't bother with the |
|
633 | - * reg form, because if needed, it will be regenerated anyways |
|
634 | - * |
|
635 | - * @return array |
|
636 | - */ |
|
637 | - public function __sleep() |
|
638 | - { |
|
639 | - // remove the reg form and the checkout |
|
640 | - return array_diff(array_keys(get_object_vars($this)), array('reg_form', 'checkout')); |
|
641 | - } |
|
15 | + /** |
|
16 | + * $_completed - TRUE if this step has fully completed it's duties |
|
17 | + * |
|
18 | + * @access protected |
|
19 | + * @type bool $_completed |
|
20 | + */ |
|
21 | + protected $_completed = false; |
|
22 | + |
|
23 | + /** |
|
24 | + * $_is_current_step - TRUE if this is the current step |
|
25 | + * |
|
26 | + * @access protected |
|
27 | + * @type bool $_is_current_step |
|
28 | + */ |
|
29 | + protected $_is_current_step = false; |
|
30 | + |
|
31 | + /** |
|
32 | + * $_order - when the reg step should be run relative to other steps |
|
33 | + * |
|
34 | + * @access protected |
|
35 | + * @type int $_template |
|
36 | + */ |
|
37 | + protected $_order = 0; |
|
38 | + |
|
39 | + /** |
|
40 | + * $_slug - URL param for this step |
|
41 | + * |
|
42 | + * @access protected |
|
43 | + * @type string $_slug |
|
44 | + */ |
|
45 | + protected $_slug; |
|
46 | + |
|
47 | + /** |
|
48 | + * $_name - Step Name - translatable string |
|
49 | + * |
|
50 | + * @access protected |
|
51 | + * @type string $_slug |
|
52 | + */ |
|
53 | + protected $_name; |
|
54 | + |
|
55 | + /** |
|
56 | + * $_submit_button_text - translatable string that appears on this step's submit button |
|
57 | + * |
|
58 | + * @access protected |
|
59 | + * @type string $_slug |
|
60 | + */ |
|
61 | + protected $_submit_button_text; |
|
62 | + |
|
63 | + /** |
|
64 | + * $_template - template name |
|
65 | + * |
|
66 | + * @access protected |
|
67 | + * @type string $_template |
|
68 | + */ |
|
69 | + protected $_template; |
|
70 | + |
|
71 | + /** |
|
72 | + * $_reg_form_name - the form input name and id attribute |
|
73 | + * |
|
74 | + * @access protected |
|
75 | + * @var string $_reg_form_name |
|
76 | + */ |
|
77 | + protected $_reg_form_name; |
|
78 | + |
|
79 | + /** |
|
80 | + * $_success_message - text to display upon successful form submission |
|
81 | + * |
|
82 | + * @access private |
|
83 | + * @var string $_success_message |
|
84 | + */ |
|
85 | + protected $_success_message; |
|
86 | + |
|
87 | + /** |
|
88 | + * $_instructions - a brief description of how to complete the reg step. |
|
89 | + * Usually displayed in conjunction with the previous step's success message. |
|
90 | + * |
|
91 | + * @access private |
|
92 | + * @var string $_instructions |
|
93 | + */ |
|
94 | + protected $_instructions; |
|
95 | + |
|
96 | + /** |
|
97 | + * $_valid_data - the normalized and validated data for this step |
|
98 | + * |
|
99 | + * @access public |
|
100 | + * @var array $_valid_data |
|
101 | + */ |
|
102 | + protected $_valid_data = array(); |
|
103 | + |
|
104 | + /** |
|
105 | + * $reg_form - the registration form for this step |
|
106 | + * |
|
107 | + * @access public |
|
108 | + * @var EE_Form_Section_Proper $reg_form |
|
109 | + */ |
|
110 | + public $reg_form; |
|
111 | + |
|
112 | + /** |
|
113 | + * $checkout - EE_Checkout object for handling the properties of the current checkout process |
|
114 | + * |
|
115 | + * @access public |
|
116 | + * @var EE_Checkout $checkout |
|
117 | + */ |
|
118 | + public $checkout; |
|
119 | + |
|
120 | + |
|
121 | + /** |
|
122 | + * @return void |
|
123 | + */ |
|
124 | + abstract public function translate_js_strings(); |
|
125 | + |
|
126 | + |
|
127 | + /** |
|
128 | + * @return void |
|
129 | + */ |
|
130 | + abstract public function enqueue_styles_and_scripts(); |
|
131 | + |
|
132 | + |
|
133 | + /** |
|
134 | + * @return boolean |
|
135 | + */ |
|
136 | + abstract public function initialize_reg_step(); |
|
137 | + |
|
138 | + |
|
139 | + /** |
|
140 | + * @return string |
|
141 | + */ |
|
142 | + abstract public function generate_reg_form(); |
|
143 | + |
|
144 | + |
|
145 | + /** |
|
146 | + * @return boolean |
|
147 | + */ |
|
148 | + abstract public function process_reg_step(); |
|
149 | + |
|
150 | + |
|
151 | + /** |
|
152 | + * @return boolean |
|
153 | + */ |
|
154 | + abstract public function update_reg_step(); |
|
155 | + |
|
156 | + |
|
157 | + /** |
|
158 | + * @return boolean |
|
159 | + */ |
|
160 | + public function completed() |
|
161 | + { |
|
162 | + return $this->_completed; |
|
163 | + } |
|
164 | + |
|
165 | + |
|
166 | + /** |
|
167 | + * set_completed - toggles $_completed to TRUE |
|
168 | + */ |
|
169 | + public function set_completed() |
|
170 | + { |
|
171 | + // DEBUG LOG |
|
172 | + // $this->checkout->log( __CLASS__, __FUNCTION__, __LINE__ ); |
|
173 | + $this->_completed = apply_filters('FHEE__EE_SPCO_Reg_Step__set_completed___completed', true, $this); |
|
174 | + } |
|
175 | + |
|
176 | + |
|
177 | + /** |
|
178 | + * set_completed - toggles $_completed to FALSE |
|
179 | + */ |
|
180 | + public function set_not_completed() |
|
181 | + { |
|
182 | + $this->_completed = false; |
|
183 | + } |
|
184 | + |
|
185 | + |
|
186 | + /** |
|
187 | + * @return string |
|
188 | + */ |
|
189 | + public function name() |
|
190 | + { |
|
191 | + return $this->_name; |
|
192 | + } |
|
193 | + |
|
194 | + |
|
195 | + /** |
|
196 | + * @return string |
|
197 | + */ |
|
198 | + public function slug() |
|
199 | + { |
|
200 | + return $this->_slug; |
|
201 | + } |
|
202 | + |
|
203 | + |
|
204 | + /** |
|
205 | + * submit_button_text |
|
206 | + * the text that appears on the reg step form submit button |
|
207 | + * |
|
208 | + * @return string |
|
209 | + */ |
|
210 | + public function submit_button_text() |
|
211 | + { |
|
212 | + return $this->_submit_button_text; |
|
213 | + } |
|
214 | + |
|
215 | + |
|
216 | + /** |
|
217 | + * set_submit_button_text |
|
218 | + * sets the text that appears on the reg step form submit button |
|
219 | + * |
|
220 | + * @param string $submit_button_text |
|
221 | + */ |
|
222 | + public function set_submit_button_text($submit_button_text = '') |
|
223 | + { |
|
224 | + if (! empty($submit_button_text)) { |
|
225 | + $this->_submit_button_text = $submit_button_text; |
|
226 | + } elseif ($this->checkout->next_step instanceof EE_SPCO_Reg_Step) { |
|
227 | + if ($this->checkout->revisit) { |
|
228 | + $this->_submit_button_text = sprintf( |
|
229 | + __('Update %s', 'event_espresso'), |
|
230 | + $this->checkout->current_step->name() |
|
231 | + ); |
|
232 | + } else { |
|
233 | + $this->_submit_button_text = sprintf( |
|
234 | + __('Proceed to %s', 'event_espresso'), |
|
235 | + $this->checkout->next_step->name() |
|
236 | + ); |
|
237 | + } |
|
238 | + } |
|
239 | + // filters the submit button text |
|
240 | + $this->_submit_button_text = apply_filters( |
|
241 | + 'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text', |
|
242 | + $this->_submit_button_text, |
|
243 | + $this->checkout |
|
244 | + ); |
|
245 | + } |
|
246 | + |
|
247 | + |
|
248 | + /** |
|
249 | + * @param boolean $is_current_step |
|
250 | + */ |
|
251 | + public function set_is_current_step($is_current_step) |
|
252 | + { |
|
253 | + $this->_is_current_step = $is_current_step; |
|
254 | + } |
|
255 | + |
|
256 | + |
|
257 | + /** |
|
258 | + * @return boolean |
|
259 | + */ |
|
260 | + public function is_current_step() |
|
261 | + { |
|
262 | + return $this->_is_current_step; |
|
263 | + } |
|
264 | + |
|
265 | + |
|
266 | + /** |
|
267 | + * @return boolean |
|
268 | + */ |
|
269 | + public function is_final_step() |
|
270 | + { |
|
271 | + return $this instanceof EE_SPCO_Reg_Step_Finalize_Registration ? true : false; |
|
272 | + } |
|
273 | + |
|
274 | + |
|
275 | + /** |
|
276 | + * @param int $order |
|
277 | + */ |
|
278 | + public function set_order($order) |
|
279 | + { |
|
280 | + $this->_order = $order; |
|
281 | + } |
|
282 | + |
|
283 | + |
|
284 | + /** |
|
285 | + * @return int |
|
286 | + */ |
|
287 | + public function order() |
|
288 | + { |
|
289 | + return $this->_order; |
|
290 | + } |
|
291 | + |
|
292 | + |
|
293 | + /** |
|
294 | + * @return string |
|
295 | + */ |
|
296 | + public function template() |
|
297 | + { |
|
298 | + return $this->_template; |
|
299 | + } |
|
300 | + |
|
301 | + |
|
302 | + /** |
|
303 | + * @return string |
|
304 | + */ |
|
305 | + public function success_message() |
|
306 | + { |
|
307 | + return $this->_success_message; |
|
308 | + } |
|
309 | + |
|
310 | + |
|
311 | + /** |
|
312 | + * _set_success_message |
|
313 | + * |
|
314 | + * @param string $success_message |
|
315 | + */ |
|
316 | + protected function _set_success_message($success_message) |
|
317 | + { |
|
318 | + $this->_success_message = $success_message; |
|
319 | + } |
|
320 | + |
|
321 | + |
|
322 | + /** |
|
323 | + * _reset_success_message |
|
324 | + * |
|
325 | + * @return void |
|
326 | + */ |
|
327 | + protected function _reset_success_message() |
|
328 | + { |
|
329 | + $this->_success_message = ''; |
|
330 | + } |
|
331 | + |
|
332 | + |
|
333 | + /** |
|
334 | + * @return string |
|
335 | + */ |
|
336 | + public function _instructions() |
|
337 | + { |
|
338 | + return $this->_instructions; |
|
339 | + } |
|
340 | + |
|
341 | + |
|
342 | + /** |
|
343 | + * @param string $instructions |
|
344 | + */ |
|
345 | + public function set_instructions($instructions) |
|
346 | + { |
|
347 | + $this->_instructions = apply_filters( |
|
348 | + 'FHEE__EE_SPCO_Reg_Step__set_instructions__instructions', |
|
349 | + $instructions, |
|
350 | + $this |
|
351 | + ); |
|
352 | + } |
|
353 | + |
|
354 | + |
|
355 | + /** |
|
356 | + * @param array $valid_data |
|
357 | + */ |
|
358 | + public function set_valid_data($valid_data) |
|
359 | + { |
|
360 | + $this->_valid_data = $valid_data; |
|
361 | + } |
|
362 | + |
|
363 | + |
|
364 | + /** |
|
365 | + * @return array |
|
366 | + */ |
|
367 | + public function valid_data() |
|
368 | + { |
|
369 | + if (empty($this->_valid_data)) { |
|
370 | + $this->_valid_data = $this->reg_form->valid_data(); |
|
371 | + } |
|
372 | + return $this->_valid_data; |
|
373 | + } |
|
374 | + |
|
375 | + |
|
376 | + /** |
|
377 | + * @return string |
|
378 | + */ |
|
379 | + public function reg_form_name() |
|
380 | + { |
|
381 | + if (empty($this->_reg_form_name)) { |
|
382 | + $this->set_reg_form_name('ee-spco-' . $this->slug() . '-reg-step-form'); |
|
383 | + } |
|
384 | + return $this->_reg_form_name; |
|
385 | + } |
|
386 | + |
|
387 | + |
|
388 | + /** |
|
389 | + * @param string $reg_form_name |
|
390 | + */ |
|
391 | + protected function set_reg_form_name($reg_form_name) |
|
392 | + { |
|
393 | + $this->_reg_form_name = $reg_form_name; |
|
394 | + } |
|
395 | + |
|
396 | + |
|
397 | + /** |
|
398 | + * reg_step_url |
|
399 | + * |
|
400 | + * @param string $action |
|
401 | + * @return string |
|
402 | + */ |
|
403 | + public function reg_step_url($action = '') |
|
404 | + { |
|
405 | + $query_args = array('step' => $this->slug()); |
|
406 | + if (! empty($action)) { |
|
407 | + $query_args['action'] = $action; |
|
408 | + } |
|
409 | + // final step has no display |
|
410 | + if ($this instanceof EE_SPCO_Reg_Step_Finalize_Registration && $action === 'display_spco_reg_step') { |
|
411 | + $query_args['action'] = 'process_reg_step'; |
|
412 | + } |
|
413 | + if ($this->checkout->revisit) { |
|
414 | + $query_args['revisit'] = true; |
|
415 | + } |
|
416 | + if ($this->checkout->reg_url_link) { |
|
417 | + $query_args['e_reg_url_link'] = $this->checkout->reg_url_link; |
|
418 | + } |
|
419 | + return add_query_arg($query_args, $this->checkout->reg_page_base_url); |
|
420 | + } |
|
421 | + |
|
422 | + |
|
423 | + /** |
|
424 | + * creates the default hidden inputs section |
|
425 | + * |
|
426 | + * @return EE_Form_Section_Proper |
|
427 | + * @throws \EE_Error |
|
428 | + */ |
|
429 | + public function reg_step_hidden_inputs() |
|
430 | + { |
|
431 | + // hidden inputs for admin registrations |
|
432 | + if ($this->checkout->admin_request) { |
|
433 | + return new EE_Form_Section_Proper( |
|
434 | + array( |
|
435 | + 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
|
436 | + 'html_id' => 'ee-' . $this->slug() . '-hidden-inputs', |
|
437 | + 'subsections' => array( |
|
438 | + 'next_step' => new EE_Fixed_Hidden_Input( |
|
439 | + array( |
|
440 | + 'html_name' => 'next_step', |
|
441 | + 'html_id' => 'spco-' . $this->slug() . '-next-step', |
|
442 | + 'default' => $this->checkout->next_step instanceof EE_SPCO_Reg_Step |
|
443 | + ? $this->checkout->next_step->slug() |
|
444 | + : '', |
|
445 | + ) |
|
446 | + ), |
|
447 | + ), |
|
448 | + ) |
|
449 | + ); |
|
450 | + } |
|
451 | + // hidden inputs for frontend registrations |
|
452 | + return new EE_Form_Section_Proper( |
|
453 | + array( |
|
454 | + 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
|
455 | + 'html_id' => 'ee-' . $this->slug() . '-hidden-inputs', |
|
456 | + 'subsections' => array( |
|
457 | + 'action' => new EE_Fixed_Hidden_Input( |
|
458 | + array( |
|
459 | + 'html_name' => 'action', |
|
460 | + 'html_id' => 'spco-' . $this->slug() . '-action', |
|
461 | + 'default' => apply_filters( |
|
462 | + 'FHEE__EE_SPCO_Reg_Step__reg_step_hidden_inputs__default_form_action', |
|
463 | + empty($this->checkout->reg_url_link) |
|
464 | + ? 'process_reg_step' |
|
465 | + : 'update_reg_step', |
|
466 | + $this |
|
467 | + ), |
|
468 | + ) |
|
469 | + ), |
|
470 | + 'next_step' => new EE_Fixed_Hidden_Input( |
|
471 | + array( |
|
472 | + 'html_name' => 'next_step', |
|
473 | + 'html_id' => 'spco-' . $this->slug() . '-next-step', |
|
474 | + 'default' => $this->checkout->next_step instanceof EE_SPCO_Reg_Step |
|
475 | + ? $this->checkout->next_step->slug() |
|
476 | + : '', |
|
477 | + ) |
|
478 | + ), |
|
479 | + 'e_reg_url_link' => new EE_Fixed_Hidden_Input( |
|
480 | + array( |
|
481 | + 'html_name' => 'e_reg_url_link', |
|
482 | + 'html_id' => 'spco-reg_url_link', |
|
483 | + 'default' => $this->checkout->reg_url_link, |
|
484 | + ) |
|
485 | + ), |
|
486 | + 'revisit' => new EE_Fixed_Hidden_Input( |
|
487 | + array( |
|
488 | + 'html_name' => 'revisit', |
|
489 | + 'html_id' => 'spco-revisit', |
|
490 | + 'default' => $this->checkout->revisit, |
|
491 | + ) |
|
492 | + ), |
|
493 | + ), |
|
494 | + ) |
|
495 | + ); |
|
496 | + } |
|
497 | + |
|
498 | + |
|
499 | + /** |
|
500 | + * generate_reg_form_for_actions |
|
501 | + * |
|
502 | + * @param array $actions |
|
503 | + * @return void |
|
504 | + */ |
|
505 | + public function generate_reg_form_for_actions($actions = array()) |
|
506 | + { |
|
507 | + $actions = array_merge( |
|
508 | + array( |
|
509 | + 'generate_reg_form', |
|
510 | + 'display_spco_reg_step', |
|
511 | + 'process_reg_step', |
|
512 | + 'update_reg_step', |
|
513 | + ), |
|
514 | + $actions |
|
515 | + ); |
|
516 | + $this->checkout->generate_reg_form = in_array($this->checkout->action, $actions, true) ? true : false; |
|
517 | + } |
|
518 | + |
|
519 | + |
|
520 | + /** |
|
521 | + * @return string |
|
522 | + * @throws \EE_Error |
|
523 | + */ |
|
524 | + public function display_reg_form() |
|
525 | + { |
|
526 | + $html = ''; |
|
527 | + if ($this->reg_form instanceof EE_Form_Section_Proper) { |
|
528 | + do_action('AHEE__EE_SPCO_Reg_Step__display_reg_form__reg_form', $this->reg_form, $this); |
|
529 | + $html .= ! $this->checkout->admin_request ? $this->reg_form->form_open($this->reg_step_url()) : ''; |
|
530 | + if (EE_Registry::instance()->REQ->ajax) { |
|
531 | + $this->reg_form->localize_validation_rules(); |
|
532 | + $this->checkout->json_response->add_validation_rules(EE_Form_Section_Proper::js_localization()); |
|
533 | + } |
|
534 | + $html .= $this->reg_form->get_html(); |
|
535 | + $html .= ! $this->checkout->admin_request ? $this->reg_step_submit_button() : ''; |
|
536 | + $html .= ! $this->checkout->admin_request ? $this->reg_form->form_close() : ''; |
|
537 | + } |
|
538 | + return $html; |
|
539 | + } |
|
540 | + |
|
541 | + |
|
542 | + /** |
|
543 | + * div_class - returns nothing for current step, but a css class of "hidden" for others |
|
544 | + * |
|
545 | + * @return string |
|
546 | + * @throws \EE_Error |
|
547 | + */ |
|
548 | + public function reg_step_submit_button() |
|
549 | + { |
|
550 | + if (! $this->checkout->next_step instanceof EE_SPCO_Reg_Step) { |
|
551 | + return ''; |
|
552 | + } |
|
553 | + ob_start(); |
|
554 | + do_action( |
|
555 | + 'AHEE__before_spco_whats_next_buttons', |
|
556 | + $this->slug(), |
|
557 | + $this->checkout->next_step->slug(), |
|
558 | + $this->checkout |
|
559 | + ); |
|
560 | + $html = ob_get_clean(); |
|
561 | + // generate submit button |
|
562 | + $sbmt_btn = new EE_Submit_Input( |
|
563 | + array( |
|
564 | + 'html_name' => 'spco-go-to-step-' . $this->checkout->next_step->slug(), |
|
565 | + 'html_id' => 'spco-go-to-step-' . $this->checkout->next_step->slug(), |
|
566 | + 'html_class' => 'spco-next-step-btn', |
|
567 | + 'other_html_attributes' => ' rel="' . $this->slug() . '"', |
|
568 | + 'default' => $this->submit_button_text(), |
|
569 | + ) |
|
570 | + ); |
|
571 | + $sbmt_btn->set_button_css_attributes(true, 'large'); |
|
572 | + $sbmt_btn_html = $sbmt_btn->get_html_for_input(); |
|
573 | + $html .= EEH_HTML::div( |
|
574 | + apply_filters('FHEE__EE_SPCO_Reg_Step__reg_step_submit_button__sbmt_btn_html', $sbmt_btn_html, $this), |
|
575 | + 'spco-' . $this->slug() . '-whats-next-buttons-dv', |
|
576 | + 'spco-whats-next-buttons' |
|
577 | + ); |
|
578 | + return $html; |
|
579 | + } |
|
580 | + |
|
581 | + |
|
582 | + /** |
|
583 | + * div_class - returns nothing for current step, but a css class of "hidden" for others |
|
584 | + * |
|
585 | + * @return string |
|
586 | + */ |
|
587 | + public function div_class() |
|
588 | + { |
|
589 | + return $this->is_current_step() ? '' : ' hidden'; |
|
590 | + } |
|
591 | + |
|
592 | + |
|
593 | + /** |
|
594 | + * div_class - returns a css class of "hidden" for current step, but nothing for others |
|
595 | + * |
|
596 | + * @return string |
|
597 | + */ |
|
598 | + public function edit_lnk_url() |
|
599 | + { |
|
600 | + return add_query_arg(array('step' => $this->slug()), $this->checkout->reg_page_base_url); |
|
601 | + } |
|
602 | + |
|
603 | + |
|
604 | + /** |
|
605 | + * div_class - returns a css class of "hidden" for current step, but nothing for others |
|
606 | + * |
|
607 | + * @return string |
|
608 | + */ |
|
609 | + public function edit_link_class() |
|
610 | + { |
|
611 | + return $this->is_current_step() ? ' hidden' : ''; |
|
612 | + } |
|
613 | + |
|
614 | + |
|
615 | + /** |
|
616 | + * update_checkout with changes that have been made to the cart |
|
617 | + * |
|
618 | + * @return void |
|
619 | + * @throws \EE_Error |
|
620 | + */ |
|
621 | + public function update_checkout() |
|
622 | + { |
|
623 | + // grab the cart grand total and reset TXN total |
|
624 | + $this->checkout->transaction->set_total($this->checkout->cart->get_cart_grand_total()); |
|
625 | + $this->checkout->stash_transaction_and_checkout(); |
|
626 | + } |
|
627 | + |
|
628 | + |
|
629 | + /** |
|
630 | + * __sleep |
|
631 | + * to conserve db space, let's remove the reg_form and the EE_Checkout object from EE_SPCO_Reg_Step objects upon |
|
632 | + * serialization EE_Checkout will handle the reimplementation of itself upon waking, but we won't bother with the |
|
633 | + * reg form, because if needed, it will be regenerated anyways |
|
634 | + * |
|
635 | + * @return array |
|
636 | + */ |
|
637 | + public function __sleep() |
|
638 | + { |
|
639 | + // remove the reg form and the checkout |
|
640 | + return array_diff(array_keys(get_object_vars($this)), array('reg_form', 'checkout')); |
|
641 | + } |
|
642 | 642 | } |
@@ -221,7 +221,7 @@ discard block |
||
221 | 221 | */ |
222 | 222 | public function set_submit_button_text($submit_button_text = '') |
223 | 223 | { |
224 | - if (! empty($submit_button_text)) { |
|
224 | + if ( ! empty($submit_button_text)) { |
|
225 | 225 | $this->_submit_button_text = $submit_button_text; |
226 | 226 | } elseif ($this->checkout->next_step instanceof EE_SPCO_Reg_Step) { |
227 | 227 | if ($this->checkout->revisit) { |
@@ -379,7 +379,7 @@ discard block |
||
379 | 379 | public function reg_form_name() |
380 | 380 | { |
381 | 381 | if (empty($this->_reg_form_name)) { |
382 | - $this->set_reg_form_name('ee-spco-' . $this->slug() . '-reg-step-form'); |
|
382 | + $this->set_reg_form_name('ee-spco-'.$this->slug().'-reg-step-form'); |
|
383 | 383 | } |
384 | 384 | return $this->_reg_form_name; |
385 | 385 | } |
@@ -403,7 +403,7 @@ discard block |
||
403 | 403 | public function reg_step_url($action = '') |
404 | 404 | { |
405 | 405 | $query_args = array('step' => $this->slug()); |
406 | - if (! empty($action)) { |
|
406 | + if ( ! empty($action)) { |
|
407 | 407 | $query_args['action'] = $action; |
408 | 408 | } |
409 | 409 | // final step has no display |
@@ -433,12 +433,12 @@ discard block |
||
433 | 433 | return new EE_Form_Section_Proper( |
434 | 434 | array( |
435 | 435 | 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
436 | - 'html_id' => 'ee-' . $this->slug() . '-hidden-inputs', |
|
436 | + 'html_id' => 'ee-'.$this->slug().'-hidden-inputs', |
|
437 | 437 | 'subsections' => array( |
438 | 438 | 'next_step' => new EE_Fixed_Hidden_Input( |
439 | 439 | array( |
440 | 440 | 'html_name' => 'next_step', |
441 | - 'html_id' => 'spco-' . $this->slug() . '-next-step', |
|
441 | + 'html_id' => 'spco-'.$this->slug().'-next-step', |
|
442 | 442 | 'default' => $this->checkout->next_step instanceof EE_SPCO_Reg_Step |
443 | 443 | ? $this->checkout->next_step->slug() |
444 | 444 | : '', |
@@ -452,12 +452,12 @@ discard block |
||
452 | 452 | return new EE_Form_Section_Proper( |
453 | 453 | array( |
454 | 454 | 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
455 | - 'html_id' => 'ee-' . $this->slug() . '-hidden-inputs', |
|
455 | + 'html_id' => 'ee-'.$this->slug().'-hidden-inputs', |
|
456 | 456 | 'subsections' => array( |
457 | 457 | 'action' => new EE_Fixed_Hidden_Input( |
458 | 458 | array( |
459 | 459 | 'html_name' => 'action', |
460 | - 'html_id' => 'spco-' . $this->slug() . '-action', |
|
460 | + 'html_id' => 'spco-'.$this->slug().'-action', |
|
461 | 461 | 'default' => apply_filters( |
462 | 462 | 'FHEE__EE_SPCO_Reg_Step__reg_step_hidden_inputs__default_form_action', |
463 | 463 | empty($this->checkout->reg_url_link) |
@@ -470,7 +470,7 @@ discard block |
||
470 | 470 | 'next_step' => new EE_Fixed_Hidden_Input( |
471 | 471 | array( |
472 | 472 | 'html_name' => 'next_step', |
473 | - 'html_id' => 'spco-' . $this->slug() . '-next-step', |
|
473 | + 'html_id' => 'spco-'.$this->slug().'-next-step', |
|
474 | 474 | 'default' => $this->checkout->next_step instanceof EE_SPCO_Reg_Step |
475 | 475 | ? $this->checkout->next_step->slug() |
476 | 476 | : '', |
@@ -547,7 +547,7 @@ discard block |
||
547 | 547 | */ |
548 | 548 | public function reg_step_submit_button() |
549 | 549 | { |
550 | - if (! $this->checkout->next_step instanceof EE_SPCO_Reg_Step) { |
|
550 | + if ( ! $this->checkout->next_step instanceof EE_SPCO_Reg_Step) { |
|
551 | 551 | return ''; |
552 | 552 | } |
553 | 553 | ob_start(); |
@@ -561,10 +561,10 @@ discard block |
||
561 | 561 | // generate submit button |
562 | 562 | $sbmt_btn = new EE_Submit_Input( |
563 | 563 | array( |
564 | - 'html_name' => 'spco-go-to-step-' . $this->checkout->next_step->slug(), |
|
565 | - 'html_id' => 'spco-go-to-step-' . $this->checkout->next_step->slug(), |
|
564 | + 'html_name' => 'spco-go-to-step-'.$this->checkout->next_step->slug(), |
|
565 | + 'html_id' => 'spco-go-to-step-'.$this->checkout->next_step->slug(), |
|
566 | 566 | 'html_class' => 'spco-next-step-btn', |
567 | - 'other_html_attributes' => ' rel="' . $this->slug() . '"', |
|
567 | + 'other_html_attributes' => ' rel="'.$this->slug().'"', |
|
568 | 568 | 'default' => $this->submit_button_text(), |
569 | 569 | ) |
570 | 570 | ); |
@@ -572,7 +572,7 @@ discard block |
||
572 | 572 | $sbmt_btn_html = $sbmt_btn->get_html_for_input(); |
573 | 573 | $html .= EEH_HTML::div( |
574 | 574 | apply_filters('FHEE__EE_SPCO_Reg_Step__reg_step_submit_button__sbmt_btn_html', $sbmt_btn_html, $this), |
575 | - 'spco-' . $this->slug() . '-whats-next-buttons-dv', |
|
575 | + 'spco-'.$this->slug().'-whats-next-buttons-dv', |
|
576 | 576 | 'spco-whats-next-buttons' |
577 | 577 | ); |
578 | 578 | return $html; |
@@ -92,14 +92,14 @@ discard block |
||
92 | 92 | $txn_update_params |
93 | 93 | ); |
94 | 94 | // check if transaction has a primary registrant and that it has a related Attendee object |
95 | - if (! $this->_validate_primary_registrant()) { |
|
95 | + if ( ! $this->_validate_primary_registrant()) { |
|
96 | 96 | return false; |
97 | 97 | } |
98 | 98 | // you don't have to go home but you can't stay here ! |
99 | 99 | $this->checkout->redirect = true; |
100 | 100 | $this->checkout->continue_reg = true; |
101 | 101 | $this->checkout->json_response->set_redirect_url($this->checkout->redirect_url); |
102 | - if (! ( |
|
102 | + if ( ! ( |
|
103 | 103 | $this->checkout->payment_method instanceof EE_Payment_Method |
104 | 104 | && $this->checkout->payment_method->is_off_site() |
105 | 105 | )) { |
@@ -210,7 +210,7 @@ discard block |
||
210 | 210 | */ |
211 | 211 | protected function _validate_primary_registrant() |
212 | 212 | { |
213 | - if (! $this->checkout->transaction_has_primary_registrant()) { |
|
213 | + if ( ! $this->checkout->transaction_has_primary_registrant()) { |
|
214 | 214 | EE_Error::add_error( |
215 | 215 | __('A valid Primary Registration for this Transaction could not be found.', 'event_espresso'), |
216 | 216 | __FILE__, |
@@ -236,7 +236,7 @@ discard block |
||
236 | 236 | public function update_reg_step() |
237 | 237 | { |
238 | 238 | EE_Error::doing_it_wrong( |
239 | - __CLASS__ . '::' . __FILE__, |
|
239 | + __CLASS__.'::'.__FILE__, |
|
240 | 240 | __( |
241 | 241 | 'Can not call update_reg_step() on the Finalize Registration reg step.', |
242 | 242 | 'event_espresso' |
@@ -12,240 +12,240 @@ |
||
12 | 12 | class EE_SPCO_Reg_Step_Finalize_Registration extends EE_SPCO_Reg_Step |
13 | 13 | { |
14 | 14 | |
15 | - /** |
|
16 | - * class constructor |
|
17 | - * |
|
18 | - * @access public |
|
19 | - * @param EE_Checkout $checkout |
|
20 | - */ |
|
21 | - public function __construct(EE_Checkout $checkout) |
|
22 | - { |
|
23 | - $this->_slug = 'finalize_registration'; |
|
24 | - $this->_name = __('Finalize Registration', 'event_espresso'); |
|
25 | - $this->_submit_button_text = $this->_name; |
|
26 | - $this->_template = ''; |
|
27 | - $this->checkout = $checkout; |
|
28 | - } |
|
29 | - |
|
30 | - |
|
31 | - public function translate_js_strings() |
|
32 | - { |
|
33 | - } |
|
34 | - |
|
35 | - |
|
36 | - public function enqueue_styles_and_scripts() |
|
37 | - { |
|
38 | - } |
|
39 | - |
|
40 | - |
|
41 | - /** |
|
42 | - * @return boolean |
|
43 | - */ |
|
44 | - public function initialize_reg_step() |
|
45 | - { |
|
46 | - // there's actually no reg form to process if this is the final step |
|
47 | - if ($this->is_current_step()) { |
|
48 | - $this->checkout->step = $_REQUEST['step'] = $this->slug(); |
|
49 | - $this->checkout->action = $_REQUEST['action'] = 'process_reg_step'; |
|
50 | - $this->checkout->generate_reg_form = false; |
|
51 | - } |
|
52 | - return true; |
|
53 | - } |
|
54 | - |
|
55 | - |
|
56 | - /** |
|
57 | - * @return string |
|
58 | - * @throws \EE_Error |
|
59 | - */ |
|
60 | - public function generate_reg_form() |
|
61 | - { |
|
62 | - // create empty form so that things don't break |
|
63 | - $this->reg_form = new EE_Form_Section_Proper(); |
|
64 | - return ''; |
|
65 | - } |
|
66 | - |
|
67 | - |
|
68 | - /** |
|
69 | - * @return boolean |
|
70 | - * @throws \RuntimeException |
|
71 | - * @throws \EE_Error |
|
72 | - */ |
|
73 | - public function process_reg_step() |
|
74 | - { |
|
75 | - // ensure all data gets refreshed from the db |
|
76 | - $this->checkout->refresh_all_entities(true); |
|
77 | - // ensures that all details and statuses for transaction, registration, and payments are updated |
|
78 | - $txn_update_params = $this->_finalize_transaction(); |
|
79 | - // maybe send messages |
|
80 | - $this->_set_notification_triggers(); |
|
81 | - // send messages |
|
82 | - /** @type EE_Registration_Processor $registration_processor */ |
|
83 | - $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
|
84 | - $registration_processor->trigger_registration_update_notifications( |
|
85 | - $this->checkout->transaction->primary_registration(), |
|
86 | - $txn_update_params |
|
87 | - ); |
|
88 | - // set a hook point |
|
89 | - do_action( |
|
90 | - 'AHEE__EE_SPCO_Reg_Step_Finalize_Registration__process_reg_step__completed', |
|
91 | - $this->checkout, |
|
92 | - $txn_update_params |
|
93 | - ); |
|
94 | - // check if transaction has a primary registrant and that it has a related Attendee object |
|
95 | - if (! $this->_validate_primary_registrant()) { |
|
96 | - return false; |
|
97 | - } |
|
98 | - // you don't have to go home but you can't stay here ! |
|
99 | - $this->checkout->redirect = true; |
|
100 | - $this->checkout->continue_reg = true; |
|
101 | - $this->checkout->json_response->set_redirect_url($this->checkout->redirect_url); |
|
102 | - if (! ( |
|
103 | - $this->checkout->payment_method instanceof EE_Payment_Method |
|
104 | - && $this->checkout->payment_method->is_off_site() |
|
105 | - )) { |
|
106 | - // mark this reg step as completed |
|
107 | - $this->set_completed(); |
|
108 | - } |
|
109 | - $this->checkout->set_exit_spco(); |
|
110 | - return true; |
|
111 | - } |
|
112 | - |
|
113 | - |
|
114 | - /** |
|
115 | - * _finalize_transaction |
|
116 | - * ensures that all details and statuses for transaction, registration, and payments are updated |
|
117 | - * |
|
118 | - * @return array |
|
119 | - * @throws \RuntimeException |
|
120 | - * @throws \EE_Error |
|
121 | - */ |
|
122 | - protected function _finalize_transaction() |
|
123 | - { |
|
124 | - /** @type EE_Transaction_Processor $transaction_processor */ |
|
125 | - $transaction_processor = EE_Registry::instance()->load_class('Transaction_Processor'); |
|
126 | - // set revisit flag in txn processor |
|
127 | - $transaction_processor->set_revisit($this->checkout->revisit); |
|
128 | - // at this point we'll consider a TXN to not have been abandoned |
|
129 | - $this->checkout->transaction->toggle_abandoned_transaction_status(); |
|
130 | - if ($this->checkout->cart instanceof EE_Cart) { |
|
131 | - // save TXN data to the cart |
|
132 | - $this->checkout->cart->get_grand_total()->save_this_and_descendants_to_txn( |
|
133 | - $this->checkout->transaction->ID() |
|
134 | - ); |
|
135 | - } |
|
136 | - // maybe update status, but don't save transaction just yet |
|
137 | - $this->checkout->transaction->update_status_based_on_total_paid(false); |
|
138 | - // this will result in the base session properties getting saved to the TXN_Session_data field |
|
139 | - $session_data = EE_Registry::instance()->SSN->get_session_data(null, true); |
|
140 | - // anonymize the last part of the IP address, now that the transaction is complete (we won't be using the IP address |
|
141 | - // for spam or bot detection now) |
|
142 | - if (function_exists('wp_privacy_anonymize_ip') && isset($session_data['ip_address'])) { |
|
143 | - $session_data['ip_address'] = wp_privacy_anonymize_ip($session_data['ip_address']); |
|
144 | - } |
|
145 | - $this->checkout->transaction->set_txn_session_data($session_data); |
|
146 | - // update the TXN if payment conditions have changed, but do NOT trigger notifications, |
|
147 | - // because we will do that in process_reg_step() after setting some more triggers |
|
148 | - return $transaction_processor->update_transaction_and_registrations_after_checkout_or_payment( |
|
149 | - $this->checkout->transaction, |
|
150 | - $this->checkout->payment, |
|
151 | - $this->checkout->reg_cache_where_params, |
|
152 | - false |
|
153 | - ); |
|
154 | - } |
|
155 | - |
|
156 | - |
|
157 | - /** |
|
158 | - * If request is not a revisit, and an Off-Site gateway using IPNs has NOT been selected... |
|
159 | - * OR |
|
160 | - * if it IS a revisit and the TXN and/or one or more REG statuses have changed... |
|
161 | - * then trigger notifications |
|
162 | - * |
|
163 | - * @return void |
|
164 | - * @throws \EE_Error |
|
165 | - */ |
|
166 | - protected function _set_notification_triggers() |
|
167 | - { |
|
168 | - |
|
169 | - if ($this->checkout->payment_method instanceof EE_Payment_Method) { |
|
170 | - // let's start with the assumption that we need to trigger notifications |
|
171 | - // then toggle this to false for conditions where we know we don't need to |
|
172 | - $deliver_notifications = true; |
|
173 | - if (// if SPCO revisit |
|
174 | - filter_var($this->checkout->revisit, FILTER_VALIDATE_BOOLEAN) |
|
175 | - // and TXN or REG statuses have NOT changed due to a payment |
|
176 | - && ! ( |
|
177 | - $this->checkout->transaction->txn_status_updated() |
|
178 | - || $this->checkout->any_reg_status_updated() |
|
179 | - ) |
|
180 | - ) { |
|
181 | - $deliver_notifications = false; |
|
182 | - } |
|
183 | - if ($this->checkout->payment_method->is_off_site()) { |
|
184 | - /** @var EE_Gateway $gateway */ |
|
185 | - $gateway = $this->checkout->payment_method->type_obj()->get_gateway(); |
|
186 | - // and the gateway uses a separate request to process the IPN |
|
187 | - if ($gateway instanceof EE_Offsite_Gateway |
|
188 | - && $gateway->handle_IPN_in_this_request(\EE_Registry::instance()->REQ->params(), true) |
|
189 | - ) { |
|
190 | - // IPN request will handle triggering notifications |
|
191 | - $deliver_notifications = false; |
|
192 | - // no really... don't send any notices in this request |
|
193 | - remove_all_filters('FHEE__EED_Messages___maybe_registration__deliver_notifications'); |
|
194 | - add_filter( |
|
195 | - 'FHEE__EED_Messages___maybe_registration__deliver_notifications', |
|
196 | - '__return_false', |
|
197 | - 15 |
|
198 | - ); |
|
199 | - } |
|
200 | - } |
|
201 | - if ($deliver_notifications) { |
|
202 | - // send out notifications |
|
203 | - add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10); |
|
204 | - } |
|
205 | - } |
|
206 | - } |
|
207 | - |
|
208 | - |
|
209 | - /** |
|
210 | - * check if transaction has a primary registrant and that it has a related Attendee object |
|
211 | - * |
|
212 | - * @return boolean |
|
213 | - * @throws \EE_Error |
|
214 | - */ |
|
215 | - protected function _validate_primary_registrant() |
|
216 | - { |
|
217 | - if (! $this->checkout->transaction_has_primary_registrant()) { |
|
218 | - EE_Error::add_error( |
|
219 | - __('A valid Primary Registration for this Transaction could not be found.', 'event_espresso'), |
|
220 | - __FILE__, |
|
221 | - __FUNCTION__, |
|
222 | - __LINE__ |
|
223 | - ); |
|
224 | - $this->checkout->redirect = false; |
|
225 | - $this->checkout->continue_reg = false; |
|
226 | - return false; |
|
227 | - } |
|
228 | - // setup URL for redirect |
|
229 | - $this->checkout->redirect_url = add_query_arg( |
|
230 | - array('e_reg_url_link' => $this->checkout->transaction->primary_registration()->reg_url_link()), |
|
231 | - $this->checkout->thank_you_page_url |
|
232 | - ); |
|
233 | - return true; |
|
234 | - } |
|
235 | - |
|
236 | - |
|
237 | - /** |
|
238 | - * @return void |
|
239 | - */ |
|
240 | - public function update_reg_step() |
|
241 | - { |
|
242 | - EE_Error::doing_it_wrong( |
|
243 | - __CLASS__ . '::' . __FILE__, |
|
244 | - __( |
|
245 | - 'Can not call update_reg_step() on the Finalize Registration reg step.', |
|
246 | - 'event_espresso' |
|
247 | - ), |
|
248 | - '4.6.0' |
|
249 | - ); |
|
250 | - } |
|
15 | + /** |
|
16 | + * class constructor |
|
17 | + * |
|
18 | + * @access public |
|
19 | + * @param EE_Checkout $checkout |
|
20 | + */ |
|
21 | + public function __construct(EE_Checkout $checkout) |
|
22 | + { |
|
23 | + $this->_slug = 'finalize_registration'; |
|
24 | + $this->_name = __('Finalize Registration', 'event_espresso'); |
|
25 | + $this->_submit_button_text = $this->_name; |
|
26 | + $this->_template = ''; |
|
27 | + $this->checkout = $checkout; |
|
28 | + } |
|
29 | + |
|
30 | + |
|
31 | + public function translate_js_strings() |
|
32 | + { |
|
33 | + } |
|
34 | + |
|
35 | + |
|
36 | + public function enqueue_styles_and_scripts() |
|
37 | + { |
|
38 | + } |
|
39 | + |
|
40 | + |
|
41 | + /** |
|
42 | + * @return boolean |
|
43 | + */ |
|
44 | + public function initialize_reg_step() |
|
45 | + { |
|
46 | + // there's actually no reg form to process if this is the final step |
|
47 | + if ($this->is_current_step()) { |
|
48 | + $this->checkout->step = $_REQUEST['step'] = $this->slug(); |
|
49 | + $this->checkout->action = $_REQUEST['action'] = 'process_reg_step'; |
|
50 | + $this->checkout->generate_reg_form = false; |
|
51 | + } |
|
52 | + return true; |
|
53 | + } |
|
54 | + |
|
55 | + |
|
56 | + /** |
|
57 | + * @return string |
|
58 | + * @throws \EE_Error |
|
59 | + */ |
|
60 | + public function generate_reg_form() |
|
61 | + { |
|
62 | + // create empty form so that things don't break |
|
63 | + $this->reg_form = new EE_Form_Section_Proper(); |
|
64 | + return ''; |
|
65 | + } |
|
66 | + |
|
67 | + |
|
68 | + /** |
|
69 | + * @return boolean |
|
70 | + * @throws \RuntimeException |
|
71 | + * @throws \EE_Error |
|
72 | + */ |
|
73 | + public function process_reg_step() |
|
74 | + { |
|
75 | + // ensure all data gets refreshed from the db |
|
76 | + $this->checkout->refresh_all_entities(true); |
|
77 | + // ensures that all details and statuses for transaction, registration, and payments are updated |
|
78 | + $txn_update_params = $this->_finalize_transaction(); |
|
79 | + // maybe send messages |
|
80 | + $this->_set_notification_triggers(); |
|
81 | + // send messages |
|
82 | + /** @type EE_Registration_Processor $registration_processor */ |
|
83 | + $registration_processor = EE_Registry::instance()->load_class('Registration_Processor'); |
|
84 | + $registration_processor->trigger_registration_update_notifications( |
|
85 | + $this->checkout->transaction->primary_registration(), |
|
86 | + $txn_update_params |
|
87 | + ); |
|
88 | + // set a hook point |
|
89 | + do_action( |
|
90 | + 'AHEE__EE_SPCO_Reg_Step_Finalize_Registration__process_reg_step__completed', |
|
91 | + $this->checkout, |
|
92 | + $txn_update_params |
|
93 | + ); |
|
94 | + // check if transaction has a primary registrant and that it has a related Attendee object |
|
95 | + if (! $this->_validate_primary_registrant()) { |
|
96 | + return false; |
|
97 | + } |
|
98 | + // you don't have to go home but you can't stay here ! |
|
99 | + $this->checkout->redirect = true; |
|
100 | + $this->checkout->continue_reg = true; |
|
101 | + $this->checkout->json_response->set_redirect_url($this->checkout->redirect_url); |
|
102 | + if (! ( |
|
103 | + $this->checkout->payment_method instanceof EE_Payment_Method |
|
104 | + && $this->checkout->payment_method->is_off_site() |
|
105 | + )) { |
|
106 | + // mark this reg step as completed |
|
107 | + $this->set_completed(); |
|
108 | + } |
|
109 | + $this->checkout->set_exit_spco(); |
|
110 | + return true; |
|
111 | + } |
|
112 | + |
|
113 | + |
|
114 | + /** |
|
115 | + * _finalize_transaction |
|
116 | + * ensures that all details and statuses for transaction, registration, and payments are updated |
|
117 | + * |
|
118 | + * @return array |
|
119 | + * @throws \RuntimeException |
|
120 | + * @throws \EE_Error |
|
121 | + */ |
|
122 | + protected function _finalize_transaction() |
|
123 | + { |
|
124 | + /** @type EE_Transaction_Processor $transaction_processor */ |
|
125 | + $transaction_processor = EE_Registry::instance()->load_class('Transaction_Processor'); |
|
126 | + // set revisit flag in txn processor |
|
127 | + $transaction_processor->set_revisit($this->checkout->revisit); |
|
128 | + // at this point we'll consider a TXN to not have been abandoned |
|
129 | + $this->checkout->transaction->toggle_abandoned_transaction_status(); |
|
130 | + if ($this->checkout->cart instanceof EE_Cart) { |
|
131 | + // save TXN data to the cart |
|
132 | + $this->checkout->cart->get_grand_total()->save_this_and_descendants_to_txn( |
|
133 | + $this->checkout->transaction->ID() |
|
134 | + ); |
|
135 | + } |
|
136 | + // maybe update status, but don't save transaction just yet |
|
137 | + $this->checkout->transaction->update_status_based_on_total_paid(false); |
|
138 | + // this will result in the base session properties getting saved to the TXN_Session_data field |
|
139 | + $session_data = EE_Registry::instance()->SSN->get_session_data(null, true); |
|
140 | + // anonymize the last part of the IP address, now that the transaction is complete (we won't be using the IP address |
|
141 | + // for spam or bot detection now) |
|
142 | + if (function_exists('wp_privacy_anonymize_ip') && isset($session_data['ip_address'])) { |
|
143 | + $session_data['ip_address'] = wp_privacy_anonymize_ip($session_data['ip_address']); |
|
144 | + } |
|
145 | + $this->checkout->transaction->set_txn_session_data($session_data); |
|
146 | + // update the TXN if payment conditions have changed, but do NOT trigger notifications, |
|
147 | + // because we will do that in process_reg_step() after setting some more triggers |
|
148 | + return $transaction_processor->update_transaction_and_registrations_after_checkout_or_payment( |
|
149 | + $this->checkout->transaction, |
|
150 | + $this->checkout->payment, |
|
151 | + $this->checkout->reg_cache_where_params, |
|
152 | + false |
|
153 | + ); |
|
154 | + } |
|
155 | + |
|
156 | + |
|
157 | + /** |
|
158 | + * If request is not a revisit, and an Off-Site gateway using IPNs has NOT been selected... |
|
159 | + * OR |
|
160 | + * if it IS a revisit and the TXN and/or one or more REG statuses have changed... |
|
161 | + * then trigger notifications |
|
162 | + * |
|
163 | + * @return void |
|
164 | + * @throws \EE_Error |
|
165 | + */ |
|
166 | + protected function _set_notification_triggers() |
|
167 | + { |
|
168 | + |
|
169 | + if ($this->checkout->payment_method instanceof EE_Payment_Method) { |
|
170 | + // let's start with the assumption that we need to trigger notifications |
|
171 | + // then toggle this to false for conditions where we know we don't need to |
|
172 | + $deliver_notifications = true; |
|
173 | + if (// if SPCO revisit |
|
174 | + filter_var($this->checkout->revisit, FILTER_VALIDATE_BOOLEAN) |
|
175 | + // and TXN or REG statuses have NOT changed due to a payment |
|
176 | + && ! ( |
|
177 | + $this->checkout->transaction->txn_status_updated() |
|
178 | + || $this->checkout->any_reg_status_updated() |
|
179 | + ) |
|
180 | + ) { |
|
181 | + $deliver_notifications = false; |
|
182 | + } |
|
183 | + if ($this->checkout->payment_method->is_off_site()) { |
|
184 | + /** @var EE_Gateway $gateway */ |
|
185 | + $gateway = $this->checkout->payment_method->type_obj()->get_gateway(); |
|
186 | + // and the gateway uses a separate request to process the IPN |
|
187 | + if ($gateway instanceof EE_Offsite_Gateway |
|
188 | + && $gateway->handle_IPN_in_this_request(\EE_Registry::instance()->REQ->params(), true) |
|
189 | + ) { |
|
190 | + // IPN request will handle triggering notifications |
|
191 | + $deliver_notifications = false; |
|
192 | + // no really... don't send any notices in this request |
|
193 | + remove_all_filters('FHEE__EED_Messages___maybe_registration__deliver_notifications'); |
|
194 | + add_filter( |
|
195 | + 'FHEE__EED_Messages___maybe_registration__deliver_notifications', |
|
196 | + '__return_false', |
|
197 | + 15 |
|
198 | + ); |
|
199 | + } |
|
200 | + } |
|
201 | + if ($deliver_notifications) { |
|
202 | + // send out notifications |
|
203 | + add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10); |
|
204 | + } |
|
205 | + } |
|
206 | + } |
|
207 | + |
|
208 | + |
|
209 | + /** |
|
210 | + * check if transaction has a primary registrant and that it has a related Attendee object |
|
211 | + * |
|
212 | + * @return boolean |
|
213 | + * @throws \EE_Error |
|
214 | + */ |
|
215 | + protected function _validate_primary_registrant() |
|
216 | + { |
|
217 | + if (! $this->checkout->transaction_has_primary_registrant()) { |
|
218 | + EE_Error::add_error( |
|
219 | + __('A valid Primary Registration for this Transaction could not be found.', 'event_espresso'), |
|
220 | + __FILE__, |
|
221 | + __FUNCTION__, |
|
222 | + __LINE__ |
|
223 | + ); |
|
224 | + $this->checkout->redirect = false; |
|
225 | + $this->checkout->continue_reg = false; |
|
226 | + return false; |
|
227 | + } |
|
228 | + // setup URL for redirect |
|
229 | + $this->checkout->redirect_url = add_query_arg( |
|
230 | + array('e_reg_url_link' => $this->checkout->transaction->primary_registration()->reg_url_link()), |
|
231 | + $this->checkout->thank_you_page_url |
|
232 | + ); |
|
233 | + return true; |
|
234 | + } |
|
235 | + |
|
236 | + |
|
237 | + /** |
|
238 | + * @return void |
|
239 | + */ |
|
240 | + public function update_reg_step() |
|
241 | + { |
|
242 | + EE_Error::doing_it_wrong( |
|
243 | + __CLASS__ . '::' . __FILE__, |
|
244 | + __( |
|
245 | + 'Can not call update_reg_step() on the Finalize Registration reg step.', |
|
246 | + 'event_espresso' |
|
247 | + ), |
|
248 | + '4.6.0' |
|
249 | + ); |
|
250 | + } |
|
251 | 251 | } |
@@ -15,289 +15,289 @@ |
||
15 | 15 | class Event_Checkin_Help_Tour extends EE_Help_Tour |
16 | 16 | { |
17 | 17 | |
18 | - protected function _set_tour_properties() |
|
19 | - { |
|
20 | - $this->_label = __('Event Check-in Tour', 'event_espresso'); |
|
21 | - if (isset($this->_req_data['event_id'])) { |
|
22 | - $this->_slug = 'event-checkin-overview-joyride'; |
|
23 | - } else { |
|
24 | - $this->_slug = 'all-event-checkin-overview-joyride'; |
|
25 | - } |
|
26 | - } |
|
18 | + protected function _set_tour_properties() |
|
19 | + { |
|
20 | + $this->_label = __('Event Check-in Tour', 'event_espresso'); |
|
21 | + if (isset($this->_req_data['event_id'])) { |
|
22 | + $this->_slug = 'event-checkin-overview-joyride'; |
|
23 | + } else { |
|
24 | + $this->_slug = 'all-event-checkin-overview-joyride'; |
|
25 | + } |
|
26 | + } |
|
27 | 27 | |
28 | 28 | |
29 | - protected function _set_tour_stops() |
|
30 | - { |
|
31 | - $this->_stops = array( |
|
32 | - 10 => array( |
|
33 | - 'content' => $this->_start(), |
|
34 | - ), |
|
35 | - 20 => array( |
|
36 | - 'id' => '_REG_count', |
|
37 | - 'content' => $this->_reg_count_stop(), |
|
38 | - 'options' => array( |
|
39 | - 'tipLocation' => 'top', |
|
40 | - 'tipAdjustmentX' => -5, |
|
41 | - 'tipAdjustmentY' => -20, |
|
42 | - ), |
|
43 | - ), |
|
44 | - 30 => array( |
|
45 | - 'id' => 'ATT_name', |
|
46 | - 'content' => $this->_attendee_name_stop(), |
|
47 | - 'options' => array( |
|
48 | - 'tipLocation' => 'top', |
|
49 | - 'tipAdjustmentX' => -5, |
|
50 | - 'tipAdjustmentY' => -20, |
|
51 | - ), |
|
52 | - ), |
|
53 | - 40 => array( |
|
54 | - 'id' => 'ATT_email', |
|
55 | - 'content' => $this->_attendee_email_stop(), |
|
56 | - 'options' => array( |
|
57 | - 'tipLocation' => 'top', |
|
58 | - 'tipAdjustmentX' => -5, |
|
59 | - 'tipAdjustmentY' => -20, |
|
60 | - ), |
|
61 | - ), |
|
62 | - 50 => array( |
|
63 | - 'id' => '_REG_date', |
|
64 | - 'content' => $this->_reg_date_stop(), |
|
65 | - 'options' => array( |
|
66 | - 'tipLocation' => 'top', |
|
67 | - 'tipAdjustmentX' => -5, |
|
68 | - 'tipAdjustmentY' => -20, |
|
69 | - ), |
|
70 | - ), |
|
71 | - 60 => array( |
|
72 | - 'id' => '_REG_code', |
|
73 | - 'content' => $this->_reg_code_stop(), |
|
74 | - 'options' => array( |
|
75 | - 'tipLocation' => 'top', |
|
76 | - 'tipAdjustmentX' => -5, |
|
77 | - 'tipAdjustmentY' => -20, |
|
78 | - ), |
|
79 | - ), |
|
80 | - 80 => array( |
|
81 | - 'id' => '_REG_final_price', |
|
82 | - 'content' => $this->_reg_final_price_stop(), |
|
83 | - 'options' => array( |
|
84 | - 'tipLocation' => 'top', |
|
85 | - 'tipAdjustmentX' => -5, |
|
86 | - 'tipAdjustmentY' => -20, |
|
87 | - ), |
|
88 | - ), |
|
89 | - 90 => array( |
|
90 | - 'id' => 'TXN_paid', |
|
91 | - 'content' => $this->_txn_paid_stop(), |
|
92 | - 'options' => array( |
|
93 | - 'tipLocation' => 'left', |
|
94 | - 'tipAdjustmentX' => 0, |
|
95 | - 'tipAdjustmentY' => -50, |
|
96 | - ), |
|
97 | - ), |
|
98 | - 100 => array( |
|
99 | - 'id' => 'TXN_total', |
|
100 | - 'content' => $this->_txn_total_stop(), |
|
101 | - 'options' => array( |
|
102 | - 'tipLocation' => 'left', |
|
103 | - 'tipAdjustmentX' => 0, |
|
104 | - 'tipAdjustmentY' => -50, |
|
105 | - ), |
|
106 | - ), |
|
107 | - 110 => array( |
|
108 | - 'id' => 'PRC_name', |
|
109 | - 'content' => $this->_prc_name_stop(), |
|
110 | - 'options' => array( |
|
111 | - 'tipLocation' => 'left', |
|
112 | - 'tipAdjustmentX' => 0, |
|
113 | - 'tipAdjustmentY' => -50, |
|
114 | - ), |
|
115 | - ), |
|
116 | - 115 => array( |
|
117 | - 'id' => 'actions', |
|
118 | - 'content' => $this->_actions_stop(), |
|
119 | - 'options' => array( |
|
120 | - 'tipLocation' => 'left', |
|
121 | - 'tipAdjustmentX' => 0, |
|
122 | - 'tipAdjustmentY' => -30, |
|
123 | - ), |
|
124 | - ), |
|
125 | - 120 => array( |
|
126 | - 'class' => 'ee-list-table-legend-container', |
|
127 | - 'content' => $this->_legend_stop(), |
|
128 | - 'options' => array( |
|
129 | - 'tipLocation' => 'top', |
|
130 | - 'tipAdjustmentX' => 15, |
|
131 | - 'tipAdjustmentY' => -40, |
|
132 | - ), |
|
133 | - ), |
|
134 | - 125 => array( |
|
135 | - 'class' => 'bulkactions', |
|
136 | - 'content' => $this->_bulkactions_stop(), |
|
137 | - 'options' => array( |
|
138 | - 'tipLocation' => 'bottom', |
|
139 | - 'tipAdjustmentY' => -30, |
|
140 | - 'tipAdjustmentX' => 15, |
|
141 | - ), |
|
142 | - ), |
|
143 | - 130 => array( |
|
144 | - 'id' => 'event_id', |
|
145 | - 'content' => $this->_event_selector_stop(), |
|
146 | - 'options' => array( |
|
147 | - 'tipLocation' => 'right', |
|
148 | - 'tipAdjustmentY' => -50, |
|
149 | - 'tipAdjustmentX' => 25, |
|
150 | - ), |
|
151 | - ), |
|
152 | - 135 => array( |
|
153 | - 'id' => 'DTT_ID', |
|
154 | - 'content' => $this->_dtt_selector_stop(), |
|
155 | - 'options' => array( |
|
156 | - 'tipLocation' => 'bottom', |
|
157 | - 'tipAdjustmentY' => -30, |
|
158 | - 'tipAdjustmentX' => 15, |
|
159 | - ), |
|
160 | - ), |
|
161 | - 140 => array( |
|
162 | - 'id' => 'event-espresso_page_espresso_registrations-search-input', |
|
163 | - 'content' => $this->_search_stop(), |
|
164 | - 'options' => array( |
|
165 | - 'tipLocation' => 'left', |
|
166 | - 'tipAdjustmentY' => -50, |
|
167 | - 'tipAdjustmentX' => -15, |
|
168 | - ), |
|
169 | - ), |
|
170 | - ); |
|
171 | - } |
|
29 | + protected function _set_tour_stops() |
|
30 | + { |
|
31 | + $this->_stops = array( |
|
32 | + 10 => array( |
|
33 | + 'content' => $this->_start(), |
|
34 | + ), |
|
35 | + 20 => array( |
|
36 | + 'id' => '_REG_count', |
|
37 | + 'content' => $this->_reg_count_stop(), |
|
38 | + 'options' => array( |
|
39 | + 'tipLocation' => 'top', |
|
40 | + 'tipAdjustmentX' => -5, |
|
41 | + 'tipAdjustmentY' => -20, |
|
42 | + ), |
|
43 | + ), |
|
44 | + 30 => array( |
|
45 | + 'id' => 'ATT_name', |
|
46 | + 'content' => $this->_attendee_name_stop(), |
|
47 | + 'options' => array( |
|
48 | + 'tipLocation' => 'top', |
|
49 | + 'tipAdjustmentX' => -5, |
|
50 | + 'tipAdjustmentY' => -20, |
|
51 | + ), |
|
52 | + ), |
|
53 | + 40 => array( |
|
54 | + 'id' => 'ATT_email', |
|
55 | + 'content' => $this->_attendee_email_stop(), |
|
56 | + 'options' => array( |
|
57 | + 'tipLocation' => 'top', |
|
58 | + 'tipAdjustmentX' => -5, |
|
59 | + 'tipAdjustmentY' => -20, |
|
60 | + ), |
|
61 | + ), |
|
62 | + 50 => array( |
|
63 | + 'id' => '_REG_date', |
|
64 | + 'content' => $this->_reg_date_stop(), |
|
65 | + 'options' => array( |
|
66 | + 'tipLocation' => 'top', |
|
67 | + 'tipAdjustmentX' => -5, |
|
68 | + 'tipAdjustmentY' => -20, |
|
69 | + ), |
|
70 | + ), |
|
71 | + 60 => array( |
|
72 | + 'id' => '_REG_code', |
|
73 | + 'content' => $this->_reg_code_stop(), |
|
74 | + 'options' => array( |
|
75 | + 'tipLocation' => 'top', |
|
76 | + 'tipAdjustmentX' => -5, |
|
77 | + 'tipAdjustmentY' => -20, |
|
78 | + ), |
|
79 | + ), |
|
80 | + 80 => array( |
|
81 | + 'id' => '_REG_final_price', |
|
82 | + 'content' => $this->_reg_final_price_stop(), |
|
83 | + 'options' => array( |
|
84 | + 'tipLocation' => 'top', |
|
85 | + 'tipAdjustmentX' => -5, |
|
86 | + 'tipAdjustmentY' => -20, |
|
87 | + ), |
|
88 | + ), |
|
89 | + 90 => array( |
|
90 | + 'id' => 'TXN_paid', |
|
91 | + 'content' => $this->_txn_paid_stop(), |
|
92 | + 'options' => array( |
|
93 | + 'tipLocation' => 'left', |
|
94 | + 'tipAdjustmentX' => 0, |
|
95 | + 'tipAdjustmentY' => -50, |
|
96 | + ), |
|
97 | + ), |
|
98 | + 100 => array( |
|
99 | + 'id' => 'TXN_total', |
|
100 | + 'content' => $this->_txn_total_stop(), |
|
101 | + 'options' => array( |
|
102 | + 'tipLocation' => 'left', |
|
103 | + 'tipAdjustmentX' => 0, |
|
104 | + 'tipAdjustmentY' => -50, |
|
105 | + ), |
|
106 | + ), |
|
107 | + 110 => array( |
|
108 | + 'id' => 'PRC_name', |
|
109 | + 'content' => $this->_prc_name_stop(), |
|
110 | + 'options' => array( |
|
111 | + 'tipLocation' => 'left', |
|
112 | + 'tipAdjustmentX' => 0, |
|
113 | + 'tipAdjustmentY' => -50, |
|
114 | + ), |
|
115 | + ), |
|
116 | + 115 => array( |
|
117 | + 'id' => 'actions', |
|
118 | + 'content' => $this->_actions_stop(), |
|
119 | + 'options' => array( |
|
120 | + 'tipLocation' => 'left', |
|
121 | + 'tipAdjustmentX' => 0, |
|
122 | + 'tipAdjustmentY' => -30, |
|
123 | + ), |
|
124 | + ), |
|
125 | + 120 => array( |
|
126 | + 'class' => 'ee-list-table-legend-container', |
|
127 | + 'content' => $this->_legend_stop(), |
|
128 | + 'options' => array( |
|
129 | + 'tipLocation' => 'top', |
|
130 | + 'tipAdjustmentX' => 15, |
|
131 | + 'tipAdjustmentY' => -40, |
|
132 | + ), |
|
133 | + ), |
|
134 | + 125 => array( |
|
135 | + 'class' => 'bulkactions', |
|
136 | + 'content' => $this->_bulkactions_stop(), |
|
137 | + 'options' => array( |
|
138 | + 'tipLocation' => 'bottom', |
|
139 | + 'tipAdjustmentY' => -30, |
|
140 | + 'tipAdjustmentX' => 15, |
|
141 | + ), |
|
142 | + ), |
|
143 | + 130 => array( |
|
144 | + 'id' => 'event_id', |
|
145 | + 'content' => $this->_event_selector_stop(), |
|
146 | + 'options' => array( |
|
147 | + 'tipLocation' => 'right', |
|
148 | + 'tipAdjustmentY' => -50, |
|
149 | + 'tipAdjustmentX' => 25, |
|
150 | + ), |
|
151 | + ), |
|
152 | + 135 => array( |
|
153 | + 'id' => 'DTT_ID', |
|
154 | + 'content' => $this->_dtt_selector_stop(), |
|
155 | + 'options' => array( |
|
156 | + 'tipLocation' => 'bottom', |
|
157 | + 'tipAdjustmentY' => -30, |
|
158 | + 'tipAdjustmentX' => 15, |
|
159 | + ), |
|
160 | + ), |
|
161 | + 140 => array( |
|
162 | + 'id' => 'event-espresso_page_espresso_registrations-search-input', |
|
163 | + 'content' => $this->_search_stop(), |
|
164 | + 'options' => array( |
|
165 | + 'tipLocation' => 'left', |
|
166 | + 'tipAdjustmentY' => -50, |
|
167 | + 'tipAdjustmentX' => -15, |
|
168 | + ), |
|
169 | + ), |
|
170 | + ); |
|
171 | + } |
|
172 | 172 | |
173 | 173 | |
174 | - protected function _start() |
|
175 | - { |
|
176 | - $content = '<h3>' . __('Event Check-in', 'event_espresso') . '</h3>'; |
|
177 | - if (isset($this->_req_data['event_id'])) { |
|
178 | - $content .= '<p>' |
|
179 | - . __( |
|
180 | - 'This tour of the Event Check-in page will go over different areas of the screen to help you understand what they are used for.<br /><br /> Note: You are currently viewing the check-in for a specific event so you can toggle the check-in status for attendees.', |
|
181 | - 'event_espresso' |
|
182 | - ) . '</p>'; |
|
183 | - } else { |
|
184 | - $content .= '<p>' |
|
185 | - . __( |
|
186 | - 'This tour of the event check-in page will go over different areas of the screen to help you understand what they are used for. <br /><br /> Note: You must select an event from the dropdown menu before you can toggle the check-in status for an attendee.', |
|
187 | - 'event_espresso' |
|
188 | - ) . '</p>'; |
|
189 | - } |
|
190 | - return $content; |
|
191 | - } |
|
174 | + protected function _start() |
|
175 | + { |
|
176 | + $content = '<h3>' . __('Event Check-in', 'event_espresso') . '</h3>'; |
|
177 | + if (isset($this->_req_data['event_id'])) { |
|
178 | + $content .= '<p>' |
|
179 | + . __( |
|
180 | + 'This tour of the Event Check-in page will go over different areas of the screen to help you understand what they are used for.<br /><br /> Note: You are currently viewing the check-in for a specific event so you can toggle the check-in status for attendees.', |
|
181 | + 'event_espresso' |
|
182 | + ) . '</p>'; |
|
183 | + } else { |
|
184 | + $content .= '<p>' |
|
185 | + . __( |
|
186 | + 'This tour of the event check-in page will go over different areas of the screen to help you understand what they are used for. <br /><br /> Note: You must select an event from the dropdown menu before you can toggle the check-in status for an attendee.', |
|
187 | + 'event_espresso' |
|
188 | + ) . '</p>'; |
|
189 | + } |
|
190 | + return $content; |
|
191 | + } |
|
192 | 192 | |
193 | - protected function _reg_count_stop() |
|
194 | - { |
|
195 | - return '<p>' . __('View registration number.', 'event_espresso') . '</p>'; |
|
196 | - } |
|
193 | + protected function _reg_count_stop() |
|
194 | + { |
|
195 | + return '<p>' . __('View registration number.', 'event_espresso') . '</p>'; |
|
196 | + } |
|
197 | 197 | |
198 | - protected function _attendee_name_stop() |
|
199 | - { |
|
200 | - return '<p>' |
|
201 | - . __( |
|
202 | - 'View name of registrant. Can be sorted in ascending or descending order.', |
|
203 | - 'event_espresso' |
|
204 | - ) . '</p>'; |
|
205 | - } |
|
198 | + protected function _attendee_name_stop() |
|
199 | + { |
|
200 | + return '<p>' |
|
201 | + . __( |
|
202 | + 'View name of registrant. Can be sorted in ascending or descending order.', |
|
203 | + 'event_espresso' |
|
204 | + ) . '</p>'; |
|
205 | + } |
|
206 | 206 | |
207 | - protected function _attendee_email_stop() |
|
208 | - { |
|
209 | - return '<p>' . __('View email address for a registrant.', 'event_espresso') . '</p>'; |
|
210 | - } |
|
207 | + protected function _attendee_email_stop() |
|
208 | + { |
|
209 | + return '<p>' . __('View email address for a registrant.', 'event_espresso') . '</p>'; |
|
210 | + } |
|
211 | 211 | |
212 | - protected function _reg_date_stop() |
|
213 | - { |
|
214 | - return '<p>' |
|
215 | - . __( |
|
216 | - 'View registration date. Can be sorted in ascending or descending order.', |
|
217 | - 'event_espresso' |
|
218 | - ) . '</p>'; |
|
219 | - } |
|
212 | + protected function _reg_date_stop() |
|
213 | + { |
|
214 | + return '<p>' |
|
215 | + . __( |
|
216 | + 'View registration date. Can be sorted in ascending or descending order.', |
|
217 | + 'event_espresso' |
|
218 | + ) . '</p>'; |
|
219 | + } |
|
220 | 220 | |
221 | - protected function _reg_code_stop() |
|
222 | - { |
|
223 | - return '<p>' |
|
224 | - . __( |
|
225 | - 'View registration code. Can be sorted in ascending or descending order.', |
|
226 | - 'event_espresso' |
|
227 | - ) . '</p>'; |
|
228 | - } |
|
221 | + protected function _reg_code_stop() |
|
222 | + { |
|
223 | + return '<p>' |
|
224 | + . __( |
|
225 | + 'View registration code. Can be sorted in ascending or descending order.', |
|
226 | + 'event_espresso' |
|
227 | + ) . '</p>'; |
|
228 | + } |
|
229 | 229 | |
230 | - protected function _reg_final_price_stop() |
|
231 | - { |
|
232 | - return '<p>' . __('View price for ticket.', 'event_espresso') . '</p>'; |
|
233 | - } |
|
230 | + protected function _reg_final_price_stop() |
|
231 | + { |
|
232 | + return '<p>' . __('View price for ticket.', 'event_espresso') . '</p>'; |
|
233 | + } |
|
234 | 234 | |
235 | - protected function _txn_paid_stop() |
|
236 | - { |
|
237 | - return '<p>' . __('View if registrant has paid for ticket.', 'event_espresso') . '</p>'; |
|
238 | - } |
|
235 | + protected function _txn_paid_stop() |
|
236 | + { |
|
237 | + return '<p>' . __('View if registrant has paid for ticket.', 'event_espresso') . '</p>'; |
|
238 | + } |
|
239 | 239 | |
240 | - protected function _txn_total_stop() |
|
241 | - { |
|
242 | - return '<p>' . __('View total amount paid.', 'event_espresso') . '</p>'; |
|
243 | - } |
|
240 | + protected function _txn_total_stop() |
|
241 | + { |
|
242 | + return '<p>' . __('View total amount paid.', 'event_espresso') . '</p>'; |
|
243 | + } |
|
244 | 244 | |
245 | - protected function _prc_name_stop() |
|
246 | - { |
|
247 | - return '<p>' . __('View type of ticket.', 'event_espresso') . '</p>'; |
|
248 | - } |
|
245 | + protected function _prc_name_stop() |
|
246 | + { |
|
247 | + return '<p>' . __('View type of ticket.', 'event_espresso') . '</p>'; |
|
248 | + } |
|
249 | 249 | |
250 | - protected function _actions_stop() |
|
251 | - { |
|
252 | - return '<p>' |
|
253 | - . __( |
|
254 | - 'Perform an action to a registration. See legend in bottom left corner.', |
|
255 | - 'event_espresso' |
|
256 | - ) . '</p>'; |
|
257 | - } |
|
250 | + protected function _actions_stop() |
|
251 | + { |
|
252 | + return '<p>' |
|
253 | + . __( |
|
254 | + 'Perform an action to a registration. See legend in bottom left corner.', |
|
255 | + 'event_espresso' |
|
256 | + ) . '</p>'; |
|
257 | + } |
|
258 | 258 | |
259 | - protected function _legend_stop() |
|
260 | - { |
|
261 | - return '<p>' |
|
262 | - . __( |
|
263 | - 'This is the legend that describes the different check-in statuses. Also shows available status for registrations.', |
|
264 | - 'event_espresso' |
|
265 | - ) . '</p>'; |
|
266 | - } |
|
259 | + protected function _legend_stop() |
|
260 | + { |
|
261 | + return '<p>' |
|
262 | + . __( |
|
263 | + 'This is the legend that describes the different check-in statuses. Also shows available status for registrations.', |
|
264 | + 'event_espresso' |
|
265 | + ) . '</p>'; |
|
266 | + } |
|
267 | 267 | |
268 | - protected function _bulkactions_stop() |
|
269 | - { |
|
270 | - return '<p>' |
|
271 | - . __( |
|
272 | - 'Perform a bulk action to multiple registrations (only available when viewing check-in for a specific event).', |
|
273 | - 'event_espresso' |
|
274 | - ) . '</p>'; |
|
275 | - } |
|
268 | + protected function _bulkactions_stop() |
|
269 | + { |
|
270 | + return '<p>' |
|
271 | + . __( |
|
272 | + 'Perform a bulk action to multiple registrations (only available when viewing check-in for a specific event).', |
|
273 | + 'event_espresso' |
|
274 | + ) . '</p>'; |
|
275 | + } |
|
276 | 276 | |
277 | - protected function _event_selector_stop() |
|
278 | - { |
|
279 | - return '<p>' |
|
280 | - . __( |
|
281 | - 'Select an event from this dropdown and click the filter button to see the check-in registration list for a specific event. You will then be able to toggle the check-in status for a registration.', |
|
282 | - 'event_espresso' |
|
283 | - ) . '</p>'; |
|
284 | - } |
|
277 | + protected function _event_selector_stop() |
|
278 | + { |
|
279 | + return '<p>' |
|
280 | + . __( |
|
281 | + 'Select an event from this dropdown and click the filter button to see the check-in registration list for a specific event. You will then be able to toggle the check-in status for a registration.', |
|
282 | + 'event_espresso' |
|
283 | + ) . '</p>'; |
|
284 | + } |
|
285 | 285 | |
286 | - protected function _dtt_selector_stop() |
|
287 | - { |
|
288 | - return '<p>' |
|
289 | - . __( |
|
290 | - 'This dropdown shows you the date and time that a displayed registration is attached to. You can switch to a different event by selecting another date and clicking on the filter button. You can also switch out of this view by clicking on the reset filters button.', |
|
291 | - 'event_espresso' |
|
292 | - ) . '</p>'; |
|
293 | - } |
|
286 | + protected function _dtt_selector_stop() |
|
287 | + { |
|
288 | + return '<p>' |
|
289 | + . __( |
|
290 | + 'This dropdown shows you the date and time that a displayed registration is attached to. You can switch to a different event by selecting another date and clicking on the filter button. You can also switch out of this view by clicking on the reset filters button.', |
|
291 | + 'event_espresso' |
|
292 | + ) . '</p>'; |
|
293 | + } |
|
294 | 294 | |
295 | - protected function _search_stop() |
|
296 | - { |
|
297 | - return '<p>' |
|
298 | - . __( |
|
299 | - 'Search through registrations. The following sources will be searched: Event Name, Event Description, First Name, Last Name, Biography, Email Address, Address, Comments, Notes, Registration Final Price, Registration Code, Registration Group Size, Ticket Name, and Ticket Description.', |
|
300 | - 'event_espresso' |
|
301 | - ) . '</p>'; |
|
302 | - } |
|
295 | + protected function _search_stop() |
|
296 | + { |
|
297 | + return '<p>' |
|
298 | + . __( |
|
299 | + 'Search through registrations. The following sources will be searched: Event Name, Event Description, First Name, Last Name, Biography, Email Address, Address, Comments, Notes, Registration Final Price, Registration Code, Registration Group Size, Ticket Name, and Ticket Description.', |
|
300 | + 'event_espresso' |
|
301 | + ) . '</p>'; |
|
302 | + } |
|
303 | 303 | } |
@@ -173,26 +173,26 @@ discard block |
||
173 | 173 | |
174 | 174 | protected function _start() |
175 | 175 | { |
176 | - $content = '<h3>' . __('Event Check-in', 'event_espresso') . '</h3>'; |
|
176 | + $content = '<h3>'.__('Event Check-in', 'event_espresso').'</h3>'; |
|
177 | 177 | if (isset($this->_req_data['event_id'])) { |
178 | 178 | $content .= '<p>' |
179 | 179 | . __( |
180 | 180 | 'This tour of the Event Check-in page will go over different areas of the screen to help you understand what they are used for.<br /><br /> Note: You are currently viewing the check-in for a specific event so you can toggle the check-in status for attendees.', |
181 | 181 | 'event_espresso' |
182 | - ) . '</p>'; |
|
182 | + ).'</p>'; |
|
183 | 183 | } else { |
184 | 184 | $content .= '<p>' |
185 | 185 | . __( |
186 | 186 | 'This tour of the event check-in page will go over different areas of the screen to help you understand what they are used for. <br /><br /> Note: You must select an event from the dropdown menu before you can toggle the check-in status for an attendee.', |
187 | 187 | 'event_espresso' |
188 | - ) . '</p>'; |
|
188 | + ).'</p>'; |
|
189 | 189 | } |
190 | 190 | return $content; |
191 | 191 | } |
192 | 192 | |
193 | 193 | protected function _reg_count_stop() |
194 | 194 | { |
195 | - return '<p>' . __('View registration number.', 'event_espresso') . '</p>'; |
|
195 | + return '<p>'.__('View registration number.', 'event_espresso').'</p>'; |
|
196 | 196 | } |
197 | 197 | |
198 | 198 | protected function _attendee_name_stop() |
@@ -201,12 +201,12 @@ discard block |
||
201 | 201 | . __( |
202 | 202 | 'View name of registrant. Can be sorted in ascending or descending order.', |
203 | 203 | 'event_espresso' |
204 | - ) . '</p>'; |
|
204 | + ).'</p>'; |
|
205 | 205 | } |
206 | 206 | |
207 | 207 | protected function _attendee_email_stop() |
208 | 208 | { |
209 | - return '<p>' . __('View email address for a registrant.', 'event_espresso') . '</p>'; |
|
209 | + return '<p>'.__('View email address for a registrant.', 'event_espresso').'</p>'; |
|
210 | 210 | } |
211 | 211 | |
212 | 212 | protected function _reg_date_stop() |
@@ -215,7 +215,7 @@ discard block |
||
215 | 215 | . __( |
216 | 216 | 'View registration date. Can be sorted in ascending or descending order.', |
217 | 217 | 'event_espresso' |
218 | - ) . '</p>'; |
|
218 | + ).'</p>'; |
|
219 | 219 | } |
220 | 220 | |
221 | 221 | protected function _reg_code_stop() |
@@ -224,27 +224,27 @@ discard block |
||
224 | 224 | . __( |
225 | 225 | 'View registration code. Can be sorted in ascending or descending order.', |
226 | 226 | 'event_espresso' |
227 | - ) . '</p>'; |
|
227 | + ).'</p>'; |
|
228 | 228 | } |
229 | 229 | |
230 | 230 | protected function _reg_final_price_stop() |
231 | 231 | { |
232 | - return '<p>' . __('View price for ticket.', 'event_espresso') . '</p>'; |
|
232 | + return '<p>'.__('View price for ticket.', 'event_espresso').'</p>'; |
|
233 | 233 | } |
234 | 234 | |
235 | 235 | protected function _txn_paid_stop() |
236 | 236 | { |
237 | - return '<p>' . __('View if registrant has paid for ticket.', 'event_espresso') . '</p>'; |
|
237 | + return '<p>'.__('View if registrant has paid for ticket.', 'event_espresso').'</p>'; |
|
238 | 238 | } |
239 | 239 | |
240 | 240 | protected function _txn_total_stop() |
241 | 241 | { |
242 | - return '<p>' . __('View total amount paid.', 'event_espresso') . '</p>'; |
|
242 | + return '<p>'.__('View total amount paid.', 'event_espresso').'</p>'; |
|
243 | 243 | } |
244 | 244 | |
245 | 245 | protected function _prc_name_stop() |
246 | 246 | { |
247 | - return '<p>' . __('View type of ticket.', 'event_espresso') . '</p>'; |
|
247 | + return '<p>'.__('View type of ticket.', 'event_espresso').'</p>'; |
|
248 | 248 | } |
249 | 249 | |
250 | 250 | protected function _actions_stop() |
@@ -253,7 +253,7 @@ discard block |
||
253 | 253 | . __( |
254 | 254 | 'Perform an action to a registration. See legend in bottom left corner.', |
255 | 255 | 'event_espresso' |
256 | - ) . '</p>'; |
|
256 | + ).'</p>'; |
|
257 | 257 | } |
258 | 258 | |
259 | 259 | protected function _legend_stop() |
@@ -262,7 +262,7 @@ discard block |
||
262 | 262 | . __( |
263 | 263 | 'This is the legend that describes the different check-in statuses. Also shows available status for registrations.', |
264 | 264 | 'event_espresso' |
265 | - ) . '</p>'; |
|
265 | + ).'</p>'; |
|
266 | 266 | } |
267 | 267 | |
268 | 268 | protected function _bulkactions_stop() |
@@ -271,7 +271,7 @@ discard block |
||
271 | 271 | . __( |
272 | 272 | 'Perform a bulk action to multiple registrations (only available when viewing check-in for a specific event).', |
273 | 273 | 'event_espresso' |
274 | - ) . '</p>'; |
|
274 | + ).'</p>'; |
|
275 | 275 | } |
276 | 276 | |
277 | 277 | protected function _event_selector_stop() |
@@ -280,7 +280,7 @@ discard block |
||
280 | 280 | . __( |
281 | 281 | 'Select an event from this dropdown and click the filter button to see the check-in registration list for a specific event. You will then be able to toggle the check-in status for a registration.', |
282 | 282 | 'event_espresso' |
283 | - ) . '</p>'; |
|
283 | + ).'</p>'; |
|
284 | 284 | } |
285 | 285 | |
286 | 286 | protected function _dtt_selector_stop() |
@@ -289,7 +289,7 @@ discard block |
||
289 | 289 | . __( |
290 | 290 | 'This dropdown shows you the date and time that a displayed registration is attached to. You can switch to a different event by selecting another date and clicking on the filter button. You can also switch out of this view by clicking on the reset filters button.', |
291 | 291 | 'event_espresso' |
292 | - ) . '</p>'; |
|
292 | + ).'</p>'; |
|
293 | 293 | } |
294 | 294 | |
295 | 295 | protected function _search_stop() |
@@ -298,6 +298,6 @@ discard block |
||
298 | 298 | . __( |
299 | 299 | 'Search through registrations. The following sources will be searched: Event Name, Event Description, First Name, Last Name, Biography, Email Address, Address, Comments, Notes, Registration Final Price, Registration Code, Registration Group Size, Ticket Name, and Ticket Description.', |
300 | 300 | 'event_espresso' |
301 | - ) . '</p>'; |
|
301 | + ).'</p>'; |
|
302 | 302 | } |
303 | 303 | } |