Completed
Branch feature/checkins-to-csv (6396a5)
by
unknown
07:19 queued 04:57
created
core/libraries/shortcodes/EE_Datetime_List_Shortcodes.lib.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -168,7 +168,7 @@  discard block
 block discarded – undo
168 168
     private function _get_datetimes_from_event(EE_Event $event)
169 169
     {
170 170
         return isset($this->_extra_data['data']->events)
171
-            ? $this->_extra_data['data']->events[ $event->ID() ]['dtt_objs']
171
+            ? $this->_extra_data['data']->events[$event->ID()]['dtt_objs']
172 172
             : [];
173 173
     }
174 174
 
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
     private function _get_datetimes_from_ticket(EE_Ticket $ticket)
183 183
     {
184 184
         return isset($this->_extra_data['data']->tickets)
185
-            ? $this->_extra_data['data']->tickets[ $ticket->ID() ]['dtt_objs']
185
+            ? $this->_extra_data['data']->tickets[$ticket->ID()]['dtt_objs']
186 186
             : [];
187 187
     }
188 188
 }
Please login to merge, or discard this patch.
Indentation   +164 added lines, -164 removed lines patch added patch discarded remove patch
@@ -20,168 +20,168 @@
 block discarded – undo
20 20
 {
21 21
 
22 22
 
23
-    protected function _init_props()
24
-    {
25
-        $this->label       = esc_html__('Datetime List Shortcodes', 'event_espresso');
26
-        $this->description = esc_html__('All shortcodes specific to datetime lists', 'event_espresso');
27
-        $this->_shortcodes = [
28
-            '[DATETIME_LIST]' => esc_html__(
29
-                'Will output a list of datetimes according to the layout specified in the datetime list field.',
30
-                'event_espresso'
31
-            ),
32
-        ];
33
-    }
34
-
35
-
36
-    /**
37
-     * @throws EE_Error
38
-     * @throws ReflectionException
39
-     */
40
-    protected function _parser($shortcode)
41
-    {
42
-        switch ($shortcode) {
43
-            case '[DATETIME_LIST]':
44
-                return $this->_get_datetime_list();
45
-        }
46
-        return '';
47
-    }
48
-
49
-
50
-    /**
51
-     * figure out what the incoming data is and then return the appropriate parsed value.
52
-     *
53
-     * @return string
54
-     * @throws EE_Error
55
-     * @throws EE_Error
56
-     * @throws ReflectionException
57
-     */
58
-    private function _get_datetime_list()
59
-    {
60
-        $this->_validate_list_requirements();
61
-
62
-        if ($this->_data['data'] instanceof EE_Ticket) {
63
-            return $this->_get_datetime_list_for_ticket();
64
-        }
65
-        if ($this->_data['data'] instanceof EE_Event) {
66
-            return $this->_get_datetime_list_for_event();
67
-        }
68
-        if (
69
-            $this->_data['data'] instanceof EE_Messages_Addressee
70
-            && $this->_data['data']->reg_obj instanceof EE_Registration
71
-        ) {
72
-            return $this->_get_datetime_list_for_registration();
73
-        }
74
-        // prevent recursive loop
75
-        return '';
76
-    }
77
-
78
-
79
-    /**
80
-     * return parsed list of datetimes for an event
81
-     *
82
-     * @return string
83
-     * @throws EE_Error
84
-     * @throws ReflectionException
85
-     */
86
-    private function _get_datetime_list_for_event()
87
-    {
88
-        $event            = $this->_data['data'];
89
-        $valid_shortcodes = ['datetime', 'attendee'];
90
-        $template         = is_array($this->_data['template']) && isset($this->_data['template']['datetime_list'])
91
-            ? $this->_data['template']['datetime_list']
92
-            : $this->_extra_data['template']['datetime_list'];
93
-
94
-        // here we're setting up the datetimes for the datetime list template for THIS event.
95
-        $dtt_parsed = '';
96
-        $datetimes  = $this->_get_datetimes_from_event($event);
97
-
98
-        // each datetime in this case should be an datetime object.
99
-        foreach ($datetimes as $datetime) {
100
-            $dtt_parsed .= $this->_shortcode_helper->parse_datetime_list_template(
101
-                $template,
102
-                $datetime,
103
-                $valid_shortcodes,
104
-                $this->_extra_data
105
-            );
106
-        }
107
-
108
-        return $dtt_parsed;
109
-    }
110
-
111
-
112
-    /**
113
-     * return parsed list of datetimes for an ticket
114
-     *
115
-     * @return string
116
-     * @throws EE_Error
117
-     */
118
-    private function _get_datetime_list_for_ticket()
119
-    {
120
-        $valid_shortcodes = ['datetime', 'attendee'];
121
-
122
-        $template = is_array($this->_data['template']) && isset($this->_data['template']['datetime_list'])
123
-            ? $this->_data['template']['datetime_list']
124
-            : $this->_extra_data['template']['datetime_list'];
125
-        $ticket   = $this->_data['data'];
126
-
127
-        // here we're setting up the datetimes for the datetime list template for THIS ticket.
128
-        $dtt_parsed = '';
129
-        $datetimes  = $this->_get_datetimes_from_ticket($ticket);
130
-
131
-        // each datetime in this case should be an datetime object.
132
-        foreach ($datetimes as $datetime) {
133
-            $dtt_parsed .= $this->_shortcode_helper->parse_datetime_list_template(
134
-                $template,
135
-                $datetime,
136
-                $valid_shortcodes,
137
-                $this->_extra_data
138
-            );
139
-        }
140
-
141
-        return $dtt_parsed;
142
-    }
143
-
144
-
145
-    /**
146
-     * return parsed list of datetimes from a given registration.
147
-     *
148
-     * @return string
149
-     * @throws EE_Error
150
-     * @throws EE_Error
151
-     */
152
-    private function _get_datetime_list_for_registration()
153
-    {
154
-        $registration = $this->_data['data']->reg_obj;
155
-
156
-        // now let's just get the ticket, set $this->_data['data'] to the ticket and then call _get_datetime_list_for__ticket();
157
-        $this->_data['data'] = $registration->ticket();
158
-        return $this->_get_datetime_list_for_ticket();
159
-    }
160
-
161
-
162
-    /**
163
-     * @param EE_Event $event
164
-     * @return array|mixed
165
-     * @throws EE_Error
166
-     * @throws ReflectionException
167
-     */
168
-    private function _get_datetimes_from_event(EE_Event $event)
169
-    {
170
-        return isset($this->_extra_data['data']->events)
171
-            ? $this->_extra_data['data']->events[ $event->ID() ]['dtt_objs']
172
-            : [];
173
-    }
174
-
175
-
176
-    /**
177
-     * @param EE_Ticket $ticket
178
-     * @return array|mixed
179
-     * @throws EE_Error
180
-     */
181
-    private function _get_datetimes_from_ticket(EE_Ticket $ticket)
182
-    {
183
-        return isset($this->_extra_data['data']->tickets)
184
-            ? $this->_extra_data['data']->tickets[ $ticket->ID() ]['dtt_objs']
185
-            : [];
186
-    }
23
+	protected function _init_props()
24
+	{
25
+		$this->label       = esc_html__('Datetime List Shortcodes', 'event_espresso');
26
+		$this->description = esc_html__('All shortcodes specific to datetime lists', 'event_espresso');
27
+		$this->_shortcodes = [
28
+			'[DATETIME_LIST]' => esc_html__(
29
+				'Will output a list of datetimes according to the layout specified in the datetime list field.',
30
+				'event_espresso'
31
+			),
32
+		];
33
+	}
34
+
35
+
36
+	/**
37
+	 * @throws EE_Error
38
+	 * @throws ReflectionException
39
+	 */
40
+	protected function _parser($shortcode)
41
+	{
42
+		switch ($shortcode) {
43
+			case '[DATETIME_LIST]':
44
+				return $this->_get_datetime_list();
45
+		}
46
+		return '';
47
+	}
48
+
49
+
50
+	/**
51
+	 * figure out what the incoming data is and then return the appropriate parsed value.
52
+	 *
53
+	 * @return string
54
+	 * @throws EE_Error
55
+	 * @throws EE_Error
56
+	 * @throws ReflectionException
57
+	 */
58
+	private function _get_datetime_list()
59
+	{
60
+		$this->_validate_list_requirements();
61
+
62
+		if ($this->_data['data'] instanceof EE_Ticket) {
63
+			return $this->_get_datetime_list_for_ticket();
64
+		}
65
+		if ($this->_data['data'] instanceof EE_Event) {
66
+			return $this->_get_datetime_list_for_event();
67
+		}
68
+		if (
69
+			$this->_data['data'] instanceof EE_Messages_Addressee
70
+			&& $this->_data['data']->reg_obj instanceof EE_Registration
71
+		) {
72
+			return $this->_get_datetime_list_for_registration();
73
+		}
74
+		// prevent recursive loop
75
+		return '';
76
+	}
77
+
78
+
79
+	/**
80
+	 * return parsed list of datetimes for an event
81
+	 *
82
+	 * @return string
83
+	 * @throws EE_Error
84
+	 * @throws ReflectionException
85
+	 */
86
+	private function _get_datetime_list_for_event()
87
+	{
88
+		$event            = $this->_data['data'];
89
+		$valid_shortcodes = ['datetime', 'attendee'];
90
+		$template         = is_array($this->_data['template']) && isset($this->_data['template']['datetime_list'])
91
+			? $this->_data['template']['datetime_list']
92
+			: $this->_extra_data['template']['datetime_list'];
93
+
94
+		// here we're setting up the datetimes for the datetime list template for THIS event.
95
+		$dtt_parsed = '';
96
+		$datetimes  = $this->_get_datetimes_from_event($event);
97
+
98
+		// each datetime in this case should be an datetime object.
99
+		foreach ($datetimes as $datetime) {
100
+			$dtt_parsed .= $this->_shortcode_helper->parse_datetime_list_template(
101
+				$template,
102
+				$datetime,
103
+				$valid_shortcodes,
104
+				$this->_extra_data
105
+			);
106
+		}
107
+
108
+		return $dtt_parsed;
109
+	}
110
+
111
+
112
+	/**
113
+	 * return parsed list of datetimes for an ticket
114
+	 *
115
+	 * @return string
116
+	 * @throws EE_Error
117
+	 */
118
+	private function _get_datetime_list_for_ticket()
119
+	{
120
+		$valid_shortcodes = ['datetime', 'attendee'];
121
+
122
+		$template = is_array($this->_data['template']) && isset($this->_data['template']['datetime_list'])
123
+			? $this->_data['template']['datetime_list']
124
+			: $this->_extra_data['template']['datetime_list'];
125
+		$ticket   = $this->_data['data'];
126
+
127
+		// here we're setting up the datetimes for the datetime list template for THIS ticket.
128
+		$dtt_parsed = '';
129
+		$datetimes  = $this->_get_datetimes_from_ticket($ticket);
130
+
131
+		// each datetime in this case should be an datetime object.
132
+		foreach ($datetimes as $datetime) {
133
+			$dtt_parsed .= $this->_shortcode_helper->parse_datetime_list_template(
134
+				$template,
135
+				$datetime,
136
+				$valid_shortcodes,
137
+				$this->_extra_data
138
+			);
139
+		}
140
+
141
+		return $dtt_parsed;
142
+	}
143
+
144
+
145
+	/**
146
+	 * return parsed list of datetimes from a given registration.
147
+	 *
148
+	 * @return string
149
+	 * @throws EE_Error
150
+	 * @throws EE_Error
151
+	 */
152
+	private function _get_datetime_list_for_registration()
153
+	{
154
+		$registration = $this->_data['data']->reg_obj;
155
+
156
+		// now let's just get the ticket, set $this->_data['data'] to the ticket and then call _get_datetime_list_for__ticket();
157
+		$this->_data['data'] = $registration->ticket();
158
+		return $this->_get_datetime_list_for_ticket();
159
+	}
160
+
161
+
162
+	/**
163
+	 * @param EE_Event $event
164
+	 * @return array|mixed
165
+	 * @throws EE_Error
166
+	 * @throws ReflectionException
167
+	 */
168
+	private function _get_datetimes_from_event(EE_Event $event)
169
+	{
170
+		return isset($this->_extra_data['data']->events)
171
+			? $this->_extra_data['data']->events[ $event->ID() ]['dtt_objs']
172
+			: [];
173
+	}
174
+
175
+
176
+	/**
177
+	 * @param EE_Ticket $ticket
178
+	 * @return array|mixed
179
+	 * @throws EE_Error
180
+	 */
181
+	private function _get_datetimes_from_ticket(EE_Ticket $ticket)
182
+	{
183
+		return isset($this->_extra_data['data']->tickets)
184
+			? $this->_extra_data['data']->tickets[ $ticket->ID() ]['dtt_objs']
185
+			: [];
186
+	}
187 187
 }
Please login to merge, or discard this patch.
core/libraries/shortcodes/EE_Ticket_List_Shortcodes.lib.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -202,7 +202,7 @@  discard block
 block discarded – undo
202 202
     private function _get_tickets_from_event(EE_Event $event)
203 203
     {
204 204
         return isset($this->_extra_data['data']->events)
205
-            ? $this->_extra_data['data']->events[ $event->ID() ]['tkt_objs']
205
+            ? $this->_extra_data['data']->events[$event->ID()]['tkt_objs']
206 206
             : [];
207 207
     }
208 208
 
@@ -216,7 +216,7 @@  discard block
 block discarded – undo
216 216
     private function _get_ticket_list_from_registration(EE_Registration $registration)
217 217
     {
218 218
         return isset($this->_extra_data['data']->registrations)
219
-            ? [$this->_extra_data['data']->registrations[ $registration->ID() ]['tkt_obj']]
219
+            ? [$this->_extra_data['data']->registrations[$registration->ID()]['tkt_obj']]
220 220
             : [];
221 221
     }
222 222
 }
Please login to merge, or discard this patch.
Indentation   +204 added lines, -204 removed lines patch added patch discarded remove patch
@@ -19,208 +19,208 @@
 block discarded – undo
19 19
 class EE_Ticket_List_Shortcodes extends EE_Shortcodes
20 20
 {
21 21
 
22
-    public function __construct()
23
-    {
24
-        parent::__construct();
25
-    }
26
-
27
-
28
-    protected function _init_props()
29
-    {
30
-        $this->label       = esc_html__('Ticket List Shortcodes', 'event_espresso');
31
-        $this->description = esc_html__('All shortcodes specific to ticket lists', 'event_espresso');
32
-        $this->_shortcodes = [
33
-            '[TICKET_LIST]' => esc_html__('Will output a list of tickets', 'event_espresso'),
34
-        ];
35
-    }
36
-
37
-
38
-    /**
39
-     * @param string $shortcode
40
-     * @return string
41
-     * @throws EE_Error
42
-     * @throws ReflectionException
43
-     */
44
-    protected function _parser($shortcode)
45
-    {
46
-        switch ($shortcode) {
47
-            case '[TICKET_LIST]':
48
-                return $this->_get_ticket_list();
49
-        }
50
-        return '';
51
-    }
52
-
53
-
54
-    /**
55
-     * figure out what the incoming data is and then return the appropriate parsed value.
56
-     *
57
-     * @return string
58
-     * @throws EE_Error
59
-     * @throws ReflectionException
60
-     */
61
-    private function _get_ticket_list()
62
-    {
63
-        $this->_validate_list_requirements();
64
-
65
-        if ($this->_data['data'] instanceof EE_Messages_Addressee) {
66
-            return $this->_get_ticket_list_for_main();
67
-        }
68
-        if ($this->_data['data'] instanceof EE_Registration) {
69
-            return $this->_get_ticket_list_for_attendee();
70
-        }
71
-        if ($this->_data['data'] instanceof EE_Event) {
72
-            return $this->_get_ticket_list_for_event();
73
-        }
74
-        // prevent recursive loop
75
-        return '';
76
-    }
77
-
78
-
79
-    /**
80
-     * This returns the parsed ticket list for main template;
81
-     */
82
-    private function _get_ticket_list_for_main()
83
-    {
84
-        $valid_shortcodes = [
85
-            'ticket',
86
-            'event_list',
87
-            'attendee_list',
88
-            'datetime_list',
89
-            'attendee',
90
-            'line_item_list',
91
-            'primary_registration_details',
92
-            'recipient_details',
93
-        ];
94
-        $template         = $this->_data['template'];
95
-        $data             = $this->_data['data'];
96
-        $ticket_list      = '';
97
-
98
-
99
-        // now we need to loop through the ticket list and send data to the EE_Parser helper.
100
-        foreach ($data->tickets as $ticket) {
101
-            $ticket_list .= $this->_shortcode_helper->parse_ticket_list_template(
102
-                $template,
103
-                $ticket['ticket'],
104
-                $valid_shortcodes,
105
-                $this->_extra_data
106
-            );
107
-        }
108
-
109
-        return $ticket_list;
110
-    }
111
-
112
-
113
-    /**
114
-     * return parsed list of tickets for an event
115
-     *
116
-     * @return string
117
-     * @throws EE_Error
118
-     * @throws ReflectionException
119
-     */
120
-    private function _get_ticket_list_for_event()
121
-    {
122
-        $valid_shortcodes = [
123
-            'ticket',
124
-            'attendee_list',
125
-            'datetime_list',
126
-            'attendee',
127
-            'venue',
128
-            'line_item_list',
129
-            'primary_registration_details',
130
-            'recipient_details',
131
-        ];
132
-        $template         = is_array($this->_data['template']) && isset($this->_data['template']['ticket_list'])
133
-            ? $this->_data['template']['ticket_list']
134
-            : $this->_extra_data['template']['ticket_list'];
135
-        $event            = $this->_data['data'];
136
-
137
-        // let's remove any existing [EVENT_LIST] shortcodes from the ticket list template so that we don't get recursion.
138
-        $template = str_replace('[EVENT_LIST]', '', $template);
139
-
140
-        // here we're setting up the tickets for the ticket list template for THIS event.
141
-        $tkt_parsed = '';
142
-        $tickets    = $this->_get_tickets_from_event($event);
143
-
144
-        // each ticket in this case should be an ticket object.
145
-        foreach ($tickets as $ticket) {
146
-            $tkt_parsed .= $this->_shortcode_helper->parse_ticket_list_template(
147
-                $template,
148
-                $ticket,
149
-                $valid_shortcodes,
150
-                $this->_extra_data
151
-            );
152
-        }
153
-
154
-        return $tkt_parsed;
155
-    }
156
-
157
-
158
-    /**
159
-     * return parsed list of tickets for an attendee
160
-     *
161
-     * @return string
162
-     * @throws EE_Error
163
-     * @throws ReflectionException
164
-     */
165
-    private function _get_ticket_list_for_attendee()
166
-    {
167
-        $valid_shortcodes = [
168
-            'ticket',
169
-            'event_list',
170
-            'datetime_list',
171
-            'attendee',
172
-            'primary_registration_details',
173
-            'recipient_details',
174
-        ];
175
-
176
-        $template     = is_array($this->_data['template']) && isset($this->_data['template']['ticket_list'])
177
-            ? $this->_data['template']['ticket_list']
178
-            : $this->_extra_data['template']['ticket_list'];
179
-        $registration = $this->_data['data'];
180
-
181
-        // let's remove any existing [ATTENDEE_LIST] shortcode from the ticket list template so that we don't get recursion.
182
-        $template = str_replace('[ATTENDEE_LIST]', '', $template);
183
-
184
-        // here we're setting up the tickets for the ticket list template for THIS attendee.
185
-        $tkt_parsed = '';
186
-        $tickets    = $this->_get_ticket_list_from_registration($registration);
187
-
188
-        // each ticket in this case should be an ticket object.
189
-        foreach ($tickets as $ticket) {
190
-            $tkt_parsed .= $this->_shortcode_helper->parse_ticket_list_template(
191
-                $template,
192
-                $ticket,
193
-                $valid_shortcodes,
194
-                $this->_extra_data
195
-            );
196
-        }
197
-
198
-        return $tkt_parsed;
199
-    }
200
-
201
-
202
-    /**
203
-     * @throws EE_Error
204
-     * @throws ReflectionException
205
-     */
206
-    private function _get_tickets_from_event(EE_Event $event)
207
-    {
208
-        return isset($this->_extra_data['data']->events)
209
-            ? $this->_extra_data['data']->events[ $event->ID() ]['tkt_objs']
210
-            : [];
211
-    }
212
-
213
-
214
-    /**
215
-     * @param EE_Registration $registration
216
-     * @return array
217
-     * @throws EE_Error
218
-     * @throws ReflectionException
219
-     */
220
-    private function _get_ticket_list_from_registration(EE_Registration $registration)
221
-    {
222
-        return isset($this->_extra_data['data']->registrations)
223
-            ? [$this->_extra_data['data']->registrations[ $registration->ID() ]['tkt_obj']]
224
-            : [];
225
-    }
22
+	public function __construct()
23
+	{
24
+		parent::__construct();
25
+	}
26
+
27
+
28
+	protected function _init_props()
29
+	{
30
+		$this->label       = esc_html__('Ticket List Shortcodes', 'event_espresso');
31
+		$this->description = esc_html__('All shortcodes specific to ticket lists', 'event_espresso');
32
+		$this->_shortcodes = [
33
+			'[TICKET_LIST]' => esc_html__('Will output a list of tickets', 'event_espresso'),
34
+		];
35
+	}
36
+
37
+
38
+	/**
39
+	 * @param string $shortcode
40
+	 * @return string
41
+	 * @throws EE_Error
42
+	 * @throws ReflectionException
43
+	 */
44
+	protected function _parser($shortcode)
45
+	{
46
+		switch ($shortcode) {
47
+			case '[TICKET_LIST]':
48
+				return $this->_get_ticket_list();
49
+		}
50
+		return '';
51
+	}
52
+
53
+
54
+	/**
55
+	 * figure out what the incoming data is and then return the appropriate parsed value.
56
+	 *
57
+	 * @return string
58
+	 * @throws EE_Error
59
+	 * @throws ReflectionException
60
+	 */
61
+	private function _get_ticket_list()
62
+	{
63
+		$this->_validate_list_requirements();
64
+
65
+		if ($this->_data['data'] instanceof EE_Messages_Addressee) {
66
+			return $this->_get_ticket_list_for_main();
67
+		}
68
+		if ($this->_data['data'] instanceof EE_Registration) {
69
+			return $this->_get_ticket_list_for_attendee();
70
+		}
71
+		if ($this->_data['data'] instanceof EE_Event) {
72
+			return $this->_get_ticket_list_for_event();
73
+		}
74
+		// prevent recursive loop
75
+		return '';
76
+	}
77
+
78
+
79
+	/**
80
+	 * This returns the parsed ticket list for main template;
81
+	 */
82
+	private function _get_ticket_list_for_main()
83
+	{
84
+		$valid_shortcodes = [
85
+			'ticket',
86
+			'event_list',
87
+			'attendee_list',
88
+			'datetime_list',
89
+			'attendee',
90
+			'line_item_list',
91
+			'primary_registration_details',
92
+			'recipient_details',
93
+		];
94
+		$template         = $this->_data['template'];
95
+		$data             = $this->_data['data'];
96
+		$ticket_list      = '';
97
+
98
+
99
+		// now we need to loop through the ticket list and send data to the EE_Parser helper.
100
+		foreach ($data->tickets as $ticket) {
101
+			$ticket_list .= $this->_shortcode_helper->parse_ticket_list_template(
102
+				$template,
103
+				$ticket['ticket'],
104
+				$valid_shortcodes,
105
+				$this->_extra_data
106
+			);
107
+		}
108
+
109
+		return $ticket_list;
110
+	}
111
+
112
+
113
+	/**
114
+	 * return parsed list of tickets for an event
115
+	 *
116
+	 * @return string
117
+	 * @throws EE_Error
118
+	 * @throws ReflectionException
119
+	 */
120
+	private function _get_ticket_list_for_event()
121
+	{
122
+		$valid_shortcodes = [
123
+			'ticket',
124
+			'attendee_list',
125
+			'datetime_list',
126
+			'attendee',
127
+			'venue',
128
+			'line_item_list',
129
+			'primary_registration_details',
130
+			'recipient_details',
131
+		];
132
+		$template         = is_array($this->_data['template']) && isset($this->_data['template']['ticket_list'])
133
+			? $this->_data['template']['ticket_list']
134
+			: $this->_extra_data['template']['ticket_list'];
135
+		$event            = $this->_data['data'];
136
+
137
+		// let's remove any existing [EVENT_LIST] shortcodes from the ticket list template so that we don't get recursion.
138
+		$template = str_replace('[EVENT_LIST]', '', $template);
139
+
140
+		// here we're setting up the tickets for the ticket list template for THIS event.
141
+		$tkt_parsed = '';
142
+		$tickets    = $this->_get_tickets_from_event($event);
143
+
144
+		// each ticket in this case should be an ticket object.
145
+		foreach ($tickets as $ticket) {
146
+			$tkt_parsed .= $this->_shortcode_helper->parse_ticket_list_template(
147
+				$template,
148
+				$ticket,
149
+				$valid_shortcodes,
150
+				$this->_extra_data
151
+			);
152
+		}
153
+
154
+		return $tkt_parsed;
155
+	}
156
+
157
+
158
+	/**
159
+	 * return parsed list of tickets for an attendee
160
+	 *
161
+	 * @return string
162
+	 * @throws EE_Error
163
+	 * @throws ReflectionException
164
+	 */
165
+	private function _get_ticket_list_for_attendee()
166
+	{
167
+		$valid_shortcodes = [
168
+			'ticket',
169
+			'event_list',
170
+			'datetime_list',
171
+			'attendee',
172
+			'primary_registration_details',
173
+			'recipient_details',
174
+		];
175
+
176
+		$template     = is_array($this->_data['template']) && isset($this->_data['template']['ticket_list'])
177
+			? $this->_data['template']['ticket_list']
178
+			: $this->_extra_data['template']['ticket_list'];
179
+		$registration = $this->_data['data'];
180
+
181
+		// let's remove any existing [ATTENDEE_LIST] shortcode from the ticket list template so that we don't get recursion.
182
+		$template = str_replace('[ATTENDEE_LIST]', '', $template);
183
+
184
+		// here we're setting up the tickets for the ticket list template for THIS attendee.
185
+		$tkt_parsed = '';
186
+		$tickets    = $this->_get_ticket_list_from_registration($registration);
187
+
188
+		// each ticket in this case should be an ticket object.
189
+		foreach ($tickets as $ticket) {
190
+			$tkt_parsed .= $this->_shortcode_helper->parse_ticket_list_template(
191
+				$template,
192
+				$ticket,
193
+				$valid_shortcodes,
194
+				$this->_extra_data
195
+			);
196
+		}
197
+
198
+		return $tkt_parsed;
199
+	}
200
+
201
+
202
+	/**
203
+	 * @throws EE_Error
204
+	 * @throws ReflectionException
205
+	 */
206
+	private function _get_tickets_from_event(EE_Event $event)
207
+	{
208
+		return isset($this->_extra_data['data']->events)
209
+			? $this->_extra_data['data']->events[ $event->ID() ]['tkt_objs']
210
+			: [];
211
+	}
212
+
213
+
214
+	/**
215
+	 * @param EE_Registration $registration
216
+	 * @return array
217
+	 * @throws EE_Error
218
+	 * @throws ReflectionException
219
+	 */
220
+	private function _get_ticket_list_from_registration(EE_Registration $registration)
221
+	{
222
+		return isset($this->_extra_data['data']->registrations)
223
+			? [$this->_extra_data['data']->registrations[ $registration->ID() ]['tkt_obj']]
224
+			: [];
225
+	}
226 226
 }
Please login to merge, or discard this patch.
core/libraries/shortcodes/EE_Event_List_Shortcodes.lib.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -163,7 +163,7 @@
 block discarded – undo
163 163
     private function _get_events_from_registration(EE_Registration $registration)
164 164
     {
165 165
         return isset($this->_extra_data['data']->registrations)
166
-            ? [$this->_extra_data['data']->registrations[ $registration->ID() ]['evt_obj']]
166
+            ? [$this->_extra_data['data']->registrations[$registration->ID()]['evt_obj']]
167 167
             : [];
168 168
     }
169 169
 }
Please login to merge, or discard this patch.
Indentation   +152 added lines, -152 removed lines patch added patch discarded remove patch
@@ -19,156 +19,156 @@
 block discarded – undo
19 19
 class EE_Event_List_Shortcodes extends EE_Shortcodes
20 20
 {
21 21
 
22
-    public function __construct()
23
-    {
24
-        parent::__construct();
25
-    }
26
-
27
-
28
-    protected function _init_props()
29
-    {
30
-        $this->label       = esc_html__('Event List Shortcodes', 'event_espresso');
31
-        $this->description = esc_html__('All shortcodes specific to event lists', 'event_espresso');
32
-        $this->_shortcodes = [
33
-            '[EVENT_LIST]' => esc_html__('Will output a list of events', 'event_espresso'),
34
-        ];
35
-    }
36
-
37
-
38
-    /**
39
-     * @param string $shortcode
40
-     * @return string
41
-     * @throws EE_Error
42
-     * @throws ReflectionException
43
-     */
44
-    protected function _parser($shortcode)
45
-    {
46
-        switch ($shortcode) {
47
-            case '[EVENT_LIST]':
48
-                return $this->_get_event_list();
49
-        }
50
-        return '';
51
-    }
52
-
53
-
54
-    /**
55
-     * figure out what the incoming data is and then return the appropriate parsed value.
56
-     *
57
-     * @return string
58
-     * @throws EE_Error
59
-     * @throws ReflectionException
60
-     */
61
-    private function _get_event_list()
62
-    {
63
-        $this->_validate_list_requirements();
64
-
65
-        if ($this->_data['data'] instanceof EE_Messages_Addressee) {
66
-            return $this->_get_event_list_for_main();
67
-        }
68
-        if ($this->_data['data'] instanceof EE_Registration) {
69
-            return $this->_get_event_list_for_registration();
70
-        }
71
-        // prevent recursive loop
72
-        return '';
73
-    }
74
-
75
-
76
-    /**
77
-     * This returns the parsed event list for main template
78
-     *
79
-     * @return string
80
-     */
81
-    private function _get_event_list_for_main()
82
-    {
83
-
84
-        $valid_shortcodes = [
85
-            'event',
86
-            'attendee_list',
87
-            'ticket_list',
88
-            'datetime_list',
89
-            'venue',
90
-            'attendee',
91
-            'recipient_list',
92
-            'recipient_details',
93
-            'primary_registration_list',
94
-            'primary_registration_details',
95
-            'event_author',
96
-            'organization',
97
-        ];
98
-        $template         = $this->_data['template'];
99
-        $data             = $this->_data['data'];
100
-        $events           = '';
101
-
102
-        // now we need to loop through the events array in EE_Messages_Addressee and send data to the EE_Parser helper.
103
-        foreach ($data->events as $event) {
104
-            $events .= $this->_shortcode_helper->parse_event_list_template(
105
-                $template,
106
-                $event['event'],
107
-                $valid_shortcodes,
108
-                $this->_extra_data
109
-            );
110
-        }
111
-        return $events;
112
-    }
113
-
114
-
115
-    /**
116
-     * This returns the parsed event list for an attendee
117
-     *
118
-     * @return string
119
-     * @throws EE_Error
120
-     * @throws ReflectionException
121
-     */
122
-    private function _get_event_list_for_registration()
123
-    {
124
-        $valid_shortcodes = [
125
-            'event',
126
-            'ticket_list',
127
-            'datetime_list',
128
-            'attendee',
129
-            'event_author',
130
-            'recipient_details',
131
-            'recipient_list',
132
-            'venue',
133
-            'organization',
134
-        ];
135
-        $template         = is_array($this->_data['template']) && isset($this->_data['template']['event_list'])
136
-            ? $this->_data['template']['event_list']
137
-            : $this->_extra_data['template']['event_list'];
138
-        $registration     = $this->_data['data'];
139
-
140
-        // let's remove any existing [ATTENDEE_LIST] shortcode from the event list template so that we don't get recursion.
141
-        $template = str_replace('[ATTENDEE_LIST]', '', $template);
142
-
143
-        // here we're setting up the events for the event_list template for THIS registration.
144
-        $all_events = $this->_get_events_from_registration($registration);
145
-
146
-        // we're NOT going to prepare a list of attendees this time around
147
-        $events = '';
148
-
149
-        foreach ($all_events as $event) {
150
-            $events .= $this->_shortcode_helper->parse_event_list_template(
151
-                $template,
152
-                $event,
153
-                $valid_shortcodes,
154
-                $this->_extra_data
155
-            );
156
-        }
157
-
158
-        return $events;
159
-    }
160
-
161
-
162
-    /**
163
-     * @param EE_Registration $registration
164
-     * @return array
165
-     * @throws EE_Error
166
-     * @throws ReflectionException
167
-     */
168
-    private function _get_events_from_registration(EE_Registration $registration)
169
-    {
170
-        return isset($this->_extra_data['data']->registrations)
171
-            ? [$this->_extra_data['data']->registrations[ $registration->ID() ]['evt_obj']]
172
-            : [];
173
-    }
22
+	public function __construct()
23
+	{
24
+		parent::__construct();
25
+	}
26
+
27
+
28
+	protected function _init_props()
29
+	{
30
+		$this->label       = esc_html__('Event List Shortcodes', 'event_espresso');
31
+		$this->description = esc_html__('All shortcodes specific to event lists', 'event_espresso');
32
+		$this->_shortcodes = [
33
+			'[EVENT_LIST]' => esc_html__('Will output a list of events', 'event_espresso'),
34
+		];
35
+	}
36
+
37
+
38
+	/**
39
+	 * @param string $shortcode
40
+	 * @return string
41
+	 * @throws EE_Error
42
+	 * @throws ReflectionException
43
+	 */
44
+	protected function _parser($shortcode)
45
+	{
46
+		switch ($shortcode) {
47
+			case '[EVENT_LIST]':
48
+				return $this->_get_event_list();
49
+		}
50
+		return '';
51
+	}
52
+
53
+
54
+	/**
55
+	 * figure out what the incoming data is and then return the appropriate parsed value.
56
+	 *
57
+	 * @return string
58
+	 * @throws EE_Error
59
+	 * @throws ReflectionException
60
+	 */
61
+	private function _get_event_list()
62
+	{
63
+		$this->_validate_list_requirements();
64
+
65
+		if ($this->_data['data'] instanceof EE_Messages_Addressee) {
66
+			return $this->_get_event_list_for_main();
67
+		}
68
+		if ($this->_data['data'] instanceof EE_Registration) {
69
+			return $this->_get_event_list_for_registration();
70
+		}
71
+		// prevent recursive loop
72
+		return '';
73
+	}
74
+
75
+
76
+	/**
77
+	 * This returns the parsed event list for main template
78
+	 *
79
+	 * @return string
80
+	 */
81
+	private function _get_event_list_for_main()
82
+	{
83
+
84
+		$valid_shortcodes = [
85
+			'event',
86
+			'attendee_list',
87
+			'ticket_list',
88
+			'datetime_list',
89
+			'venue',
90
+			'attendee',
91
+			'recipient_list',
92
+			'recipient_details',
93
+			'primary_registration_list',
94
+			'primary_registration_details',
95
+			'event_author',
96
+			'organization',
97
+		];
98
+		$template         = $this->_data['template'];
99
+		$data             = $this->_data['data'];
100
+		$events           = '';
101
+
102
+		// now we need to loop through the events array in EE_Messages_Addressee and send data to the EE_Parser helper.
103
+		foreach ($data->events as $event) {
104
+			$events .= $this->_shortcode_helper->parse_event_list_template(
105
+				$template,
106
+				$event['event'],
107
+				$valid_shortcodes,
108
+				$this->_extra_data
109
+			);
110
+		}
111
+		return $events;
112
+	}
113
+
114
+
115
+	/**
116
+	 * This returns the parsed event list for an attendee
117
+	 *
118
+	 * @return string
119
+	 * @throws EE_Error
120
+	 * @throws ReflectionException
121
+	 */
122
+	private function _get_event_list_for_registration()
123
+	{
124
+		$valid_shortcodes = [
125
+			'event',
126
+			'ticket_list',
127
+			'datetime_list',
128
+			'attendee',
129
+			'event_author',
130
+			'recipient_details',
131
+			'recipient_list',
132
+			'venue',
133
+			'organization',
134
+		];
135
+		$template         = is_array($this->_data['template']) && isset($this->_data['template']['event_list'])
136
+			? $this->_data['template']['event_list']
137
+			: $this->_extra_data['template']['event_list'];
138
+		$registration     = $this->_data['data'];
139
+
140
+		// let's remove any existing [ATTENDEE_LIST] shortcode from the event list template so that we don't get recursion.
141
+		$template = str_replace('[ATTENDEE_LIST]', '', $template);
142
+
143
+		// here we're setting up the events for the event_list template for THIS registration.
144
+		$all_events = $this->_get_events_from_registration($registration);
145
+
146
+		// we're NOT going to prepare a list of attendees this time around
147
+		$events = '';
148
+
149
+		foreach ($all_events as $event) {
150
+			$events .= $this->_shortcode_helper->parse_event_list_template(
151
+				$template,
152
+				$event,
153
+				$valid_shortcodes,
154
+				$this->_extra_data
155
+			);
156
+		}
157
+
158
+		return $events;
159
+	}
160
+
161
+
162
+	/**
163
+	 * @param EE_Registration $registration
164
+	 * @return array
165
+	 * @throws EE_Error
166
+	 * @throws ReflectionException
167
+	 */
168
+	private function _get_events_from_registration(EE_Registration $registration)
169
+	{
170
+		return isset($this->_extra_data['data']->registrations)
171
+			? [$this->_extra_data['data']->registrations[ $registration->ID() ]['evt_obj']]
172
+			: [];
173
+	}
174 174
 }
Please login to merge, or discard this patch.
payment_methods/Bank/templates/bank_intro.template.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 esc_html_e(
4
-    'Bank is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay with a bank transfer.',
5
-    'event_espresso'
4
+	'Bank is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay with a bank transfer.',
5
+	'event_espresso'
6 6
 );
Please login to merge, or discard this patch.
payment_methods/Check/templates/check_intro.template.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 esc_html_e(
4
-    'Check is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay with a check.',
5
-    'event_espresso'
4
+	'Check is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay with a check.',
5
+	'event_espresso'
6 6
 );
Please login to merge, or discard this patch.
payment_methods/Invoice/EE_PMT_Invoice.pm.php 2 patches
Indentation   +120 added lines, -120 removed lines patch added patch discarded remove patch
@@ -27,136 +27,136 @@
 block discarded – undo
27 27
 
28 28
 
29 29
 
30
-    /**
31
-     *
32
-     * @param EE_Payment_Method $pm_instance
33
-     * @return EE_PMT_Invoice
34
-     */
35
-    public function __construct($pm_instance = null)
36
-    {
37
-        $this->_pretty_name = esc_html__("Invoice", 'event_espresso');
38
-        $this->_default_description = sprintf(
39
-            esc_html__('After clicking "Finalize Registration", you will be given instructions on how to access your invoice and complete your payment.%sPlease note that event spaces will not be reserved until payment is received in full, and any remaining tickets could be sold to others in the meantime.', 'event_espresso'),
40
-            '<br />'
41
-        );
42
-        parent::__construct($pm_instance);
43
-        $this->_default_button_url = $this->file_url() . 'lib/invoice-logo.png';
44
-    }
30
+	/**
31
+	 *
32
+	 * @param EE_Payment_Method $pm_instance
33
+	 * @return EE_PMT_Invoice
34
+	 */
35
+	public function __construct($pm_instance = null)
36
+	{
37
+		$this->_pretty_name = esc_html__("Invoice", 'event_espresso');
38
+		$this->_default_description = sprintf(
39
+			esc_html__('After clicking "Finalize Registration", you will be given instructions on how to access your invoice and complete your payment.%sPlease note that event spaces will not be reserved until payment is received in full, and any remaining tickets could be sold to others in the meantime.', 'event_espresso'),
40
+			'<br />'
41
+		);
42
+		parent::__construct($pm_instance);
43
+		$this->_default_button_url = $this->file_url() . 'lib/invoice-logo.png';
44
+	}
45 45
 
46 46
 
47 47
 
48
-    /**
49
-     * Creates the billing form for this payment method type
50
-     * @param \EE_Transaction $transaction
51
-     * @return NULL
52
-     */
53
-    public function generate_new_billing_form(EE_Transaction $transaction = null)
54
-    {
55
-        return null;
56
-    }
48
+	/**
49
+	 * Creates the billing form for this payment method type
50
+	 * @param \EE_Transaction $transaction
51
+	 * @return NULL
52
+	 */
53
+	public function generate_new_billing_form(EE_Transaction $transaction = null)
54
+	{
55
+		return null;
56
+	}
57 57
 
58 58
 
59 59
 
60
-    /**
61
-     * Gets the form for all the settings related to this payment method type
62
-     * @return EE_Payment_Method_Form
63
-     */
64
-    public function generate_new_settings_form()
65
-    {
66
-        $pdf_payee_input_name = 'pdf_payee_name';
67
-        $confirmation_text_input_name = 'page_confirmation_text';
68
-        $form =  new EE_Payment_Method_Form(array(
60
+	/**
61
+	 * Gets the form for all the settings related to this payment method type
62
+	 * @return EE_Payment_Method_Form
63
+	 */
64
+	public function generate_new_settings_form()
65
+	{
66
+		$pdf_payee_input_name = 'pdf_payee_name';
67
+		$confirmation_text_input_name = 'page_confirmation_text';
68
+		$form =  new EE_Payment_Method_Form(array(
69 69
 //              'payment_method_type' => $this,
70
-                'extra_meta_inputs' => array(
71
-                    $pdf_payee_input_name => new EE_Text_Input(array(
72
-                        'html_label_text' => sprintf(esc_html__('Payee Name %s', 'event_espresso'), $this->get_help_tab_link())
73
-                    )),
74
-                    'pdf_payee_email' => new EE_Email_Input(array(
75
-                        'html_label_text' => sprintf(esc_html__('Payee Email %s', 'event_espresso'), $this->get_help_tab_link()),
76
-                    )),
77
-                    'pdf_payee_tax_number' => new EE_Text_Input(array(
78
-                        'html_label_text' => sprintf(esc_html__('Payee Tax Number %s', 'event_espresso'), $this->get_help_tab_link()),
79
-                        )),
80
-                    'pdf_payee_address' => new EE_Text_Area_Input(array(
81
-                        'html_label_text' => sprintf(esc_html__('Payee Address %s', 'event_espresso'), $this->get_help_tab_link()),
82
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
83
-                    )),
84
-                    'pdf_instructions' => new EE_Text_Area_Input(array(
85
-                        'html_label_text' =>  sprintf(esc_html__("Instructions %s", "event_espresso"), $this->get_help_tab_link()),
86
-                        'default' =>  esc_html__("Please send this invoice with payment attached to the address above, or use the payment link below. Payment must be received within 48 hours of event date.", 'event_espresso'),
87
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
88
-                    )),
89
-                    'pdf_logo_image' => new EE_Admin_File_Uploader_Input(array(
90
-                        'html_label_text' =>  sprintf(esc_html__("Logo Image %s", "event_espresso"), $this->get_help_tab_link()),
91
-                        'default' =>  EE_Config::instance()->organization->logo_url,
92
-                        'html_help_text' =>  esc_html__("(Logo for the top left of the invoice)", 'event_espresso'),
93
-                    )),
94
-                    $confirmation_text_input_name => new EE_Text_Area_Input(array(
95
-                        'html_label_text' =>  sprintf(esc_html__("Confirmation Text %s", "event_espresso"), $this->get_help_tab_link()),
96
-                        'default' =>  esc_html__("Payment must be received within 48 hours of event date. Details about where to send the payment are included on the invoice.", 'event_espresso'),
97
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
98
-                    )),
99
-                    'page_extra_info' => new EE_Text_Area_Input(array(
100
-                        'html_label_text' =>  sprintf(esc_html__("Extra Info %s", "event_espresso"), $this->get_help_tab_link()),
101
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
102
-                    )),
103
-                ),
104
-                'include' => array(
105
-                    'PMD_ID', 'PMD_name','PMD_desc','PMD_admin_name','PMD_admin_desc', 'PMD_type','PMD_slug', 'PMD_open_by_default','PMD_button_url','PMD_scope','Currency','PMD_order',
106
-                    $pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions','pdf_logo_image',
107
-                    $confirmation_text_input_name, 'page_extra_info'),
108
-            ));
109
-        $form->add_subsections(
110
-            array( 'header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')),
111
-            $pdf_payee_input_name
112
-        );
113
-        $form->add_subsections(
114
-            array( 'header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')),
115
-            $confirmation_text_input_name
116
-        );
117
-        return $form;
118
-    }
70
+				'extra_meta_inputs' => array(
71
+					$pdf_payee_input_name => new EE_Text_Input(array(
72
+						'html_label_text' => sprintf(esc_html__('Payee Name %s', 'event_espresso'), $this->get_help_tab_link())
73
+					)),
74
+					'pdf_payee_email' => new EE_Email_Input(array(
75
+						'html_label_text' => sprintf(esc_html__('Payee Email %s', 'event_espresso'), $this->get_help_tab_link()),
76
+					)),
77
+					'pdf_payee_tax_number' => new EE_Text_Input(array(
78
+						'html_label_text' => sprintf(esc_html__('Payee Tax Number %s', 'event_espresso'), $this->get_help_tab_link()),
79
+						)),
80
+					'pdf_payee_address' => new EE_Text_Area_Input(array(
81
+						'html_label_text' => sprintf(esc_html__('Payee Address %s', 'event_espresso'), $this->get_help_tab_link()),
82
+						'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
83
+					)),
84
+					'pdf_instructions' => new EE_Text_Area_Input(array(
85
+						'html_label_text' =>  sprintf(esc_html__("Instructions %s", "event_espresso"), $this->get_help_tab_link()),
86
+						'default' =>  esc_html__("Please send this invoice with payment attached to the address above, or use the payment link below. Payment must be received within 48 hours of event date.", 'event_espresso'),
87
+						'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
88
+					)),
89
+					'pdf_logo_image' => new EE_Admin_File_Uploader_Input(array(
90
+						'html_label_text' =>  sprintf(esc_html__("Logo Image %s", "event_espresso"), $this->get_help_tab_link()),
91
+						'default' =>  EE_Config::instance()->organization->logo_url,
92
+						'html_help_text' =>  esc_html__("(Logo for the top left of the invoice)", 'event_espresso'),
93
+					)),
94
+					$confirmation_text_input_name => new EE_Text_Area_Input(array(
95
+						'html_label_text' =>  sprintf(esc_html__("Confirmation Text %s", "event_espresso"), $this->get_help_tab_link()),
96
+						'default' =>  esc_html__("Payment must be received within 48 hours of event date. Details about where to send the payment are included on the invoice.", 'event_espresso'),
97
+						'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
98
+					)),
99
+					'page_extra_info' => new EE_Text_Area_Input(array(
100
+						'html_label_text' =>  sprintf(esc_html__("Extra Info %s", "event_espresso"), $this->get_help_tab_link()),
101
+						'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
102
+					)),
103
+				),
104
+				'include' => array(
105
+					'PMD_ID', 'PMD_name','PMD_desc','PMD_admin_name','PMD_admin_desc', 'PMD_type','PMD_slug', 'PMD_open_by_default','PMD_button_url','PMD_scope','Currency','PMD_order',
106
+					$pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions','pdf_logo_image',
107
+					$confirmation_text_input_name, 'page_extra_info'),
108
+			));
109
+		$form->add_subsections(
110
+			array( 'header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')),
111
+			$pdf_payee_input_name
112
+		);
113
+		$form->add_subsections(
114
+			array( 'header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')),
115
+			$confirmation_text_input_name
116
+		);
117
+		return $form;
118
+	}
119 119
 
120 120
 
121 121
 
122
-    /**
123
-     * Adds the help tab
124
-     * @see EE_PMT_Base::help_tabs_config()
125
-     * @return array
126
-     */
127
-    public function help_tabs_config()
128
-    {
129
-        return array(
130
-            $this->get_help_tab_name() => array(
131
-                'title' => esc_html__('Invoice Settings', 'event_espresso'),
132
-                'filename' => 'payment_methods_overview_invoice'
133
-            ),
134
-        );
135
-    }
122
+	/**
123
+	 * Adds the help tab
124
+	 * @see EE_PMT_Base::help_tabs_config()
125
+	 * @return array
126
+	 */
127
+	public function help_tabs_config()
128
+	{
129
+		return array(
130
+			$this->get_help_tab_name() => array(
131
+				'title' => esc_html__('Invoice Settings', 'event_espresso'),
132
+				'filename' => 'payment_methods_overview_invoice'
133
+			),
134
+		);
135
+	}
136 136
 
137 137
 
138
-    /**
139
-     * For adding any html output above the payment overview.
140
-     * Many gateways won't want ot display anything, so this function just returns an empty string.
141
-     * Other gateways may want to override this, such as offline gateways.
142
-     *
143
-     * @param \EE_Payment $payment
144
-     * @return string
145
-     */
146
-    public function payment_overview_content(EE_Payment $payment)
147
-    {
148
-        return EEH_Template::locate_template(
149
-            'payment_methods/Invoice/templates/invoice_payment_details_content.template.php',
150
-            array_merge(
151
-                array(
152
-                    'payment_method'            => $this->_pm_instance,
153
-                    'payment'                       => $payment,
154
-                    'page_confirmation_text'                    => '',
155
-                    'page_extra_info'   => '',
156
-                    'invoice_url'                   => $payment->transaction()->primary_registration()->invoice_url('html')
157
-                ),
158
-                $this->_pm_instance->all_extra_meta_array()
159
-            )
160
-        );
161
-    }
138
+	/**
139
+	 * For adding any html output above the payment overview.
140
+	 * Many gateways won't want ot display anything, so this function just returns an empty string.
141
+	 * Other gateways may want to override this, such as offline gateways.
142
+	 *
143
+	 * @param \EE_Payment $payment
144
+	 * @return string
145
+	 */
146
+	public function payment_overview_content(EE_Payment $payment)
147
+	{
148
+		return EEH_Template::locate_template(
149
+			'payment_methods/Invoice/templates/invoice_payment_details_content.template.php',
150
+			array_merge(
151
+				array(
152
+					'payment_method'            => $this->_pm_instance,
153
+					'payment'                       => $payment,
154
+					'page_confirmation_text'                    => '',
155
+					'page_extra_info'   => '',
156
+					'invoice_url'                   => $payment->transaction()->primary_registration()->invoice_url('html')
157
+				),
158
+				$this->_pm_instance->all_extra_meta_array()
159
+			)
160
+		);
161
+	}
162 162
 }
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
             '<br />'
41 41
         );
42 42
         parent::__construct($pm_instance);
43
-        $this->_default_button_url = $this->file_url() . 'lib/invoice-logo.png';
43
+        $this->_default_button_url = $this->file_url().'lib/invoice-logo.png';
44 44
     }
45 45
 
46 46
 
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
     {
66 66
         $pdf_payee_input_name = 'pdf_payee_name';
67 67
         $confirmation_text_input_name = 'page_confirmation_text';
68
-        $form =  new EE_Payment_Method_Form(array(
68
+        $form = new EE_Payment_Method_Form(array(
69 69
 //              'payment_method_type' => $this,
70 70
                 'extra_meta_inputs' => array(
71 71
                     $pdf_payee_input_name => new EE_Text_Input(array(
@@ -79,12 +79,12 @@  discard block
 block discarded – undo
79 79
                         )),
80 80
                     'pdf_payee_address' => new EE_Text_Area_Input(array(
81 81
                         'html_label_text' => sprintf(esc_html__('Payee Address %s', 'event_espresso'), $this->get_help_tab_link()),
82
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
82
+                        'validation_strategies' => array(new EE_Full_HTML_Validation_Strategy()),
83 83
                     )),
84 84
                     'pdf_instructions' => new EE_Text_Area_Input(array(
85 85
                         'html_label_text' =>  sprintf(esc_html__("Instructions %s", "event_espresso"), $this->get_help_tab_link()),
86 86
                         'default' =>  esc_html__("Please send this invoice with payment attached to the address above, or use the payment link below. Payment must be received within 48 hours of event date.", 'event_espresso'),
87
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
87
+                        'validation_strategies' => array(new EE_Full_HTML_Validation_Strategy()),
88 88
                     )),
89 89
                     'pdf_logo_image' => new EE_Admin_File_Uploader_Input(array(
90 90
                         'html_label_text' =>  sprintf(esc_html__("Logo Image %s", "event_espresso"), $this->get_help_tab_link()),
@@ -94,24 +94,24 @@  discard block
 block discarded – undo
94 94
                     $confirmation_text_input_name => new EE_Text_Area_Input(array(
95 95
                         'html_label_text' =>  sprintf(esc_html__("Confirmation Text %s", "event_espresso"), $this->get_help_tab_link()),
96 96
                         'default' =>  esc_html__("Payment must be received within 48 hours of event date. Details about where to send the payment are included on the invoice.", 'event_espresso'),
97
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
97
+                        'validation_strategies' => array(new EE_Full_HTML_Validation_Strategy()),
98 98
                     )),
99 99
                     'page_extra_info' => new EE_Text_Area_Input(array(
100 100
                         'html_label_text' =>  sprintf(esc_html__("Extra Info %s", "event_espresso"), $this->get_help_tab_link()),
101
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
101
+                        'validation_strategies' => array(new EE_Full_HTML_Validation_Strategy()),
102 102
                     )),
103 103
                 ),
104 104
                 'include' => array(
105
-                    'PMD_ID', 'PMD_name','PMD_desc','PMD_admin_name','PMD_admin_desc', 'PMD_type','PMD_slug', 'PMD_open_by_default','PMD_button_url','PMD_scope','Currency','PMD_order',
106
-                    $pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions','pdf_logo_image',
105
+                    'PMD_ID', 'PMD_name', 'PMD_desc', 'PMD_admin_name', 'PMD_admin_desc', 'PMD_type', 'PMD_slug', 'PMD_open_by_default', 'PMD_button_url', 'PMD_scope', 'Currency', 'PMD_order',
106
+                    $pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions', 'pdf_logo_image',
107 107
                     $confirmation_text_input_name, 'page_extra_info'),
108 108
             ));
109 109
         $form->add_subsections(
110
-            array( 'header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')),
110
+            array('header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')),
111 111
             $pdf_payee_input_name
112 112
         );
113 113
         $form->add_subsections(
114
-            array( 'header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')),
114
+            array('header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')),
115 115
             $confirmation_text_input_name
116 116
         );
117 117
         return $form;
Please login to merge, or discard this patch.
payment_methods/Invoice/templates/invoice_intro.template.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 esc_html_e(
4
-    'Invoice is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay their invoice.',
5
-    'event_espresso'
4
+	'Invoice is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay their invoice.',
5
+	'event_espresso'
6 6
 );
Please login to merge, or discard this patch.
payment_methods/Paypal_Express/EEG_Paypal_Express.gateway.php 2 patches
Indentation   +669 added lines, -669 removed lines patch added patch discarded remove patch
@@ -13,677 +13,677 @@
 block discarded – undo
13 13
 
14 14
 // Quickfix to address https://events.codebasehq.com/projects/event-espresso/tickets/11089 ASAP
15 15
 if (! function_exists('mb_strcut')) {
16
-    /**
17
-     * Very simple mimic of mb_substr (which WP ensures exists in wp-includes/compat.php). Still has all the problems of mb_substr
18
-     * (namely, that we might send too many characters to PayPal; however in this case they just issue a warning but nothing breaks)
19
-     * @param $string
20
-     * @param $start
21
-     * @param $length
22
-     * @return bool|string
23
-     */
24
-    function mb_strcut($string, $start, $length = null)
25
-    {
26
-        return mb_substr($string, $start, $length);
27
-    }
16
+	/**
17
+	 * Very simple mimic of mb_substr (which WP ensures exists in wp-includes/compat.php). Still has all the problems of mb_substr
18
+	 * (namely, that we might send too many characters to PayPal; however in this case they just issue a warning but nothing breaks)
19
+	 * @param $string
20
+	 * @param $start
21
+	 * @param $length
22
+	 * @return bool|string
23
+	 */
24
+	function mb_strcut($string, $start, $length = null)
25
+	{
26
+		return mb_substr($string, $start, $length);
27
+	}
28 28
 }
29 29
 class EEG_Paypal_Express extends EE_Offsite_Gateway
30 30
 {
31 31
 
32
-    /**
33
-     * Merchant API Username.
34
-     *
35
-     * @var string
36
-     */
37
-    protected $_api_username;
38
-
39
-    /**
40
-     * Merchant API Password.
41
-     *
42
-     * @var string
43
-     */
44
-    protected $_api_password;
45
-
46
-    /**
47
-     * API Signature.
48
-     *
49
-     * @var string
50
-     */
51
-    protected $_api_signature;
52
-
53
-    /**
54
-     * Request Shipping address on PP checkout page.
55
-     *
56
-     * @var string
57
-     */
58
-    protected $_request_shipping_addr;
59
-
60
-    /**
61
-     * Business/personal logo.
62
-     *
63
-     * @var string
64
-     */
65
-    protected $_image_url;
66
-
67
-    /**
68
-     * gateway URL variable
69
-     *
70
-     * @var string
71
-     */
72
-    protected $_base_gateway_url = '';
73
-
74
-
75
-
76
-    /**
77
-     * EEG_Paypal_Express constructor.
78
-     */
79
-    public function __construct()
80
-    {
81
-        $this->_currencies_supported = array(
82
-            'USD',
83
-            'AUD',
84
-            'BRL',
85
-            'CAD',
86
-            'CZK',
87
-            'DKK',
88
-            'EUR',
89
-            'HKD',
90
-            'HUF',
91
-            'ILS',
92
-            'JPY',
93
-            'MYR',
94
-            'MXN',
95
-            'NOK',
96
-            'NZD',
97
-            'PHP',
98
-            'PLN',
99
-            'GBP',
100
-            'RUB',
101
-            'SGD',
102
-            'SEK',
103
-            'CHF',
104
-            'TWD',
105
-            'THB',
106
-            'TRY',
107
-            'INR',
108
-        );
109
-        parent::__construct();
110
-    }
111
-
112
-
113
-
114
-    /**
115
-     * Sets the gateway URL variable based on whether debug mode is enabled or not.
116
-     *
117
-     * @param array $settings_array
118
-     */
119
-    public function set_settings($settings_array)
120
-    {
121
-        parent::set_settings($settings_array);
122
-        // Redirect URL.
123
-        $this->_base_gateway_url = $this->_debug_mode
124
-            ? 'https://api-3t.sandbox.paypal.com/nvp'
125
-            : 'https://api-3t.paypal.com/nvp';
126
-    }
127
-
128
-
129
-
130
-    /**
131
-     * @param EEI_Payment $payment
132
-     * @param array       $billing_info
133
-     * @param string      $return_url
134
-     * @param string      $notify_url
135
-     * @param string      $cancel_url
136
-     * @return \EE_Payment|\EEI_Payment
137
-     * @throws \EE_Error
138
-     */
139
-    public function set_redirection_info(
140
-        $payment,
141
-        $billing_info = array(),
142
-        $return_url = null,
143
-        $notify_url = null,
144
-        $cancel_url = null
145
-    ) {
146
-        if (! $payment instanceof EEI_Payment) {
147
-            $payment->set_gateway_response(
148
-                esc_html__(
149
-                    'Error. No associated payment was found.',
150
-                    'event_espresso'
151
-                )
152
-            );
153
-            $payment->set_status($this->_pay_model->failed_status());
154
-            return $payment;
155
-        }
156
-        $transaction = $payment->transaction();
157
-        if (! $transaction instanceof EEI_Transaction) {
158
-            $payment->set_gateway_response(
159
-                esc_html__(
160
-                    'Could not process this payment because it has no associated transaction.',
161
-                    'event_espresso'
162
-                )
163
-            );
164
-            $payment->set_status($this->_pay_model->failed_status());
165
-            return $payment;
166
-        }
167
-        $gateway_formatter = $this->_get_gateway_formatter();
168
-        $order_description = mb_strcut($gateway_formatter->formatOrderDescription($payment), 0, 127);
169
-        $primary_registration = $transaction->primary_registration();
170
-        $primary_attendee = $primary_registration instanceof EE_Registration
171
-            ? $primary_registration->attendee()
172
-            : false;
173
-        $locale = explode('-', get_bloginfo('language'));
174
-        // Gather request parameters.
175
-        $token_request_dtls = array(
176
-            'METHOD'                         => 'SetExpressCheckout',
177
-            'PAYMENTREQUEST_0_AMT'           => $payment->amount(),
178
-            'PAYMENTREQUEST_0_CURRENCYCODE'  => $payment->currency_code(),
179
-            'PAYMENTREQUEST_0_DESC'          => $order_description,
180
-            'RETURNURL'                      => $return_url,
181
-            'CANCELURL'                      => $cancel_url,
182
-            'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale',
183
-            // Buyer does not need to create a PayPal account to check out.
184
-            // This is referred to as PayPal Account Optional.
185
-            'SOLUTIONTYPE'                   => 'Sole',
186
-            // Locale of the pages displayed by PayPal during Express Checkout.
187
-            'LOCALECODE'                     => $locale[1]
188
-        );
189
-        // Show itemized list.
190
-        $itemized_list = $this->itemize_list($payment, $transaction);
191
-        $token_request_dtls = array_merge($token_request_dtls, $itemized_list);
192
-        // Automatically filling out shipping and contact information.
193
-        if ($this->_request_shipping_addr && $primary_attendee instanceof EEI_Attendee) {
194
-            // If you do not pass the shipping address, PayPal obtains it from the buyer's account profile.
195
-            $token_request_dtls['NOSHIPPING'] = '2';
196
-            $token_request_dtls['PAYMENTREQUEST_0_SHIPTOSTREET'] = $primary_attendee->address();
197
-            $token_request_dtls['PAYMENTREQUEST_0_SHIPTOSTREET2'] = $primary_attendee->address2();
198
-            $token_request_dtls['PAYMENTREQUEST_0_SHIPTOCITY'] = $primary_attendee->city();
199
-            $token_request_dtls['PAYMENTREQUEST_0_SHIPTOSTATE'] = $primary_attendee->state_abbrev();
200
-            $token_request_dtls['PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE'] = $primary_attendee->country_ID();
201
-            $token_request_dtls['PAYMENTREQUEST_0_SHIPTOZIP'] = $primary_attendee->zip();
202
-            $token_request_dtls['PAYMENTREQUEST_0_EMAIL'] = $primary_attendee->email();
203
-            $token_request_dtls['PAYMENTREQUEST_0_SHIPTOPHONENUM'] = $primary_attendee->phone();
204
-        } elseif (! $this->_request_shipping_addr) {
205
-            // Do not request shipping details on the PP Checkout page.
206
-            $token_request_dtls['NOSHIPPING'] = '1';
207
-            $token_request_dtls['REQCONFIRMSHIPPING'] = '0';
208
-        }
209
-        // Used a business/personal logo on the PayPal page.
210
-        if (! empty($this->_image_url)) {
211
-            $token_request_dtls['LOGOIMG'] = $this->_image_url;
212
-        }
213
-        $token_request_dtls = apply_filters(
214
-            'FHEE__EEG_Paypal_Express__set_redirection_info__arguments',
215
-            $token_request_dtls,
216
-            $this
217
-        );
218
-        // Request PayPal token.
219
-        $token_request_response = $this->_ppExpress_request($token_request_dtls, 'Payment Token', $payment);
220
-        $token_rstatus = $this->_ppExpress_check_response($token_request_response);
221
-        $response_args = (isset($token_rstatus['args']) && is_array($token_rstatus['args']))
222
-            ? $token_rstatus['args']
223
-            : array();
224
-        if ($token_rstatus['status']) {
225
-            // We got the Token so we may continue with the payment and redirect the client.
226
-            $payment->set_details($response_args);
227
-            $gateway_url = $this->_debug_mode ? 'https://www.sandbox.paypal.com' : 'https://www.paypal.com';
228
-            $payment->set_redirect_url(
229
-                $gateway_url
230
-                . '/checkoutnow?useraction=commit&cmd=_express-checkout&token='
231
-                . $response_args['TOKEN']
232
-            );
233
-        } else {
234
-            if (isset($response_args['L_ERRORCODE'])) {
235
-                $payment->set_gateway_response($response_args['L_ERRORCODE'] . '; ' . $response_args['L_SHORTMESSAGE']);
236
-            } else {
237
-                $payment->set_gateway_response(
238
-                    esc_html__(
239
-                        'Error occurred while trying to setup the Express Checkout.',
240
-                        'event_espresso'
241
-                    )
242
-                );
243
-            }
244
-            $payment->set_details($response_args);
245
-            $payment->set_status($this->_pay_model->failed_status());
246
-        }
247
-        return $payment;
248
-    }
249
-
250
-
251
-
252
-    /**
253
-     * @param array           $update_info {
254
-     * @type string           $gateway_txn_id
255
-     * @type string status an EEMI_Payment status
256
-     *                                     }
257
-     * @param EEI_Transaction $transaction
258
-     * @return EEI_Payment
259
-     */
260
-    public function handle_payment_update($update_info, $transaction)
261
-    {
262
-        $payment = $transaction instanceof EEI_Transaction ? $transaction->last_payment() : null;
263
-        if ($payment instanceof EEI_Payment) {
264
-            $this->log(array('Return from Authorization' => $update_info), $payment);
265
-            $transaction = $payment->transaction();
266
-            if (! $transaction instanceof EEI_Transaction) {
267
-                $payment->set_gateway_response(
268
-                    esc_html__(
269
-                        'Could not process this payment because it has no associated transaction.',
270
-                        'event_espresso'
271
-                    )
272
-                );
273
-                $payment->set_status($this->_pay_model->failed_status());
274
-                return $payment;
275
-            }
276
-            $primary_registrant = $transaction->primary_registration();
277
-            $payment_details = $payment->details();
278
-            // Check if we still have the token.
279
-            if (! isset($payment_details['TOKEN']) || empty($payment_details['TOKEN'])) {
280
-                $payment->set_status($this->_pay_model->failed_status());
281
-                return $payment;
282
-            }
283
-            $cdetails_request_dtls = array(
284
-                'METHOD' => 'GetExpressCheckoutDetails',
285
-                'TOKEN'  => $payment_details['TOKEN'],
286
-            );
287
-            // Request Customer Details.
288
-            $cdetails_request_response = $this->_ppExpress_request(
289
-                $cdetails_request_dtls,
290
-                'Customer Details',
291
-                $payment
292
-            );
293
-            $cdetails_rstatus = $this->_ppExpress_check_response($cdetails_request_response);
294
-            $cdata_response_args = (isset($cdetails_rstatus['args']) && is_array($cdetails_rstatus['args']))
295
-                ? $cdetails_rstatus['args']
296
-                : array();
297
-            if ($cdetails_rstatus['status']) {
298
-                // We got the PayerID so now we can Complete the transaction.
299
-                $docheckout_request_dtls = array(
300
-                    'METHOD'                         => 'DoExpressCheckoutPayment',
301
-                    'PAYERID'                        => $cdata_response_args['PAYERID'],
302
-                    'TOKEN'                          => $payment_details['TOKEN'],
303
-                    'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale',
304
-                    'PAYMENTREQUEST_0_AMT'           => $payment->amount(),
305
-                    'PAYMENTREQUEST_0_CURRENCYCODE'  => $payment->currency_code(),
306
-                );
307
-                 // Include itemized list.
308
-                $itemized_list = $this->itemize_list(
309
-                    $payment,
310
-                    $transaction,
311
-                    $cdata_response_args
312
-                );
313
-                $docheckout_request_dtls = array_merge($docheckout_request_dtls, $itemized_list);
314
-                // Payment Checkout/Capture.
315
-                $docheckout_request_response = $this->_ppExpress_request(
316
-                    $docheckout_request_dtls,
317
-                    'Do Payment',
318
-                    $payment
319
-                );
320
-                $docheckout_rstatus = $this->_ppExpress_check_response($docheckout_request_response);
321
-                $docheckout_response_args = (isset($docheckout_rstatus['args']) && is_array($docheckout_rstatus['args']))
322
-                    ? $docheckout_rstatus['args']
323
-                    : array();
324
-                if ($docheckout_rstatus['status']) {
325
-                    // All is well, payment approved.
326
-                    $primary_registration_code = $primary_registrant instanceof EE_Registration ?
327
-                        $primary_registrant->reg_code()
328
-                        : '';
329
-                    $payment->set_extra_accntng($primary_registration_code);
330
-                    $payment->set_amount(isset($docheckout_response_args['PAYMENTINFO_0_AMT'])
331
-                        ? (float) $docheckout_response_args['PAYMENTINFO_0_AMT']
332
-                        : 0);
333
-                    $payment->set_txn_id_chq_nmbr(isset($docheckout_response_args['PAYMENTINFO_0_TRANSACTIONID'])
334
-                        ? $docheckout_response_args['PAYMENTINFO_0_TRANSACTIONID']
335
-                        : null);
336
-                    $payment->set_details($cdata_response_args);
337
-                    $payment->set_gateway_response(isset($docheckout_response_args['PAYMENTINFO_0_ACK'])
338
-                        ? $docheckout_response_args['PAYMENTINFO_0_ACK']
339
-                        : '');
340
-                    $payment->set_status($this->_pay_model->approved_status());
341
-                } else {
342
-                    if (isset($docheckout_response_args['L_ERRORCODE'])) {
343
-                        $payment->set_gateway_response(
344
-                            $docheckout_response_args['L_ERRORCODE']
345
-                            . '; '
346
-                            . $docheckout_response_args['L_SHORTMESSAGE']
347
-                        );
348
-                    } else {
349
-                        $payment->set_gateway_response(
350
-                            esc_html__(
351
-                                'Error occurred while trying to Capture the funds.',
352
-                                'event_espresso'
353
-                            )
354
-                        );
355
-                    }
356
-                    $payment->set_details($docheckout_response_args);
357
-                    $payment->set_status($this->_pay_model->declined_status());
358
-                }
359
-            } else {
360
-                if (isset($cdata_response_args['L_ERRORCODE'])) {
361
-                    $payment->set_gateway_response(
362
-                        $cdata_response_args['L_ERRORCODE']
363
-                        . '; '
364
-                        . $cdata_response_args['L_SHORTMESSAGE']
365
-                    );
366
-                } else {
367
-                    $payment->set_gateway_response(
368
-                        esc_html__(
369
-                            'Error occurred while trying to get payment Details from PayPal.',
370
-                            'event_espresso'
371
-                        )
372
-                    );
373
-                }
374
-                $payment->set_details($cdata_response_args);
375
-                $payment->set_status($this->_pay_model->failed_status());
376
-            }
377
-        } else {
378
-            $payment->set_gateway_response(
379
-                esc_html__(
380
-                    'Error occurred while trying to process the payment.',
381
-                    'event_espresso'
382
-                )
383
-            );
384
-            $payment->set_status($this->_pay_model->failed_status());
385
-        }
386
-        return $payment;
387
-    }
388
-
389
-
390
-
391
-    /**
392
-     *  Make a list of items that are in the giver transaction.
393
-     *
394
-     * @param EEI_Payment     $payment
395
-     * @param EEI_Transaction $transaction
396
-     * @param array           $request_response_args Data from a previous communication with PP.
397
-     * @return array
398
-     */
399
-    public function itemize_list(EEI_Payment $payment, EEI_Transaction $transaction, $request_response_args = array())
400
-    {
401
-        $itemized_list = array();
402
-        $gateway_formatter = $this->_get_gateway_formatter();
403
-        // If we have data from a previous communication with PP (on this transaction) we may use that for our list...
404
-        if (
405
-            ! empty($request_response_args)
406
-            && array_key_exists('L_PAYMENTREQUEST_0_AMT0', $request_response_args)
407
-            && array_key_exists('PAYMENTREQUEST_0_ITEMAMT', $request_response_args)
408
-        ) {
409
-            foreach ($request_response_args as $arg_key => $arg_val) {
410
-                if (
411
-                    strpos($arg_key, 'PAYMENTREQUEST_') !== false
412
-                    && strpos($arg_key, 'NOTIFYURL') === false
413
-                ) {
414
-                    $itemized_list[ $arg_key ] = $arg_val;
415
-                }
416
-            }
417
-            // If we got only a few Items then something is not right.
418
-            if (count($itemized_list) > 2) {
419
-                return $itemized_list;
420
-            } else {
421
-                if (WP_DEBUG) {
422
-                    throw new EE_Error(
423
-                        sprintf(
424
-                            esc_html__(
425
-                                // @codingStandardsIgnoreStart
426
-                                'Unable to continue with the checkout because a proper purchase list could not be generated. The purchased list we could have sent was %1$s',
427
-                                // @codingStandardsIgnoreEnd
428
-                                'event_espresso'
429
-                            ),
430
-                            wp_json_encode($itemized_list)
431
-                        )
432
-                    );
433
-                }
434
-                // Reset the list and log an error, maybe allow to try and generate a new list (below).
435
-                $itemized_list = array();
436
-                $this->log(
437
-                    array(
438
-                        (string) esc_html__(
439
-                            'Could not generate a proper item list with:',
440
-                            'event_espresso'
441
-                        ) => $request_response_args
442
-                    ),
443
-                    $payment
444
-                );
445
-            }
446
-        }
447
-        // ...otherwise we generate a new list for this transaction.
448
-        if ($this->_money->compare_floats($payment->amount(), $transaction->total(), '==')) {
449
-            $item_num = 0;
450
-            $itemized_sum = 0;
451
-            $total_line_items = $transaction->total_line_item();
452
-            // Go through each item in the list.
453
-            foreach ($total_line_items->get_items() as $line_item) {
454
-                if ($line_item instanceof EE_Line_Item) {
455
-                    // PayPal doesn't like line items with 0.00 amount, so we may skip those.
456
-                    if (EEH_Money::compare_floats($line_item->total(), '0.00', '==')) {
457
-                        continue;
458
-                    }
459
-                    $unit_price = $line_item->unit_price();
460
-                    $line_item_quantity = $line_item->quantity();
461
-                    // This is a discount.
462
-                    if ($line_item->is_percent()) {
463
-                        $unit_price = $line_item->total();
464
-                        $line_item_quantity = 1;
465
-                    }
466
-                    // Item Name.
467
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_NAME' . $item_num ] = mb_strcut(
468
-                        $gateway_formatter->formatLineItemName($line_item, $payment),
469
-                        0,
470
-                        127
471
-                    );
472
-                    // Item description.
473
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_DESC' . $item_num ] = mb_strcut(
474
-                        $gateway_formatter->formatLineItemDesc($line_item, $payment),
475
-                        0,
476
-                        127
477
-                    );
478
-                    // Cost of individual item.
479
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_AMT' . $item_num ] = $gateway_formatter->formatCurrency($unit_price);
480
-                    // Item Number.
481
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_NUMBER' . $item_num ] = $item_num + 1;
482
-                    // Item quantity.
483
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_QTY' . $item_num ] = $line_item_quantity;
484
-                    // Digital item is sold.
485
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_ITEMCATEGORY' . $item_num ] = 'Physical';
486
-                    $itemized_sum += $line_item->total();
487
-                    ++$item_num;
488
-                }
489
-            }
490
-            // Item's sales S/H and tax amount.
491
-            $itemized_list['PAYMENTREQUEST_0_ITEMAMT'] = $total_line_items->get_items_total();
492
-            $itemized_list['PAYMENTREQUEST_0_TAXAMT'] = $total_line_items->get_total_tax();
493
-            $itemized_list['PAYMENTREQUEST_0_SHIPPINGAMT'] = '0';
494
-            $itemized_list['PAYMENTREQUEST_0_HANDLINGAMT'] = '0';
495
-            $itemized_sum_diff_from_txn_total = round(
496
-                $transaction->total() - $itemized_sum - $total_line_items->get_total_tax(),
497
-                2
498
-            );
499
-            // If we were not able to recognize some item like promotion, surcharge or cancellation,
500
-            // add the difference as an extra line item.
501
-            if ($this->_money->compare_floats($itemized_sum_diff_from_txn_total, 0, '!=')) {
502
-                // Item Name.
503
-                $itemized_list[ 'L_PAYMENTREQUEST_0_NAME' . $item_num ] = mb_strcut(
504
-                    esc_html__(
505
-                        'Other (promotion/surcharge/cancellation)',
506
-                        'event_espresso'
507
-                    ),
508
-                    0,
509
-                    127
510
-                );
511
-                // Item description.
512
-                $itemized_list[ 'L_PAYMENTREQUEST_0_DESC' . $item_num ] = '';
513
-                // Cost of individual item.
514
-                $itemized_list[ 'L_PAYMENTREQUEST_0_AMT' . $item_num ] = $gateway_formatter->formatCurrency(
515
-                    $itemized_sum_diff_from_txn_total
516
-                );
517
-                // Item Number.
518
-                $itemized_list[ 'L_PAYMENTREQUEST_0_NUMBER' . $item_num ] = $item_num + 1;
519
-                // Item quantity.
520
-                $itemized_list[ 'L_PAYMENTREQUEST_0_QTY' . $item_num ] = 1;
521
-                // Digital item is sold.
522
-                $itemized_list[ 'L_PAYMENTREQUEST_0_ITEMCATEGORY' . $item_num ] = 'Physical';
523
-                $item_num++;
524
-            }
525
-        } else {
526
-            // Just one Item.
527
-            // Item Name.
528
-            $itemized_list['L_PAYMENTREQUEST_0_NAME0'] = mb_strcut(
529
-                $gateway_formatter->formatPartialPaymentLineItemName($payment),
530
-                0,
531
-                127
532
-            );
533
-            // Item description.
534
-            $itemized_list['L_PAYMENTREQUEST_0_DESC0'] = mb_strcut(
535
-                $gateway_formatter->formatPartialPaymentLineItemDesc($payment),
536
-                0,
537
-                127
538
-            );
539
-            // Cost of individual item.
540
-            $itemized_list['L_PAYMENTREQUEST_0_AMT0'] = $gateway_formatter->formatCurrency($payment->amount());
541
-            // Item Number.
542
-            $itemized_list['L_PAYMENTREQUEST_0_NUMBER0'] = 1;
543
-            // Item quantity.
544
-            $itemized_list['L_PAYMENTREQUEST_0_QTY0'] = 1;
545
-            // Digital item is sold.
546
-            $itemized_list['L_PAYMENTREQUEST_0_ITEMCATEGORY0'] = 'Physical';
547
-            // Item's sales S/H and tax amount.
548
-            $itemized_list['PAYMENTREQUEST_0_ITEMAMT'] = $gateway_formatter->formatCurrency($payment->amount());
549
-            $itemized_list['PAYMENTREQUEST_0_TAXAMT'] = '0';
550
-            $itemized_list['PAYMENTREQUEST_0_SHIPPINGAMT'] = '0';
551
-            $itemized_list['PAYMENTREQUEST_0_HANDLINGAMT'] = '0';
552
-        }
553
-        return $itemized_list;
554
-    }
555
-
556
-
557
-
558
-    /**
559
-     *  Make the Express checkout request.
560
-     *
561
-     * @param array       $request_params
562
-     * @param string      $request_text
563
-     * @param EEI_Payment $payment
564
-     * @return mixed
565
-     */
566
-    public function _ppExpress_request($request_params, $request_text, $payment)
567
-    {
568
-        $request_dtls = array(
569
-            'VERSION' => '204.0',
570
-            'USER' => $this->_api_username,
571
-            'PWD' => $this->_api_password,
572
-            'SIGNATURE' => $this->_api_signature,
573
-            // EE will blow up if you change this
574
-            'BUTTONSOURCE' => 'EventEspresso_SP',
575
-        );
576
-        $dtls = array_merge($request_dtls, $request_params);
577
-        $this->_log_clean_request($dtls, $payment, $request_text . ' Request');
578
-        // Request Customer Details.
579
-        $request_response = wp_remote_post(
580
-            $this->_base_gateway_url,
581
-            array(
582
-                'method'      => 'POST',
583
-                'timeout'     => 45,
584
-                'httpversion' => '1.1',
585
-                'cookies'     => array(),
586
-                'headers'     => array(),
587
-                'body'        => http_build_query($dtls, '', '&'),
588
-            )
589
-        );
590
-        // Log the response.
591
-        $this->log(array($request_text . ' Response' => $request_response), $payment);
592
-        return $request_response;
593
-    }
594
-
595
-
596
-
597
-    /**
598
-     *  Check the response status.
599
-     *
600
-     * @param mixed $request_response
601
-     * @return array
602
-     */
603
-    public function _ppExpress_check_response($request_response)
604
-    {
605
-        if (is_wp_error($request_response) || empty($request_response['body'])) {
606
-            // If we got here then there was an error in this request.
607
-            return array('status' => false, 'args' => $request_response);
608
-        }
609
-        $response_args = array();
610
-        parse_str(urldecode($request_response['body']), $response_args);
611
-        if (! isset($response_args['ACK'])) {
612
-            return array('status' => false, 'args' => $request_response);
613
-        }
614
-        if (
615
-            (
616
-                isset($response_args['PAYERID'])
617
-                || isset($response_args['TOKEN'])
618
-                || isset($response_args['PAYMENTINFO_0_TRANSACTIONID'])
619
-                || (isset($response_args['PAYMENTSTATUS']) && $response_args['PAYMENTSTATUS'] === 'Completed')
620
-            )
621
-            && in_array($response_args['ACK'], array('Success', 'SuccessWithWarning'), true)
622
-        ) {
623
-            // Response status OK, return response parameters for further processing.
624
-            return array('status' => true, 'args' => $response_args);
625
-        }
626
-        $errors = $this->_get_errors($response_args);
627
-        return array('status' => false, 'args' => $errors);
628
-    }
629
-
630
-
631
-
632
-    /**
633
-     *  Log a "Cleared" request.
634
-     *
635
-     * @param array       $request
636
-     * @param EEI_Payment $payment
637
-     * @param string      $info
638
-     * @return void
639
-     */
640
-    private function _log_clean_request($request, $payment, $info)
641
-    {
642
-        $cleaned_request_data = $request;
643
-        unset($cleaned_request_data['PWD'], $cleaned_request_data['USER'], $cleaned_request_data['SIGNATURE']);
644
-        $this->log(array($info => $cleaned_request_data), $payment);
645
-    }
646
-
647
-
648
-
649
-    /**
650
-     *  Get error from the response data.
651
-     *
652
-     * @param array $data_array
653
-     * @return array
654
-     */
655
-    private function _get_errors($data_array)
656
-    {
657
-        $errors = array();
658
-        $n = 0;
659
-        while (isset($data_array[ "L_ERRORCODE{$n}" ])) {
660
-            $l_error_code = isset($data_array[ "L_ERRORCODE{$n}" ])
661
-                ? $data_array[ "L_ERRORCODE{$n}" ]
662
-                : '';
663
-            $l_severity_code = isset($data_array[ "L_SEVERITYCODE{$n}" ])
664
-                ? $data_array[ "L_SEVERITYCODE{$n}" ]
665
-                : '';
666
-            $l_short_message = isset($data_array[ "L_SHORTMESSAGE{$n}" ])
667
-                ? $data_array[ "L_SHORTMESSAGE{$n}" ]
668
-                : '';
669
-            $l_long_message = isset($data_array[ "L_LONGMESSAGE{$n}" ])
670
-                ? $data_array[ "L_LONGMESSAGE{$n}" ]
671
-                : '';
672
-            if ($n === 0) {
673
-                $errors = array(
674
-                    'L_ERRORCODE'    => $l_error_code,
675
-                    'L_SHORTMESSAGE' => $l_short_message,
676
-                    'L_LONGMESSAGE'  => $l_long_message,
677
-                    'L_SEVERITYCODE' => $l_severity_code,
678
-                );
679
-            } else {
680
-                $errors['L_ERRORCODE'] .= ', ' . $l_error_code;
681
-                $errors['L_SHORTMESSAGE'] .= ', ' . $l_short_message;
682
-                $errors['L_LONGMESSAGE'] .= ', ' . $l_long_message;
683
-                $errors['L_SEVERITYCODE'] .= ', ' . $l_severity_code;
684
-            }
685
-            $n++;
686
-        }
687
-        return $errors;
688
-    }
32
+	/**
33
+	 * Merchant API Username.
34
+	 *
35
+	 * @var string
36
+	 */
37
+	protected $_api_username;
38
+
39
+	/**
40
+	 * Merchant API Password.
41
+	 *
42
+	 * @var string
43
+	 */
44
+	protected $_api_password;
45
+
46
+	/**
47
+	 * API Signature.
48
+	 *
49
+	 * @var string
50
+	 */
51
+	protected $_api_signature;
52
+
53
+	/**
54
+	 * Request Shipping address on PP checkout page.
55
+	 *
56
+	 * @var string
57
+	 */
58
+	protected $_request_shipping_addr;
59
+
60
+	/**
61
+	 * Business/personal logo.
62
+	 *
63
+	 * @var string
64
+	 */
65
+	protected $_image_url;
66
+
67
+	/**
68
+	 * gateway URL variable
69
+	 *
70
+	 * @var string
71
+	 */
72
+	protected $_base_gateway_url = '';
73
+
74
+
75
+
76
+	/**
77
+	 * EEG_Paypal_Express constructor.
78
+	 */
79
+	public function __construct()
80
+	{
81
+		$this->_currencies_supported = array(
82
+			'USD',
83
+			'AUD',
84
+			'BRL',
85
+			'CAD',
86
+			'CZK',
87
+			'DKK',
88
+			'EUR',
89
+			'HKD',
90
+			'HUF',
91
+			'ILS',
92
+			'JPY',
93
+			'MYR',
94
+			'MXN',
95
+			'NOK',
96
+			'NZD',
97
+			'PHP',
98
+			'PLN',
99
+			'GBP',
100
+			'RUB',
101
+			'SGD',
102
+			'SEK',
103
+			'CHF',
104
+			'TWD',
105
+			'THB',
106
+			'TRY',
107
+			'INR',
108
+		);
109
+		parent::__construct();
110
+	}
111
+
112
+
113
+
114
+	/**
115
+	 * Sets the gateway URL variable based on whether debug mode is enabled or not.
116
+	 *
117
+	 * @param array $settings_array
118
+	 */
119
+	public function set_settings($settings_array)
120
+	{
121
+		parent::set_settings($settings_array);
122
+		// Redirect URL.
123
+		$this->_base_gateway_url = $this->_debug_mode
124
+			? 'https://api-3t.sandbox.paypal.com/nvp'
125
+			: 'https://api-3t.paypal.com/nvp';
126
+	}
127
+
128
+
129
+
130
+	/**
131
+	 * @param EEI_Payment $payment
132
+	 * @param array       $billing_info
133
+	 * @param string      $return_url
134
+	 * @param string      $notify_url
135
+	 * @param string      $cancel_url
136
+	 * @return \EE_Payment|\EEI_Payment
137
+	 * @throws \EE_Error
138
+	 */
139
+	public function set_redirection_info(
140
+		$payment,
141
+		$billing_info = array(),
142
+		$return_url = null,
143
+		$notify_url = null,
144
+		$cancel_url = null
145
+	) {
146
+		if (! $payment instanceof EEI_Payment) {
147
+			$payment->set_gateway_response(
148
+				esc_html__(
149
+					'Error. No associated payment was found.',
150
+					'event_espresso'
151
+				)
152
+			);
153
+			$payment->set_status($this->_pay_model->failed_status());
154
+			return $payment;
155
+		}
156
+		$transaction = $payment->transaction();
157
+		if (! $transaction instanceof EEI_Transaction) {
158
+			$payment->set_gateway_response(
159
+				esc_html__(
160
+					'Could not process this payment because it has no associated transaction.',
161
+					'event_espresso'
162
+				)
163
+			);
164
+			$payment->set_status($this->_pay_model->failed_status());
165
+			return $payment;
166
+		}
167
+		$gateway_formatter = $this->_get_gateway_formatter();
168
+		$order_description = mb_strcut($gateway_formatter->formatOrderDescription($payment), 0, 127);
169
+		$primary_registration = $transaction->primary_registration();
170
+		$primary_attendee = $primary_registration instanceof EE_Registration
171
+			? $primary_registration->attendee()
172
+			: false;
173
+		$locale = explode('-', get_bloginfo('language'));
174
+		// Gather request parameters.
175
+		$token_request_dtls = array(
176
+			'METHOD'                         => 'SetExpressCheckout',
177
+			'PAYMENTREQUEST_0_AMT'           => $payment->amount(),
178
+			'PAYMENTREQUEST_0_CURRENCYCODE'  => $payment->currency_code(),
179
+			'PAYMENTREQUEST_0_DESC'          => $order_description,
180
+			'RETURNURL'                      => $return_url,
181
+			'CANCELURL'                      => $cancel_url,
182
+			'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale',
183
+			// Buyer does not need to create a PayPal account to check out.
184
+			// This is referred to as PayPal Account Optional.
185
+			'SOLUTIONTYPE'                   => 'Sole',
186
+			// Locale of the pages displayed by PayPal during Express Checkout.
187
+			'LOCALECODE'                     => $locale[1]
188
+		);
189
+		// Show itemized list.
190
+		$itemized_list = $this->itemize_list($payment, $transaction);
191
+		$token_request_dtls = array_merge($token_request_dtls, $itemized_list);
192
+		// Automatically filling out shipping and contact information.
193
+		if ($this->_request_shipping_addr && $primary_attendee instanceof EEI_Attendee) {
194
+			// If you do not pass the shipping address, PayPal obtains it from the buyer's account profile.
195
+			$token_request_dtls['NOSHIPPING'] = '2';
196
+			$token_request_dtls['PAYMENTREQUEST_0_SHIPTOSTREET'] = $primary_attendee->address();
197
+			$token_request_dtls['PAYMENTREQUEST_0_SHIPTOSTREET2'] = $primary_attendee->address2();
198
+			$token_request_dtls['PAYMENTREQUEST_0_SHIPTOCITY'] = $primary_attendee->city();
199
+			$token_request_dtls['PAYMENTREQUEST_0_SHIPTOSTATE'] = $primary_attendee->state_abbrev();
200
+			$token_request_dtls['PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE'] = $primary_attendee->country_ID();
201
+			$token_request_dtls['PAYMENTREQUEST_0_SHIPTOZIP'] = $primary_attendee->zip();
202
+			$token_request_dtls['PAYMENTREQUEST_0_EMAIL'] = $primary_attendee->email();
203
+			$token_request_dtls['PAYMENTREQUEST_0_SHIPTOPHONENUM'] = $primary_attendee->phone();
204
+		} elseif (! $this->_request_shipping_addr) {
205
+			// Do not request shipping details on the PP Checkout page.
206
+			$token_request_dtls['NOSHIPPING'] = '1';
207
+			$token_request_dtls['REQCONFIRMSHIPPING'] = '0';
208
+		}
209
+		// Used a business/personal logo on the PayPal page.
210
+		if (! empty($this->_image_url)) {
211
+			$token_request_dtls['LOGOIMG'] = $this->_image_url;
212
+		}
213
+		$token_request_dtls = apply_filters(
214
+			'FHEE__EEG_Paypal_Express__set_redirection_info__arguments',
215
+			$token_request_dtls,
216
+			$this
217
+		);
218
+		// Request PayPal token.
219
+		$token_request_response = $this->_ppExpress_request($token_request_dtls, 'Payment Token', $payment);
220
+		$token_rstatus = $this->_ppExpress_check_response($token_request_response);
221
+		$response_args = (isset($token_rstatus['args']) && is_array($token_rstatus['args']))
222
+			? $token_rstatus['args']
223
+			: array();
224
+		if ($token_rstatus['status']) {
225
+			// We got the Token so we may continue with the payment and redirect the client.
226
+			$payment->set_details($response_args);
227
+			$gateway_url = $this->_debug_mode ? 'https://www.sandbox.paypal.com' : 'https://www.paypal.com';
228
+			$payment->set_redirect_url(
229
+				$gateway_url
230
+				. '/checkoutnow?useraction=commit&cmd=_express-checkout&token='
231
+				. $response_args['TOKEN']
232
+			);
233
+		} else {
234
+			if (isset($response_args['L_ERRORCODE'])) {
235
+				$payment->set_gateway_response($response_args['L_ERRORCODE'] . '; ' . $response_args['L_SHORTMESSAGE']);
236
+			} else {
237
+				$payment->set_gateway_response(
238
+					esc_html__(
239
+						'Error occurred while trying to setup the Express Checkout.',
240
+						'event_espresso'
241
+					)
242
+				);
243
+			}
244
+			$payment->set_details($response_args);
245
+			$payment->set_status($this->_pay_model->failed_status());
246
+		}
247
+		return $payment;
248
+	}
249
+
250
+
251
+
252
+	/**
253
+	 * @param array           $update_info {
254
+	 * @type string           $gateway_txn_id
255
+	 * @type string status an EEMI_Payment status
256
+	 *                                     }
257
+	 * @param EEI_Transaction $transaction
258
+	 * @return EEI_Payment
259
+	 */
260
+	public function handle_payment_update($update_info, $transaction)
261
+	{
262
+		$payment = $transaction instanceof EEI_Transaction ? $transaction->last_payment() : null;
263
+		if ($payment instanceof EEI_Payment) {
264
+			$this->log(array('Return from Authorization' => $update_info), $payment);
265
+			$transaction = $payment->transaction();
266
+			if (! $transaction instanceof EEI_Transaction) {
267
+				$payment->set_gateway_response(
268
+					esc_html__(
269
+						'Could not process this payment because it has no associated transaction.',
270
+						'event_espresso'
271
+					)
272
+				);
273
+				$payment->set_status($this->_pay_model->failed_status());
274
+				return $payment;
275
+			}
276
+			$primary_registrant = $transaction->primary_registration();
277
+			$payment_details = $payment->details();
278
+			// Check if we still have the token.
279
+			if (! isset($payment_details['TOKEN']) || empty($payment_details['TOKEN'])) {
280
+				$payment->set_status($this->_pay_model->failed_status());
281
+				return $payment;
282
+			}
283
+			$cdetails_request_dtls = array(
284
+				'METHOD' => 'GetExpressCheckoutDetails',
285
+				'TOKEN'  => $payment_details['TOKEN'],
286
+			);
287
+			// Request Customer Details.
288
+			$cdetails_request_response = $this->_ppExpress_request(
289
+				$cdetails_request_dtls,
290
+				'Customer Details',
291
+				$payment
292
+			);
293
+			$cdetails_rstatus = $this->_ppExpress_check_response($cdetails_request_response);
294
+			$cdata_response_args = (isset($cdetails_rstatus['args']) && is_array($cdetails_rstatus['args']))
295
+				? $cdetails_rstatus['args']
296
+				: array();
297
+			if ($cdetails_rstatus['status']) {
298
+				// We got the PayerID so now we can Complete the transaction.
299
+				$docheckout_request_dtls = array(
300
+					'METHOD'                         => 'DoExpressCheckoutPayment',
301
+					'PAYERID'                        => $cdata_response_args['PAYERID'],
302
+					'TOKEN'                          => $payment_details['TOKEN'],
303
+					'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale',
304
+					'PAYMENTREQUEST_0_AMT'           => $payment->amount(),
305
+					'PAYMENTREQUEST_0_CURRENCYCODE'  => $payment->currency_code(),
306
+				);
307
+				 // Include itemized list.
308
+				$itemized_list = $this->itemize_list(
309
+					$payment,
310
+					$transaction,
311
+					$cdata_response_args
312
+				);
313
+				$docheckout_request_dtls = array_merge($docheckout_request_dtls, $itemized_list);
314
+				// Payment Checkout/Capture.
315
+				$docheckout_request_response = $this->_ppExpress_request(
316
+					$docheckout_request_dtls,
317
+					'Do Payment',
318
+					$payment
319
+				);
320
+				$docheckout_rstatus = $this->_ppExpress_check_response($docheckout_request_response);
321
+				$docheckout_response_args = (isset($docheckout_rstatus['args']) && is_array($docheckout_rstatus['args']))
322
+					? $docheckout_rstatus['args']
323
+					: array();
324
+				if ($docheckout_rstatus['status']) {
325
+					// All is well, payment approved.
326
+					$primary_registration_code = $primary_registrant instanceof EE_Registration ?
327
+						$primary_registrant->reg_code()
328
+						: '';
329
+					$payment->set_extra_accntng($primary_registration_code);
330
+					$payment->set_amount(isset($docheckout_response_args['PAYMENTINFO_0_AMT'])
331
+						? (float) $docheckout_response_args['PAYMENTINFO_0_AMT']
332
+						: 0);
333
+					$payment->set_txn_id_chq_nmbr(isset($docheckout_response_args['PAYMENTINFO_0_TRANSACTIONID'])
334
+						? $docheckout_response_args['PAYMENTINFO_0_TRANSACTIONID']
335
+						: null);
336
+					$payment->set_details($cdata_response_args);
337
+					$payment->set_gateway_response(isset($docheckout_response_args['PAYMENTINFO_0_ACK'])
338
+						? $docheckout_response_args['PAYMENTINFO_0_ACK']
339
+						: '');
340
+					$payment->set_status($this->_pay_model->approved_status());
341
+				} else {
342
+					if (isset($docheckout_response_args['L_ERRORCODE'])) {
343
+						$payment->set_gateway_response(
344
+							$docheckout_response_args['L_ERRORCODE']
345
+							. '; '
346
+							. $docheckout_response_args['L_SHORTMESSAGE']
347
+						);
348
+					} else {
349
+						$payment->set_gateway_response(
350
+							esc_html__(
351
+								'Error occurred while trying to Capture the funds.',
352
+								'event_espresso'
353
+							)
354
+						);
355
+					}
356
+					$payment->set_details($docheckout_response_args);
357
+					$payment->set_status($this->_pay_model->declined_status());
358
+				}
359
+			} else {
360
+				if (isset($cdata_response_args['L_ERRORCODE'])) {
361
+					$payment->set_gateway_response(
362
+						$cdata_response_args['L_ERRORCODE']
363
+						. '; '
364
+						. $cdata_response_args['L_SHORTMESSAGE']
365
+					);
366
+				} else {
367
+					$payment->set_gateway_response(
368
+						esc_html__(
369
+							'Error occurred while trying to get payment Details from PayPal.',
370
+							'event_espresso'
371
+						)
372
+					);
373
+				}
374
+				$payment->set_details($cdata_response_args);
375
+				$payment->set_status($this->_pay_model->failed_status());
376
+			}
377
+		} else {
378
+			$payment->set_gateway_response(
379
+				esc_html__(
380
+					'Error occurred while trying to process the payment.',
381
+					'event_espresso'
382
+				)
383
+			);
384
+			$payment->set_status($this->_pay_model->failed_status());
385
+		}
386
+		return $payment;
387
+	}
388
+
389
+
390
+
391
+	/**
392
+	 *  Make a list of items that are in the giver transaction.
393
+	 *
394
+	 * @param EEI_Payment     $payment
395
+	 * @param EEI_Transaction $transaction
396
+	 * @param array           $request_response_args Data from a previous communication with PP.
397
+	 * @return array
398
+	 */
399
+	public function itemize_list(EEI_Payment $payment, EEI_Transaction $transaction, $request_response_args = array())
400
+	{
401
+		$itemized_list = array();
402
+		$gateway_formatter = $this->_get_gateway_formatter();
403
+		// If we have data from a previous communication with PP (on this transaction) we may use that for our list...
404
+		if (
405
+			! empty($request_response_args)
406
+			&& array_key_exists('L_PAYMENTREQUEST_0_AMT0', $request_response_args)
407
+			&& array_key_exists('PAYMENTREQUEST_0_ITEMAMT', $request_response_args)
408
+		) {
409
+			foreach ($request_response_args as $arg_key => $arg_val) {
410
+				if (
411
+					strpos($arg_key, 'PAYMENTREQUEST_') !== false
412
+					&& strpos($arg_key, 'NOTIFYURL') === false
413
+				) {
414
+					$itemized_list[ $arg_key ] = $arg_val;
415
+				}
416
+			}
417
+			// If we got only a few Items then something is not right.
418
+			if (count($itemized_list) > 2) {
419
+				return $itemized_list;
420
+			} else {
421
+				if (WP_DEBUG) {
422
+					throw new EE_Error(
423
+						sprintf(
424
+							esc_html__(
425
+								// @codingStandardsIgnoreStart
426
+								'Unable to continue with the checkout because a proper purchase list could not be generated. The purchased list we could have sent was %1$s',
427
+								// @codingStandardsIgnoreEnd
428
+								'event_espresso'
429
+							),
430
+							wp_json_encode($itemized_list)
431
+						)
432
+					);
433
+				}
434
+				// Reset the list and log an error, maybe allow to try and generate a new list (below).
435
+				$itemized_list = array();
436
+				$this->log(
437
+					array(
438
+						(string) esc_html__(
439
+							'Could not generate a proper item list with:',
440
+							'event_espresso'
441
+						) => $request_response_args
442
+					),
443
+					$payment
444
+				);
445
+			}
446
+		}
447
+		// ...otherwise we generate a new list for this transaction.
448
+		if ($this->_money->compare_floats($payment->amount(), $transaction->total(), '==')) {
449
+			$item_num = 0;
450
+			$itemized_sum = 0;
451
+			$total_line_items = $transaction->total_line_item();
452
+			// Go through each item in the list.
453
+			foreach ($total_line_items->get_items() as $line_item) {
454
+				if ($line_item instanceof EE_Line_Item) {
455
+					// PayPal doesn't like line items with 0.00 amount, so we may skip those.
456
+					if (EEH_Money::compare_floats($line_item->total(), '0.00', '==')) {
457
+						continue;
458
+					}
459
+					$unit_price = $line_item->unit_price();
460
+					$line_item_quantity = $line_item->quantity();
461
+					// This is a discount.
462
+					if ($line_item->is_percent()) {
463
+						$unit_price = $line_item->total();
464
+						$line_item_quantity = 1;
465
+					}
466
+					// Item Name.
467
+					$itemized_list[ 'L_PAYMENTREQUEST_0_NAME' . $item_num ] = mb_strcut(
468
+						$gateway_formatter->formatLineItemName($line_item, $payment),
469
+						0,
470
+						127
471
+					);
472
+					// Item description.
473
+					$itemized_list[ 'L_PAYMENTREQUEST_0_DESC' . $item_num ] = mb_strcut(
474
+						$gateway_formatter->formatLineItemDesc($line_item, $payment),
475
+						0,
476
+						127
477
+					);
478
+					// Cost of individual item.
479
+					$itemized_list[ 'L_PAYMENTREQUEST_0_AMT' . $item_num ] = $gateway_formatter->formatCurrency($unit_price);
480
+					// Item Number.
481
+					$itemized_list[ 'L_PAYMENTREQUEST_0_NUMBER' . $item_num ] = $item_num + 1;
482
+					// Item quantity.
483
+					$itemized_list[ 'L_PAYMENTREQUEST_0_QTY' . $item_num ] = $line_item_quantity;
484
+					// Digital item is sold.
485
+					$itemized_list[ 'L_PAYMENTREQUEST_0_ITEMCATEGORY' . $item_num ] = 'Physical';
486
+					$itemized_sum += $line_item->total();
487
+					++$item_num;
488
+				}
489
+			}
490
+			// Item's sales S/H and tax amount.
491
+			$itemized_list['PAYMENTREQUEST_0_ITEMAMT'] = $total_line_items->get_items_total();
492
+			$itemized_list['PAYMENTREQUEST_0_TAXAMT'] = $total_line_items->get_total_tax();
493
+			$itemized_list['PAYMENTREQUEST_0_SHIPPINGAMT'] = '0';
494
+			$itemized_list['PAYMENTREQUEST_0_HANDLINGAMT'] = '0';
495
+			$itemized_sum_diff_from_txn_total = round(
496
+				$transaction->total() - $itemized_sum - $total_line_items->get_total_tax(),
497
+				2
498
+			);
499
+			// If we were not able to recognize some item like promotion, surcharge or cancellation,
500
+			// add the difference as an extra line item.
501
+			if ($this->_money->compare_floats($itemized_sum_diff_from_txn_total, 0, '!=')) {
502
+				// Item Name.
503
+				$itemized_list[ 'L_PAYMENTREQUEST_0_NAME' . $item_num ] = mb_strcut(
504
+					esc_html__(
505
+						'Other (promotion/surcharge/cancellation)',
506
+						'event_espresso'
507
+					),
508
+					0,
509
+					127
510
+				);
511
+				// Item description.
512
+				$itemized_list[ 'L_PAYMENTREQUEST_0_DESC' . $item_num ] = '';
513
+				// Cost of individual item.
514
+				$itemized_list[ 'L_PAYMENTREQUEST_0_AMT' . $item_num ] = $gateway_formatter->formatCurrency(
515
+					$itemized_sum_diff_from_txn_total
516
+				);
517
+				// Item Number.
518
+				$itemized_list[ 'L_PAYMENTREQUEST_0_NUMBER' . $item_num ] = $item_num + 1;
519
+				// Item quantity.
520
+				$itemized_list[ 'L_PAYMENTREQUEST_0_QTY' . $item_num ] = 1;
521
+				// Digital item is sold.
522
+				$itemized_list[ 'L_PAYMENTREQUEST_0_ITEMCATEGORY' . $item_num ] = 'Physical';
523
+				$item_num++;
524
+			}
525
+		} else {
526
+			// Just one Item.
527
+			// Item Name.
528
+			$itemized_list['L_PAYMENTREQUEST_0_NAME0'] = mb_strcut(
529
+				$gateway_formatter->formatPartialPaymentLineItemName($payment),
530
+				0,
531
+				127
532
+			);
533
+			// Item description.
534
+			$itemized_list['L_PAYMENTREQUEST_0_DESC0'] = mb_strcut(
535
+				$gateway_formatter->formatPartialPaymentLineItemDesc($payment),
536
+				0,
537
+				127
538
+			);
539
+			// Cost of individual item.
540
+			$itemized_list['L_PAYMENTREQUEST_0_AMT0'] = $gateway_formatter->formatCurrency($payment->amount());
541
+			// Item Number.
542
+			$itemized_list['L_PAYMENTREQUEST_0_NUMBER0'] = 1;
543
+			// Item quantity.
544
+			$itemized_list['L_PAYMENTREQUEST_0_QTY0'] = 1;
545
+			// Digital item is sold.
546
+			$itemized_list['L_PAYMENTREQUEST_0_ITEMCATEGORY0'] = 'Physical';
547
+			// Item's sales S/H and tax amount.
548
+			$itemized_list['PAYMENTREQUEST_0_ITEMAMT'] = $gateway_formatter->formatCurrency($payment->amount());
549
+			$itemized_list['PAYMENTREQUEST_0_TAXAMT'] = '0';
550
+			$itemized_list['PAYMENTREQUEST_0_SHIPPINGAMT'] = '0';
551
+			$itemized_list['PAYMENTREQUEST_0_HANDLINGAMT'] = '0';
552
+		}
553
+		return $itemized_list;
554
+	}
555
+
556
+
557
+
558
+	/**
559
+	 *  Make the Express checkout request.
560
+	 *
561
+	 * @param array       $request_params
562
+	 * @param string      $request_text
563
+	 * @param EEI_Payment $payment
564
+	 * @return mixed
565
+	 */
566
+	public function _ppExpress_request($request_params, $request_text, $payment)
567
+	{
568
+		$request_dtls = array(
569
+			'VERSION' => '204.0',
570
+			'USER' => $this->_api_username,
571
+			'PWD' => $this->_api_password,
572
+			'SIGNATURE' => $this->_api_signature,
573
+			// EE will blow up if you change this
574
+			'BUTTONSOURCE' => 'EventEspresso_SP',
575
+		);
576
+		$dtls = array_merge($request_dtls, $request_params);
577
+		$this->_log_clean_request($dtls, $payment, $request_text . ' Request');
578
+		// Request Customer Details.
579
+		$request_response = wp_remote_post(
580
+			$this->_base_gateway_url,
581
+			array(
582
+				'method'      => 'POST',
583
+				'timeout'     => 45,
584
+				'httpversion' => '1.1',
585
+				'cookies'     => array(),
586
+				'headers'     => array(),
587
+				'body'        => http_build_query($dtls, '', '&'),
588
+			)
589
+		);
590
+		// Log the response.
591
+		$this->log(array($request_text . ' Response' => $request_response), $payment);
592
+		return $request_response;
593
+	}
594
+
595
+
596
+
597
+	/**
598
+	 *  Check the response status.
599
+	 *
600
+	 * @param mixed $request_response
601
+	 * @return array
602
+	 */
603
+	public function _ppExpress_check_response($request_response)
604
+	{
605
+		if (is_wp_error($request_response) || empty($request_response['body'])) {
606
+			// If we got here then there was an error in this request.
607
+			return array('status' => false, 'args' => $request_response);
608
+		}
609
+		$response_args = array();
610
+		parse_str(urldecode($request_response['body']), $response_args);
611
+		if (! isset($response_args['ACK'])) {
612
+			return array('status' => false, 'args' => $request_response);
613
+		}
614
+		if (
615
+			(
616
+				isset($response_args['PAYERID'])
617
+				|| isset($response_args['TOKEN'])
618
+				|| isset($response_args['PAYMENTINFO_0_TRANSACTIONID'])
619
+				|| (isset($response_args['PAYMENTSTATUS']) && $response_args['PAYMENTSTATUS'] === 'Completed')
620
+			)
621
+			&& in_array($response_args['ACK'], array('Success', 'SuccessWithWarning'), true)
622
+		) {
623
+			// Response status OK, return response parameters for further processing.
624
+			return array('status' => true, 'args' => $response_args);
625
+		}
626
+		$errors = $this->_get_errors($response_args);
627
+		return array('status' => false, 'args' => $errors);
628
+	}
629
+
630
+
631
+
632
+	/**
633
+	 *  Log a "Cleared" request.
634
+	 *
635
+	 * @param array       $request
636
+	 * @param EEI_Payment $payment
637
+	 * @param string      $info
638
+	 * @return void
639
+	 */
640
+	private function _log_clean_request($request, $payment, $info)
641
+	{
642
+		$cleaned_request_data = $request;
643
+		unset($cleaned_request_data['PWD'], $cleaned_request_data['USER'], $cleaned_request_data['SIGNATURE']);
644
+		$this->log(array($info => $cleaned_request_data), $payment);
645
+	}
646
+
647
+
648
+
649
+	/**
650
+	 *  Get error from the response data.
651
+	 *
652
+	 * @param array $data_array
653
+	 * @return array
654
+	 */
655
+	private function _get_errors($data_array)
656
+	{
657
+		$errors = array();
658
+		$n = 0;
659
+		while (isset($data_array[ "L_ERRORCODE{$n}" ])) {
660
+			$l_error_code = isset($data_array[ "L_ERRORCODE{$n}" ])
661
+				? $data_array[ "L_ERRORCODE{$n}" ]
662
+				: '';
663
+			$l_severity_code = isset($data_array[ "L_SEVERITYCODE{$n}" ])
664
+				? $data_array[ "L_SEVERITYCODE{$n}" ]
665
+				: '';
666
+			$l_short_message = isset($data_array[ "L_SHORTMESSAGE{$n}" ])
667
+				? $data_array[ "L_SHORTMESSAGE{$n}" ]
668
+				: '';
669
+			$l_long_message = isset($data_array[ "L_LONGMESSAGE{$n}" ])
670
+				? $data_array[ "L_LONGMESSAGE{$n}" ]
671
+				: '';
672
+			if ($n === 0) {
673
+				$errors = array(
674
+					'L_ERRORCODE'    => $l_error_code,
675
+					'L_SHORTMESSAGE' => $l_short_message,
676
+					'L_LONGMESSAGE'  => $l_long_message,
677
+					'L_SEVERITYCODE' => $l_severity_code,
678
+				);
679
+			} else {
680
+				$errors['L_ERRORCODE'] .= ', ' . $l_error_code;
681
+				$errors['L_SHORTMESSAGE'] .= ', ' . $l_short_message;
682
+				$errors['L_LONGMESSAGE'] .= ', ' . $l_long_message;
683
+				$errors['L_SEVERITYCODE'] .= ', ' . $l_severity_code;
684
+			}
685
+			$n++;
686
+		}
687
+		return $errors;
688
+	}
689 689
 }
Please login to merge, or discard this patch.
Spacing   +37 added lines, -37 removed lines patch added patch discarded remove patch
@@ -12,7 +12,7 @@  discard block
 block discarded – undo
12 12
  */
13 13
 
14 14
 // Quickfix to address https://events.codebasehq.com/projects/event-espresso/tickets/11089 ASAP
15
-if (! function_exists('mb_strcut')) {
15
+if ( ! function_exists('mb_strcut')) {
16 16
     /**
17 17
      * Very simple mimic of mb_substr (which WP ensures exists in wp-includes/compat.php). Still has all the problems of mb_substr
18 18
      * (namely, that we might send too many characters to PayPal; however in this case they just issue a warning but nothing breaks)
@@ -143,7 +143,7 @@  discard block
 block discarded – undo
143 143
         $notify_url = null,
144 144
         $cancel_url = null
145 145
     ) {
146
-        if (! $payment instanceof EEI_Payment) {
146
+        if ( ! $payment instanceof EEI_Payment) {
147 147
             $payment->set_gateway_response(
148 148
                 esc_html__(
149 149
                     'Error. No associated payment was found.',
@@ -154,7 +154,7 @@  discard block
 block discarded – undo
154 154
             return $payment;
155 155
         }
156 156
         $transaction = $payment->transaction();
157
-        if (! $transaction instanceof EEI_Transaction) {
157
+        if ( ! $transaction instanceof EEI_Transaction) {
158 158
             $payment->set_gateway_response(
159 159
                 esc_html__(
160 160
                     'Could not process this payment because it has no associated transaction.',
@@ -201,13 +201,13 @@  discard block
 block discarded – undo
201 201
             $token_request_dtls['PAYMENTREQUEST_0_SHIPTOZIP'] = $primary_attendee->zip();
202 202
             $token_request_dtls['PAYMENTREQUEST_0_EMAIL'] = $primary_attendee->email();
203 203
             $token_request_dtls['PAYMENTREQUEST_0_SHIPTOPHONENUM'] = $primary_attendee->phone();
204
-        } elseif (! $this->_request_shipping_addr) {
204
+        } elseif ( ! $this->_request_shipping_addr) {
205 205
             // Do not request shipping details on the PP Checkout page.
206 206
             $token_request_dtls['NOSHIPPING'] = '1';
207 207
             $token_request_dtls['REQCONFIRMSHIPPING'] = '0';
208 208
         }
209 209
         // Used a business/personal logo on the PayPal page.
210
-        if (! empty($this->_image_url)) {
210
+        if ( ! empty($this->_image_url)) {
211 211
             $token_request_dtls['LOGOIMG'] = $this->_image_url;
212 212
         }
213 213
         $token_request_dtls = apply_filters(
@@ -232,7 +232,7 @@  discard block
 block discarded – undo
232 232
             );
233 233
         } else {
234 234
             if (isset($response_args['L_ERRORCODE'])) {
235
-                $payment->set_gateway_response($response_args['L_ERRORCODE'] . '; ' . $response_args['L_SHORTMESSAGE']);
235
+                $payment->set_gateway_response($response_args['L_ERRORCODE'].'; '.$response_args['L_SHORTMESSAGE']);
236 236
             } else {
237 237
                 $payment->set_gateway_response(
238 238
                     esc_html__(
@@ -263,7 +263,7 @@  discard block
 block discarded – undo
263 263
         if ($payment instanceof EEI_Payment) {
264 264
             $this->log(array('Return from Authorization' => $update_info), $payment);
265 265
             $transaction = $payment->transaction();
266
-            if (! $transaction instanceof EEI_Transaction) {
266
+            if ( ! $transaction instanceof EEI_Transaction) {
267 267
                 $payment->set_gateway_response(
268 268
                     esc_html__(
269 269
                         'Could not process this payment because it has no associated transaction.',
@@ -276,7 +276,7 @@  discard block
 block discarded – undo
276 276
             $primary_registrant = $transaction->primary_registration();
277 277
             $payment_details = $payment->details();
278 278
             // Check if we still have the token.
279
-            if (! isset($payment_details['TOKEN']) || empty($payment_details['TOKEN'])) {
279
+            if ( ! isset($payment_details['TOKEN']) || empty($payment_details['TOKEN'])) {
280 280
                 $payment->set_status($this->_pay_model->failed_status());
281 281
                 return $payment;
282 282
             }
@@ -411,7 +411,7 @@  discard block
 block discarded – undo
411 411
                     strpos($arg_key, 'PAYMENTREQUEST_') !== false
412 412
                     && strpos($arg_key, 'NOTIFYURL') === false
413 413
                 ) {
414
-                    $itemized_list[ $arg_key ] = $arg_val;
414
+                    $itemized_list[$arg_key] = $arg_val;
415 415
                 }
416 416
             }
417 417
             // If we got only a few Items then something is not right.
@@ -464,25 +464,25 @@  discard block
 block discarded – undo
464 464
                         $line_item_quantity = 1;
465 465
                     }
466 466
                     // Item Name.
467
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_NAME' . $item_num ] = mb_strcut(
467
+                    $itemized_list['L_PAYMENTREQUEST_0_NAME'.$item_num] = mb_strcut(
468 468
                         $gateway_formatter->formatLineItemName($line_item, $payment),
469 469
                         0,
470 470
                         127
471 471
                     );
472 472
                     // Item description.
473
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_DESC' . $item_num ] = mb_strcut(
473
+                    $itemized_list['L_PAYMENTREQUEST_0_DESC'.$item_num] = mb_strcut(
474 474
                         $gateway_formatter->formatLineItemDesc($line_item, $payment),
475 475
                         0,
476 476
                         127
477 477
                     );
478 478
                     // Cost of individual item.
479
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_AMT' . $item_num ] = $gateway_formatter->formatCurrency($unit_price);
479
+                    $itemized_list['L_PAYMENTREQUEST_0_AMT'.$item_num] = $gateway_formatter->formatCurrency($unit_price);
480 480
                     // Item Number.
481
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_NUMBER' . $item_num ] = $item_num + 1;
481
+                    $itemized_list['L_PAYMENTREQUEST_0_NUMBER'.$item_num] = $item_num + 1;
482 482
                     // Item quantity.
483
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_QTY' . $item_num ] = $line_item_quantity;
483
+                    $itemized_list['L_PAYMENTREQUEST_0_QTY'.$item_num] = $line_item_quantity;
484 484
                     // Digital item is sold.
485
-                    $itemized_list[ 'L_PAYMENTREQUEST_0_ITEMCATEGORY' . $item_num ] = 'Physical';
485
+                    $itemized_list['L_PAYMENTREQUEST_0_ITEMCATEGORY'.$item_num] = 'Physical';
486 486
                     $itemized_sum += $line_item->total();
487 487
                     ++$item_num;
488 488
                 }
@@ -500,7 +500,7 @@  discard block
 block discarded – undo
500 500
             // add the difference as an extra line item.
501 501
             if ($this->_money->compare_floats($itemized_sum_diff_from_txn_total, 0, '!=')) {
502 502
                 // Item Name.
503
-                $itemized_list[ 'L_PAYMENTREQUEST_0_NAME' . $item_num ] = mb_strcut(
503
+                $itemized_list['L_PAYMENTREQUEST_0_NAME'.$item_num] = mb_strcut(
504 504
                     esc_html__(
505 505
                         'Other (promotion/surcharge/cancellation)',
506 506
                         'event_espresso'
@@ -509,17 +509,17 @@  discard block
 block discarded – undo
509 509
                     127
510 510
                 );
511 511
                 // Item description.
512
-                $itemized_list[ 'L_PAYMENTREQUEST_0_DESC' . $item_num ] = '';
512
+                $itemized_list['L_PAYMENTREQUEST_0_DESC'.$item_num] = '';
513 513
                 // Cost of individual item.
514
-                $itemized_list[ 'L_PAYMENTREQUEST_0_AMT' . $item_num ] = $gateway_formatter->formatCurrency(
514
+                $itemized_list['L_PAYMENTREQUEST_0_AMT'.$item_num] = $gateway_formatter->formatCurrency(
515 515
                     $itemized_sum_diff_from_txn_total
516 516
                 );
517 517
                 // Item Number.
518
-                $itemized_list[ 'L_PAYMENTREQUEST_0_NUMBER' . $item_num ] = $item_num + 1;
518
+                $itemized_list['L_PAYMENTREQUEST_0_NUMBER'.$item_num] = $item_num + 1;
519 519
                 // Item quantity.
520
-                $itemized_list[ 'L_PAYMENTREQUEST_0_QTY' . $item_num ] = 1;
520
+                $itemized_list['L_PAYMENTREQUEST_0_QTY'.$item_num] = 1;
521 521
                 // Digital item is sold.
522
-                $itemized_list[ 'L_PAYMENTREQUEST_0_ITEMCATEGORY' . $item_num ] = 'Physical';
522
+                $itemized_list['L_PAYMENTREQUEST_0_ITEMCATEGORY'.$item_num] = 'Physical';
523 523
                 $item_num++;
524 524
             }
525 525
         } else {
@@ -574,7 +574,7 @@  discard block
 block discarded – undo
574 574
             'BUTTONSOURCE' => 'EventEspresso_SP',
575 575
         );
576 576
         $dtls = array_merge($request_dtls, $request_params);
577
-        $this->_log_clean_request($dtls, $payment, $request_text . ' Request');
577
+        $this->_log_clean_request($dtls, $payment, $request_text.' Request');
578 578
         // Request Customer Details.
579 579
         $request_response = wp_remote_post(
580 580
             $this->_base_gateway_url,
@@ -588,7 +588,7 @@  discard block
 block discarded – undo
588 588
             )
589 589
         );
590 590
         // Log the response.
591
-        $this->log(array($request_text . ' Response' => $request_response), $payment);
591
+        $this->log(array($request_text.' Response' => $request_response), $payment);
592 592
         return $request_response;
593 593
     }
594 594
 
@@ -608,7 +608,7 @@  discard block
 block discarded – undo
608 608
         }
609 609
         $response_args = array();
610 610
         parse_str(urldecode($request_response['body']), $response_args);
611
-        if (! isset($response_args['ACK'])) {
611
+        if ( ! isset($response_args['ACK'])) {
612 612
             return array('status' => false, 'args' => $request_response);
613 613
         }
614 614
         if (
@@ -656,18 +656,18 @@  discard block
 block discarded – undo
656 656
     {
657 657
         $errors = array();
658 658
         $n = 0;
659
-        while (isset($data_array[ "L_ERRORCODE{$n}" ])) {
660
-            $l_error_code = isset($data_array[ "L_ERRORCODE{$n}" ])
661
-                ? $data_array[ "L_ERRORCODE{$n}" ]
659
+        while (isset($data_array["L_ERRORCODE{$n}"])) {
660
+            $l_error_code = isset($data_array["L_ERRORCODE{$n}"])
661
+                ? $data_array["L_ERRORCODE{$n}"]
662 662
                 : '';
663
-            $l_severity_code = isset($data_array[ "L_SEVERITYCODE{$n}" ])
664
-                ? $data_array[ "L_SEVERITYCODE{$n}" ]
663
+            $l_severity_code = isset($data_array["L_SEVERITYCODE{$n}"])
664
+                ? $data_array["L_SEVERITYCODE{$n}"]
665 665
                 : '';
666
-            $l_short_message = isset($data_array[ "L_SHORTMESSAGE{$n}" ])
667
-                ? $data_array[ "L_SHORTMESSAGE{$n}" ]
666
+            $l_short_message = isset($data_array["L_SHORTMESSAGE{$n}"])
667
+                ? $data_array["L_SHORTMESSAGE{$n}"]
668 668
                 : '';
669
-            $l_long_message = isset($data_array[ "L_LONGMESSAGE{$n}" ])
670
-                ? $data_array[ "L_LONGMESSAGE{$n}" ]
669
+            $l_long_message = isset($data_array["L_LONGMESSAGE{$n}"])
670
+                ? $data_array["L_LONGMESSAGE{$n}"]
671 671
                 : '';
672 672
             if ($n === 0) {
673 673
                 $errors = array(
@@ -677,10 +677,10 @@  discard block
 block discarded – undo
677 677
                     'L_SEVERITYCODE' => $l_severity_code,
678 678
                 );
679 679
             } else {
680
-                $errors['L_ERRORCODE'] .= ', ' . $l_error_code;
681
-                $errors['L_SHORTMESSAGE'] .= ', ' . $l_short_message;
682
-                $errors['L_LONGMESSAGE'] .= ', ' . $l_long_message;
683
-                $errors['L_SEVERITYCODE'] .= ', ' . $l_severity_code;
680
+                $errors['L_ERRORCODE'] .= ', '.$l_error_code;
681
+                $errors['L_SHORTMESSAGE'] .= ', '.$l_short_message;
682
+                $errors['L_LONGMESSAGE'] .= ', '.$l_long_message;
683
+                $errors['L_SEVERITYCODE'] .= ', '.$l_severity_code;
684 684
             }
685 685
             $n++;
686 686
         }
Please login to merge, or discard this patch.
caffeinated/admin/new/pricing/Price_Types_List_Table.class.php 2 patches
Indentation   +228 added lines, -228 removed lines patch added patch discarded remove patch
@@ -16,232 +16,232 @@
 block discarded – undo
16 16
 class Price_Types_List_Table extends EE_Admin_List_Table
17 17
 {
18 18
 
19
-    public function __construct($admin_page)
20
-    {
21
-        parent::__construct($admin_page);
22
-        require_once(EE_MODELS . 'EEM_Price_Type.model.php');
23
-        $this->_PRT = EEM_Price_Type::instance();
24
-    }
25
-
26
-
27
-    protected function _setup_data()
28
-    {
29
-        $trashed = $this->_admin_page->get_view() == 'trashed' ? true : false;
30
-        $this->_data = $this->_admin_page->get_price_types_overview_data($this->_per_page, false, $trashed);
31
-        $this->_all_data_count = $this->_admin_page->get_price_types_overview_data($this->_per_page, true, false);
32
-        $this->_trashed_count = $this->_admin_page->get_price_types_overview_data($this->_per_page, true, true);
33
-    }
34
-
35
-
36
-    protected function _set_properties()
37
-    {
38
-        $this->_wp_list_args = array(
39
-            'singular' => esc_html__('price type', 'event_espresso'),
40
-            'plural'   => esc_html__('price types', 'event_espresso'),
41
-            'ajax'     => true,
42
-            'screen'   => $this->_admin_page->get_current_screen()->id,
43
-        );
44
-
45
-        $this->_columns = array(
46
-            'cb'        => '<input type="checkbox" />', // Render a checkbox instead of text
47
-            'name'      => esc_html__('Name', 'event_espresso'),
48
-            'base_type' => '<div class="jst-cntr">' . esc_html__('Base Type', 'event_espresso') . '</div>',
49
-            'percent'   => '<div class="jst-cntr">'
50
-                           . sprintf(
51
-                               /* translators: 1: HTML new line, 2: open span tag, 3: close span tag */
52
-                               esc_html__('Applied %1$s as %2$s%%%3$s or %2$s$%3$s', 'event_espresso'),
53
-                               '<br/>',
54
-                               '<span class="big-text">',
55
-                               '</span>'
56
-                           )
57
-                           . '</div>',
58
-            'order'     => '<div class="jst-cntr">'
59
-                           . sprintf(
60
-                               /* translators: HTML new line */
61
-                               esc_html__('Order of %s Application', 'event_espresso'),
62
-                               '<br/>'
63
-                           )
64
-                           . '</div>',
65
-        );
66
-
67
-        $this->_sortable_columns = array(
68
-            // TRUE means its already sorted
69
-            'name' => array('name' => false),
70
-        );
71
-
72
-        $this->_hidden_columns = array();
73
-    }
74
-
75
-
76
-    protected function _get_table_filters()
77
-    {
78
-    }
79
-
80
-
81
-    protected function _add_view_counts()
82
-    {
83
-        $this->_views['all']['count'] = $this->_all_data_count;
84
-        if (
85
-            EE_Registry::instance()->CAP->current_user_can(
86
-                'ee_delete_default_price_types',
87
-                'pricing_trash_price_type'
88
-            )
89
-        ) {
90
-            $this->_views['trashed']['count'] = $this->_trashed_count;
91
-        }
92
-    }
93
-
94
-
95
-    public function column_cb($item)
96
-    {
97
-        if ($item->base_type() !== 1) {
98
-            return sprintf(
99
-                '<input type="checkbox" name="checkbox[%1$s]" />',
100
-                $item->ID()
101
-            );
102
-        }
103
-        return '';
104
-    }
105
-
106
-
107
-    public function column_name($item)
108
-    {
109
-
110
-        // Build row actions
111
-        $actions = array();
112
-        // edit price link
113
-        if (
114
-            EE_Registry::instance()->CAP->current_user_can(
115
-                'ee_edit_default_price_type',
116
-                'pricing_edit_price_type',
117
-                $item->ID()
118
-            )
119
-        ) {
120
-            $edit_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
121
-                'action' => 'edit_price_type',
122
-                'id'     => $item->ID(),
123
-            ), PRICING_ADMIN_URL);
124
-            $actions['edit'] = '<a href="' . $edit_lnk_url . '" aria-label="'
125
-                               . sprintf(
126
-                                   /* translators: The name of the price type */
127
-                                   esc_attr__('Edit Price Type (%s)', 'event_espresso'),
128
-                                   $item->name()
129
-                               )
130
-                               . '">'
131
-                               . esc_html__('Edit', 'event_espresso') . '</a>';
132
-        }
133
-
134
-        $name_link = EE_Registry::instance()->CAP->current_user_can(
135
-            'ee_edit_default_price_type',
136
-            'pricing_edit_price_type',
137
-            $item->ID()
138
-        )
139
-            ? '<a href="' . $edit_lnk_url . '" aria-label="'
140
-              . sprintf(
141
-                  /* translators: The name of the price type */
142
-                  esc_attr__('Edit Price Type (%s)', 'event_espresso'),
143
-                  $item->name()
144
-              )
145
-              . '">'
146
-              . stripslashes($item->name()) . '</a>'
147
-            : $item->name();
148
-
149
-        if ($item->base_type() !== 1) {
150
-            if ($this->_view == 'all') {
151
-                // trash price link
152
-                if (
153
-                    EE_Registry::instance()->CAP->current_user_can(
154
-                        'ee_delete_default_price_type',
155
-                        'pricing_trash_price_type',
156
-                        $item->ID()
157
-                    )
158
-                ) {
159
-                    $trash_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
160
-                        'action'   => 'trash_price_type',
161
-                        'id'       => $item->ID(),
162
-                        'noheader' => true,
163
-                    ), PRICING_ADMIN_URL);
164
-                    $actions['trash'] = '<a href="' . $trash_lnk_url . '" aria-label="'
165
-                                        . sprintf(
166
-                                            /* translators: The name of the price type */
167
-                                            esc_attr__('Move Price Type %s to Trash', 'event_espresso'),
168
-                                            $item->name()
169
-                                        )
170
-                                        . '">'
171
-                                        . esc_html__('Move to Trash', 'event_espresso') . '</a>';
172
-                }
173
-            } else {
174
-                // restore price link
175
-                if (
176
-                    EE_Registry::instance()->CAP->current_user_can(
177
-                        'ee_delete_default_price_type',
178
-                        'pricing_restore_price_type',
179
-                        $item->ID()
180
-                    )
181
-                ) {
182
-                    $restore_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
183
-                        'action'   => 'restore_price_type',
184
-                        'id'       => $item->ID(),
185
-                        'noheader' => true,
186
-                    ), PRICING_ADMIN_URL);
187
-                    $actions['restore'] = '<a href="' . $restore_lnk_url . '" aria-label="'
188
-                                          . sprintf(
189
-                                              /* translators: The name of the price type */
190
-                                              esc_attr__('Restore Price Type (%s)', 'event_espresso'),
191
-                                              $item->name()
192
-                                          )
193
-                                          . '">'
194
-                                          . esc_html__('Restore', 'event_espresso') . '</a>';
195
-                }
196
-                // delete price link
197
-                if (
198
-                    EE_Registry::instance()->CAP->current_user_can(
199
-                        'ee_delete_default_price_type',
200
-                        'pricing_delete_price_type',
201
-                        $item->ID()
202
-                    )
203
-                ) {
204
-                    $delete_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
205
-                        'action'   => 'delete_price_type',
206
-                        'id'       => $item->ID(),
207
-                        'noheader' => true,
208
-                    ), PRICING_ADMIN_URL);
209
-                    $actions['delete'] = '<a href="' . $delete_lnk_url . '" aria-label="'
210
-                                         . sprintf(
211
-                                             /* translators: The name of the price type */
212
-                                             esc_attr__('Delete Price Type %s Permanently', 'event_espresso'),
213
-                                             $item->name()
214
-                                         )
215
-                                         . '">'
216
-                                         . esc_html__('Delete Permanently', 'event_espresso') . '</a>';
217
-                }
218
-            }
219
-        }
220
-
221
-        // Return the name contents
222
-        return sprintf(
223
-            '%1$s <span style="color:silver">(id:%2$s)</span>%3$s',
224
-            $name_link,
225
-            $item->ID(),
226
-            $this->row_actions($actions)
227
-        );
228
-    }
229
-
230
-
231
-    public function column_base_type($item)
232
-    {
233
-        return '<div class="jst-cntr">' . $item->base_type_name() . '</div>';
234
-    }
235
-
236
-
237
-    public function column_percent($item)
238
-    {
239
-        return '<div class="jst-cntr">' . ($item->is_percent() ? '%' : EE_Registry::instance()->CFG->currency->sign) . '</div>';
240
-    }
241
-
242
-
243
-    public function column_order($item)
244
-    {
245
-        return '<div class="jst-cntr">' . $item->order() . '</div>';
246
-    }
19
+	public function __construct($admin_page)
20
+	{
21
+		parent::__construct($admin_page);
22
+		require_once(EE_MODELS . 'EEM_Price_Type.model.php');
23
+		$this->_PRT = EEM_Price_Type::instance();
24
+	}
25
+
26
+
27
+	protected function _setup_data()
28
+	{
29
+		$trashed = $this->_admin_page->get_view() == 'trashed' ? true : false;
30
+		$this->_data = $this->_admin_page->get_price_types_overview_data($this->_per_page, false, $trashed);
31
+		$this->_all_data_count = $this->_admin_page->get_price_types_overview_data($this->_per_page, true, false);
32
+		$this->_trashed_count = $this->_admin_page->get_price_types_overview_data($this->_per_page, true, true);
33
+	}
34
+
35
+
36
+	protected function _set_properties()
37
+	{
38
+		$this->_wp_list_args = array(
39
+			'singular' => esc_html__('price type', 'event_espresso'),
40
+			'plural'   => esc_html__('price types', 'event_espresso'),
41
+			'ajax'     => true,
42
+			'screen'   => $this->_admin_page->get_current_screen()->id,
43
+		);
44
+
45
+		$this->_columns = array(
46
+			'cb'        => '<input type="checkbox" />', // Render a checkbox instead of text
47
+			'name'      => esc_html__('Name', 'event_espresso'),
48
+			'base_type' => '<div class="jst-cntr">' . esc_html__('Base Type', 'event_espresso') . '</div>',
49
+			'percent'   => '<div class="jst-cntr">'
50
+						   . sprintf(
51
+							   /* translators: 1: HTML new line, 2: open span tag, 3: close span tag */
52
+							   esc_html__('Applied %1$s as %2$s%%%3$s or %2$s$%3$s', 'event_espresso'),
53
+							   '<br/>',
54
+							   '<span class="big-text">',
55
+							   '</span>'
56
+						   )
57
+						   . '</div>',
58
+			'order'     => '<div class="jst-cntr">'
59
+						   . sprintf(
60
+							   /* translators: HTML new line */
61
+							   esc_html__('Order of %s Application', 'event_espresso'),
62
+							   '<br/>'
63
+						   )
64
+						   . '</div>',
65
+		);
66
+
67
+		$this->_sortable_columns = array(
68
+			// TRUE means its already sorted
69
+			'name' => array('name' => false),
70
+		);
71
+
72
+		$this->_hidden_columns = array();
73
+	}
74
+
75
+
76
+	protected function _get_table_filters()
77
+	{
78
+	}
79
+
80
+
81
+	protected function _add_view_counts()
82
+	{
83
+		$this->_views['all']['count'] = $this->_all_data_count;
84
+		if (
85
+			EE_Registry::instance()->CAP->current_user_can(
86
+				'ee_delete_default_price_types',
87
+				'pricing_trash_price_type'
88
+			)
89
+		) {
90
+			$this->_views['trashed']['count'] = $this->_trashed_count;
91
+		}
92
+	}
93
+
94
+
95
+	public function column_cb($item)
96
+	{
97
+		if ($item->base_type() !== 1) {
98
+			return sprintf(
99
+				'<input type="checkbox" name="checkbox[%1$s]" />',
100
+				$item->ID()
101
+			);
102
+		}
103
+		return '';
104
+	}
105
+
106
+
107
+	public function column_name($item)
108
+	{
109
+
110
+		// Build row actions
111
+		$actions = array();
112
+		// edit price link
113
+		if (
114
+			EE_Registry::instance()->CAP->current_user_can(
115
+				'ee_edit_default_price_type',
116
+				'pricing_edit_price_type',
117
+				$item->ID()
118
+			)
119
+		) {
120
+			$edit_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
121
+				'action' => 'edit_price_type',
122
+				'id'     => $item->ID(),
123
+			), PRICING_ADMIN_URL);
124
+			$actions['edit'] = '<a href="' . $edit_lnk_url . '" aria-label="'
125
+							   . sprintf(
126
+								   /* translators: The name of the price type */
127
+								   esc_attr__('Edit Price Type (%s)', 'event_espresso'),
128
+								   $item->name()
129
+							   )
130
+							   . '">'
131
+							   . esc_html__('Edit', 'event_espresso') . '</a>';
132
+		}
133
+
134
+		$name_link = EE_Registry::instance()->CAP->current_user_can(
135
+			'ee_edit_default_price_type',
136
+			'pricing_edit_price_type',
137
+			$item->ID()
138
+		)
139
+			? '<a href="' . $edit_lnk_url . '" aria-label="'
140
+			  . sprintf(
141
+				  /* translators: The name of the price type */
142
+				  esc_attr__('Edit Price Type (%s)', 'event_espresso'),
143
+				  $item->name()
144
+			  )
145
+			  . '">'
146
+			  . stripslashes($item->name()) . '</a>'
147
+			: $item->name();
148
+
149
+		if ($item->base_type() !== 1) {
150
+			if ($this->_view == 'all') {
151
+				// trash price link
152
+				if (
153
+					EE_Registry::instance()->CAP->current_user_can(
154
+						'ee_delete_default_price_type',
155
+						'pricing_trash_price_type',
156
+						$item->ID()
157
+					)
158
+				) {
159
+					$trash_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
160
+						'action'   => 'trash_price_type',
161
+						'id'       => $item->ID(),
162
+						'noheader' => true,
163
+					), PRICING_ADMIN_URL);
164
+					$actions['trash'] = '<a href="' . $trash_lnk_url . '" aria-label="'
165
+										. sprintf(
166
+											/* translators: The name of the price type */
167
+											esc_attr__('Move Price Type %s to Trash', 'event_espresso'),
168
+											$item->name()
169
+										)
170
+										. '">'
171
+										. esc_html__('Move to Trash', 'event_espresso') . '</a>';
172
+				}
173
+			} else {
174
+				// restore price link
175
+				if (
176
+					EE_Registry::instance()->CAP->current_user_can(
177
+						'ee_delete_default_price_type',
178
+						'pricing_restore_price_type',
179
+						$item->ID()
180
+					)
181
+				) {
182
+					$restore_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
183
+						'action'   => 'restore_price_type',
184
+						'id'       => $item->ID(),
185
+						'noheader' => true,
186
+					), PRICING_ADMIN_URL);
187
+					$actions['restore'] = '<a href="' . $restore_lnk_url . '" aria-label="'
188
+										  . sprintf(
189
+											  /* translators: The name of the price type */
190
+											  esc_attr__('Restore Price Type (%s)', 'event_espresso'),
191
+											  $item->name()
192
+										  )
193
+										  . '">'
194
+										  . esc_html__('Restore', 'event_espresso') . '</a>';
195
+				}
196
+				// delete price link
197
+				if (
198
+					EE_Registry::instance()->CAP->current_user_can(
199
+						'ee_delete_default_price_type',
200
+						'pricing_delete_price_type',
201
+						$item->ID()
202
+					)
203
+				) {
204
+					$delete_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
205
+						'action'   => 'delete_price_type',
206
+						'id'       => $item->ID(),
207
+						'noheader' => true,
208
+					), PRICING_ADMIN_URL);
209
+					$actions['delete'] = '<a href="' . $delete_lnk_url . '" aria-label="'
210
+										 . sprintf(
211
+											 /* translators: The name of the price type */
212
+											 esc_attr__('Delete Price Type %s Permanently', 'event_espresso'),
213
+											 $item->name()
214
+										 )
215
+										 . '">'
216
+										 . esc_html__('Delete Permanently', 'event_espresso') . '</a>';
217
+				}
218
+			}
219
+		}
220
+
221
+		// Return the name contents
222
+		return sprintf(
223
+			'%1$s <span style="color:silver">(id:%2$s)</span>%3$s',
224
+			$name_link,
225
+			$item->ID(),
226
+			$this->row_actions($actions)
227
+		);
228
+	}
229
+
230
+
231
+	public function column_base_type($item)
232
+	{
233
+		return '<div class="jst-cntr">' . $item->base_type_name() . '</div>';
234
+	}
235
+
236
+
237
+	public function column_percent($item)
238
+	{
239
+		return '<div class="jst-cntr">' . ($item->is_percent() ? '%' : EE_Registry::instance()->CFG->currency->sign) . '</div>';
240
+	}
241
+
242
+
243
+	public function column_order($item)
244
+	{
245
+		return '<div class="jst-cntr">' . $item->order() . '</div>';
246
+	}
247 247
 }
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
     public function __construct($admin_page)
20 20
     {
21 21
         parent::__construct($admin_page);
22
-        require_once(EE_MODELS . 'EEM_Price_Type.model.php');
22
+        require_once(EE_MODELS.'EEM_Price_Type.model.php');
23 23
         $this->_PRT = EEM_Price_Type::instance();
24 24
     }
25 25
 
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
         $this->_columns = array(
46 46
             'cb'        => '<input type="checkbox" />', // Render a checkbox instead of text
47 47
             'name'      => esc_html__('Name', 'event_espresso'),
48
-            'base_type' => '<div class="jst-cntr">' . esc_html__('Base Type', 'event_espresso') . '</div>',
48
+            'base_type' => '<div class="jst-cntr">'.esc_html__('Base Type', 'event_espresso').'</div>',
49 49
             'percent'   => '<div class="jst-cntr">'
50 50
                            . sprintf(
51 51
                                /* translators: 1: HTML new line, 2: open span tag, 3: close span tag */
@@ -121,14 +121,14 @@  discard block
 block discarded – undo
121 121
                 'action' => 'edit_price_type',
122 122
                 'id'     => $item->ID(),
123 123
             ), PRICING_ADMIN_URL);
124
-            $actions['edit'] = '<a href="' . $edit_lnk_url . '" aria-label="'
124
+            $actions['edit'] = '<a href="'.$edit_lnk_url.'" aria-label="'
125 125
                                . sprintf(
126 126
                                    /* translators: The name of the price type */
127 127
                                    esc_attr__('Edit Price Type (%s)', 'event_espresso'),
128 128
                                    $item->name()
129 129
                                )
130 130
                                . '">'
131
-                               . esc_html__('Edit', 'event_espresso') . '</a>';
131
+                               . esc_html__('Edit', 'event_espresso').'</a>';
132 132
         }
133 133
 
134 134
         $name_link = EE_Registry::instance()->CAP->current_user_can(
@@ -136,14 +136,14 @@  discard block
 block discarded – undo
136 136
             'pricing_edit_price_type',
137 137
             $item->ID()
138 138
         )
139
-            ? '<a href="' . $edit_lnk_url . '" aria-label="'
139
+            ? '<a href="'.$edit_lnk_url.'" aria-label="'
140 140
               . sprintf(
141 141
                   /* translators: The name of the price type */
142 142
                   esc_attr__('Edit Price Type (%s)', 'event_espresso'),
143 143
                   $item->name()
144 144
               )
145 145
               . '">'
146
-              . stripslashes($item->name()) . '</a>'
146
+              . stripslashes($item->name()).'</a>'
147 147
             : $item->name();
148 148
 
149 149
         if ($item->base_type() !== 1) {
@@ -161,14 +161,14 @@  discard block
 block discarded – undo
161 161
                         'id'       => $item->ID(),
162 162
                         'noheader' => true,
163 163
                     ), PRICING_ADMIN_URL);
164
-                    $actions['trash'] = '<a href="' . $trash_lnk_url . '" aria-label="'
164
+                    $actions['trash'] = '<a href="'.$trash_lnk_url.'" aria-label="'
165 165
                                         . sprintf(
166 166
                                             /* translators: The name of the price type */
167 167
                                             esc_attr__('Move Price Type %s to Trash', 'event_espresso'),
168 168
                                             $item->name()
169 169
                                         )
170 170
                                         . '">'
171
-                                        . esc_html__('Move to Trash', 'event_espresso') . '</a>';
171
+                                        . esc_html__('Move to Trash', 'event_espresso').'</a>';
172 172
                 }
173 173
             } else {
174 174
                 // restore price link
@@ -184,14 +184,14 @@  discard block
 block discarded – undo
184 184
                         'id'       => $item->ID(),
185 185
                         'noheader' => true,
186 186
                     ), PRICING_ADMIN_URL);
187
-                    $actions['restore'] = '<a href="' . $restore_lnk_url . '" aria-label="'
187
+                    $actions['restore'] = '<a href="'.$restore_lnk_url.'" aria-label="'
188 188
                                           . sprintf(
189 189
                                               /* translators: The name of the price type */
190 190
                                               esc_attr__('Restore Price Type (%s)', 'event_espresso'),
191 191
                                               $item->name()
192 192
                                           )
193 193
                                           . '">'
194
-                                          . esc_html__('Restore', 'event_espresso') . '</a>';
194
+                                          . esc_html__('Restore', 'event_espresso').'</a>';
195 195
                 }
196 196
                 // delete price link
197 197
                 if (
@@ -206,14 +206,14 @@  discard block
 block discarded – undo
206 206
                         'id'       => $item->ID(),
207 207
                         'noheader' => true,
208 208
                     ), PRICING_ADMIN_URL);
209
-                    $actions['delete'] = '<a href="' . $delete_lnk_url . '" aria-label="'
209
+                    $actions['delete'] = '<a href="'.$delete_lnk_url.'" aria-label="'
210 210
                                          . sprintf(
211 211
                                              /* translators: The name of the price type */
212 212
                                              esc_attr__('Delete Price Type %s Permanently', 'event_espresso'),
213 213
                                              $item->name()
214 214
                                          )
215 215
                                          . '">'
216
-                                         . esc_html__('Delete Permanently', 'event_espresso') . '</a>';
216
+                                         . esc_html__('Delete Permanently', 'event_espresso').'</a>';
217 217
                 }
218 218
             }
219 219
         }
@@ -230,18 +230,18 @@  discard block
 block discarded – undo
230 230
 
231 231
     public function column_base_type($item)
232 232
     {
233
-        return '<div class="jst-cntr">' . $item->base_type_name() . '</div>';
233
+        return '<div class="jst-cntr">'.$item->base_type_name().'</div>';
234 234
     }
235 235
 
236 236
 
237 237
     public function column_percent($item)
238 238
     {
239
-        return '<div class="jst-cntr">' . ($item->is_percent() ? '%' : EE_Registry::instance()->CFG->currency->sign) . '</div>';
239
+        return '<div class="jst-cntr">'.($item->is_percent() ? '%' : EE_Registry::instance()->CFG->currency->sign).'</div>';
240 240
     }
241 241
 
242 242
 
243 243
     public function column_order($item)
244 244
     {
245
-        return '<div class="jst-cntr">' . $item->order() . '</div>';
245
+        return '<div class="jst-cntr">'.$item->order().'</div>';
246 246
     }
247 247
 }
Please login to merge, or discard this patch.