Completed
Branch BUG/required-message-fields (8f9492)
by
unknown
10:53 queued 20s
created
message_type/newsletter/EE_Messages_Email_Newsletter_Validator.class.php 2 patches
Indentation   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -11,72 +11,72 @@
 block discarded – undo
11 11
  */
12 12
 class EE_Messages_Email_Newsletter_Validator extends EE_Messages_Validator
13 13
 {
14
-    /**
15
-     * EE_Messages_Email_Newsletter_Validator constructor.
16
-     *
17
-     * @param array $fields
18
-     * @param string $context
19
-     * @throws EE_Error
20
-     * @throws ReflectionException
21
-     */
22
-    public function __construct(array $fields, $context)
23
-    {
24
-        $this->_m_name = 'email';
25
-        $this->_mt_name = 'newsletter';
14
+	/**
15
+	 * EE_Messages_Email_Newsletter_Validator constructor.
16
+	 *
17
+	 * @param array $fields
18
+	 * @param string $context
19
+	 * @throws EE_Error
20
+	 * @throws ReflectionException
21
+	 */
22
+	public function __construct(array $fields, $context)
23
+	{
24
+		$this->_m_name = 'email';
25
+		$this->_mt_name = 'newsletter';
26 26
 
27
-        parent::__construct($fields, $context);
28
-    }
27
+		parent::__construct($fields, $context);
28
+	}
29 29
 
30
-    /**
31
-     * custom validator (restricting what was originally set by the messenger)
32
-     */
33
-    protected function _modify_validator()
34
-    {
35
-        if ($this->_context === 'attendee') {
36
-            $this->_valid_shortcodes_modifier[ $this->_context ]['from'] = array(
37
-                'recipient_details',
38
-                'email',
39
-                'organization',
40
-            );
41
-        }
30
+	/**
31
+	 * custom validator (restricting what was originally set by the messenger)
32
+	 */
33
+	protected function _modify_validator()
34
+	{
35
+		if ($this->_context === 'attendee') {
36
+			$this->_valid_shortcodes_modifier[ $this->_context ]['from'] = array(
37
+				'recipient_details',
38
+				'email',
39
+				'organization',
40
+			);
41
+		}
42 42
 
43
-        // excluded shortcodes
44
-        $fields = array('to', 'from', 'subject', 'content', 'newsletter_content');
45
-        foreach ($fields as $field) {
46
-            $this->_specific_shortcode_excludes[ $field ] = array(
47
-                '[RECIPIENT_REGISTRATION_CODE]',
48
-                '[EVENT_AUTHOR_FORMATTED_EMAIL]',
49
-                '[EVENT_AUTHOR_EMAIL]',
50
-            );
51
-        }
52
-        $add_excludes = array(
53
-            '[RECIPIENT_FNAME]',
54
-            '[RECIPIENT_LNAME]',
55
-            '[RECIPIENT_EMAIL]',
56
-            '[COMPANY]',
57
-            '[CO_ADD1]',
58
-            '[CO_ADD2]',
59
-            '[CO_CITY]',
60
-            '[CO_STATE]',
61
-            '[CO_ZIP]',
62
-            '[CO_LOGO]',
63
-            '[CO_PHONE]',
64
-            '[CO_LOGO_URL]',
65
-            '[CO_FACEBOOK_URL]',
66
-            '[CO_TWITTER_URL]',
67
-            '[CO_PINTEREST_URL]',
68
-            '[CO_GOOGLE_URL]',
69
-            '[CO_LINKEDIN_URL]',
70
-            '[CO_INSTAGRAM_URL]',
71
-        );
72
-        $this->_specific_shortcode_excludes['from'] =
73
-            array_merge(
74
-                $this->_specific_shortcode_excludes['from'],
75
-                $add_excludes
76
-            );
77
-        $this->_specific_shortcode_excludes['content'] = array_merge(
78
-            $this->_specific_shortcode_excludes['content'],
79
-            array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]')
80
-        );
81
-    }
43
+		// excluded shortcodes
44
+		$fields = array('to', 'from', 'subject', 'content', 'newsletter_content');
45
+		foreach ($fields as $field) {
46
+			$this->_specific_shortcode_excludes[ $field ] = array(
47
+				'[RECIPIENT_REGISTRATION_CODE]',
48
+				'[EVENT_AUTHOR_FORMATTED_EMAIL]',
49
+				'[EVENT_AUTHOR_EMAIL]',
50
+			);
51
+		}
52
+		$add_excludes = array(
53
+			'[RECIPIENT_FNAME]',
54
+			'[RECIPIENT_LNAME]',
55
+			'[RECIPIENT_EMAIL]',
56
+			'[COMPANY]',
57
+			'[CO_ADD1]',
58
+			'[CO_ADD2]',
59
+			'[CO_CITY]',
60
+			'[CO_STATE]',
61
+			'[CO_ZIP]',
62
+			'[CO_LOGO]',
63
+			'[CO_PHONE]',
64
+			'[CO_LOGO_URL]',
65
+			'[CO_FACEBOOK_URL]',
66
+			'[CO_TWITTER_URL]',
67
+			'[CO_PINTEREST_URL]',
68
+			'[CO_GOOGLE_URL]',
69
+			'[CO_LINKEDIN_URL]',
70
+			'[CO_INSTAGRAM_URL]',
71
+		);
72
+		$this->_specific_shortcode_excludes['from'] =
73
+			array_merge(
74
+				$this->_specific_shortcode_excludes['from'],
75
+				$add_excludes
76
+			);
77
+		$this->_specific_shortcode_excludes['content'] = array_merge(
78
+			$this->_specific_shortcode_excludes['content'],
79
+			array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]')
80
+		);
81
+	}
82 82
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -33,7 +33,7 @@  discard block
 block discarded – undo
33 33
     protected function _modify_validator()
34 34
     {
35 35
         if ($this->_context === 'attendee') {
36
-            $this->_valid_shortcodes_modifier[ $this->_context ]['from'] = array(
36
+            $this->_valid_shortcodes_modifier[$this->_context]['from'] = array(
37 37
                 'recipient_details',
38 38
                 'email',
39 39
                 'organization',
@@ -43,7 +43,7 @@  discard block
 block discarded – undo
43 43
         // excluded shortcodes
44 44
         $fields = array('to', 'from', 'subject', 'content', 'newsletter_content');
45 45
         foreach ($fields as $field) {
46
-            $this->_specific_shortcode_excludes[ $field ] = array(
46
+            $this->_specific_shortcode_excludes[$field] = array(
47 47
                 '[RECIPIENT_REGISTRATION_CODE]',
48 48
                 '[EVENT_AUTHOR_FORMATTED_EMAIL]',
49 49
                 '[EVENT_AUTHOR_EMAIL]',
Please login to merge, or discard this patch.
messages/message_type/newsletter/EE_Newsletter_message_type.class.php 2 patches
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -114,11 +114,11 @@  discard block
 block discarded – undo
114 114
 
115 115
         foreach ($this->_valid_shortcodes as $context => $shortcodes) {
116 116
             foreach ($shortcodes as $key => $shortcode) {
117
-                if (! in_array($shortcode, $included_shortcodes, true)) {
118
-                    unset($this->_valid_shortcodes[ $context ][ $key ]);
117
+                if ( ! in_array($shortcode, $included_shortcodes, true)) {
118
+                    unset($this->_valid_shortcodes[$context][$key]);
119 119
                 }
120 120
             }
121
-            $this->_valid_shortcodes[ $context ][] = 'newsletter';
121
+            $this->_valid_shortcodes[$context][] = 'newsletter';
122 122
         }
123 123
     }
124 124
 
@@ -148,23 +148,23 @@  discard block
 block discarded – undo
148 148
                 ? $details['att_obj']
149 149
                 : null;
150 150
 
151
-            if (! $attendee instanceof EE_Attendee) {
151
+            if ( ! $attendee instanceof EE_Attendee) {
152 152
                 continue;
153 153
             }
154 154
 
155 155
             // set $aee from attendee object
156 156
             $aee['att_obj'] = $attendee;
157
-            $aee['reg_objs'] = isset($this->_data->attendees[ $attendee->ID() ]['reg_objs'])
158
-                ? $this->_data->attendees[ $attendee->ID() ]['reg_objs']
157
+            $aee['reg_objs'] = isset($this->_data->attendees[$attendee->ID()]['reg_objs'])
158
+                ? $this->_data->attendees[$attendee->ID()]['reg_objs']
159 159
                 : array();
160 160
             $aee['attendee_email'] = $attendee->email();
161
-            $aee['tkt_objs'] = isset($this->_data->attendees[ $attendee->ID() ]['tkt_objs'])
162
-                ? $this->_data->attendees[ $attendee->ID() ]['tkt_objs']
161
+            $aee['tkt_objs'] = isset($this->_data->attendees[$attendee->ID()]['tkt_objs'])
162
+                ? $this->_data->attendees[$attendee->ID()]['tkt_objs']
163 163
                 : array();
164 164
 
165
-            if (isset($this->_data->attendees[ $attendee->ID() ]['evt_objs'])) {
166
-                $aee['evt_objs'] = $this->_data->attendees[ $attendee->ID() ]['evt_objs'];
167
-                $aee['events'] = $this->_data->attendees[ $attendee->ID() ]['evt_objs'];
165
+            if (isset($this->_data->attendees[$attendee->ID()]['evt_objs'])) {
166
+                $aee['evt_objs'] = $this->_data->attendees[$attendee->ID()]['evt_objs'];
167
+                $aee['events'] = $this->_data->attendees[$attendee->ID()]['evt_objs'];
168 168
             } else {
169 169
                 $aee['evt_objs'] = $aee['events'] = array();
170 170
             }
@@ -199,8 +199,8 @@  discard block
 block discarded – undo
199 199
         $excluded_fields = array(
200 200
             'email' => array('cc')
201 201
         );
202
-        return isset($excluded_fields[ $messenger_name ])
203
-            ? $excluded_fields[ $messenger_name ]
202
+        return isset($excluded_fields[$messenger_name])
203
+            ? $excluded_fields[$messenger_name]
204 204
             : parent::excludedFieldsForMessenger($messenger_name);
205 205
     }
206 206
 }
Please login to merge, or discard this patch.
Indentation   +190 added lines, -190 removed lines patch added patch discarded remove patch
@@ -12,194 +12,194 @@
 block discarded – undo
12 12
  */
13 13
 class EE_Newsletter_message_type extends EE_message_type
14 14
 {
15
-    public function __construct()
16
-    {
17
-        $this->name = 'newsletter';
18
-        $this->description = esc_html__(
19
-            'Batch message type messages are triggered manually by the admin for sending notifications to a selected group of recipients. This should only be used for more general notification type messages that contain information specific for the recipients. For "newsletter" type messages we recommend using an email list service like MailChimp, because sending non-related mail-outs to contacts increases the risk of your site domain getting added to spam lists, which will prevent messages getting to users.',
20
-            'event_espresso'
21
-        );
22
-        $this->label = array(
23
-            'singular' => esc_html__('batch', 'event_espresso'),
24
-            'plural'   => esc_html__('batches', 'event_espresso'),
25
-        );
26
-        $this->_master_templates = array(
27
-            'email' => 'registration',
28
-        );
29
-
30
-        parent::__construct();
31
-    }
32
-
33
-
34
-    /**
35
-     * Sets admin_registered_pages property
36
-     */
37
-    protected function _set_admin_pages()
38
-    {
39
-        $this->admin_registered_pages = array(); // no admin pages to register this with.
40
-    }
41
-
42
-
43
-    /**
44
-     * Sets property related to data handler.
45
-     */
46
-    protected function _set_data_handler()
47
-    {
48
-        $this->_data_handler = 'Registrations';
49
-        $this->_single_message = $this->_data instanceof EE_Registration;
50
-    }
51
-
52
-
53
-    /**
54
-     * Returns the data for the given context for this message type.
55
-     * @param string          $context
56
-     * @param EE_Registration $registration
57
-     * @param int             $id
58
-     * @return array|mixed
59
-     */
60
-    protected function _get_data_for_context($context, EE_Registration $registration, $id)
61
-    {
62
-        // newsletter message type data handler is 'Registrations' and it expects an array of EE_Registration objects.
63
-        return array($registration);
64
-    }
65
-
66
-
67
-    /**
68
-     * Sets the admin settings fields property for this message type.
69
-     */
70
-    protected function _set_admin_settings_fields()
71
-    {
72
-        $this->_admin_settings_fields = array();
73
-    }
74
-
75
-
76
-    /**
77
-     * Sets the contexts for this message type.
78
-     */
79
-    protected function _set_contexts()
80
-    {
81
-        $this->_context_label = array(
82
-            'label'       => esc_html__('recipient', 'event_espresso'),
83
-            'plural'      => esc_html__('recipients', 'event_espresso'),
84
-            'description' => esc_html__('Recipient\'s are who will receive the message.', 'event_espresso'),
85
-        );
86
-
87
-        $this->_contexts = array(
88
-            'attendee' => array(
89
-                'label'       => esc_html__('Registrant', 'event_espresso'),
90
-                'description' => esc_html__('This template goes to selected registrants.', 'event_espresso'),
91
-            ),
92
-        );
93
-    }
94
-
95
-
96
-    /**
97
-     * used to set the valid shortcodes.
98
-     * For the newsletter message type we only have two valid shortcode libraries in use, recipient details and
99
-     * organization.  That's it!
100
-     *
101
-     * @since   4.3.0
102
-     * @return  void
103
-     */
104
-    protected function _set_valid_shortcodes()
105
-    {
106
-        parent::_set_valid_shortcodes();
107
-
108
-        $included_shortcodes = array(
109
-            'recipient_details',
110
-            'organization',
111
-            'newsletter',
112
-        );
113
-
114
-        foreach ($this->_valid_shortcodes as $context => $shortcodes) {
115
-            foreach ($shortcodes as $key => $shortcode) {
116
-                if (! in_array($shortcode, $included_shortcodes, true)) {
117
-                    unset($this->_valid_shortcodes[ $context ][ $key ]);
118
-                }
119
-            }
120
-            $this->_valid_shortcodes[ $context ][] = 'newsletter';
121
-        }
122
-    }
123
-
124
-
125
-    /**
126
-     * Override default _attendee_addressees in EE_message_type because we want to loop through the registrations
127
-     * for EE_message_type.
128
-     *
129
-     * @return array
130
-     * @throws EE_Error
131
-     * @throws InvalidArgumentException
132
-     * @throws ReflectionException
133
-     * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
134
-     * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
135
-     */
136
-    protected function _attendee_addressees()
137
-    {
138
-        $addressee = array();
139
-
140
-        // looping through registrations
141
-        foreach ($this->_data->registrations as $reg_id => $details) {
142
-            // set $attendee array to blank on each loop
143
-            $aee = array();
144
-
145
-            // need to get the attendee from this registration.
146
-            $attendee = isset($details['att_obj']) && $details['att_obj'] instanceof EE_Attendee
147
-                ? $details['att_obj']
148
-                : null;
149
-
150
-            if (! $attendee instanceof EE_Attendee) {
151
-                continue;
152
-            }
153
-
154
-            // set $aee from attendee object
155
-            $aee['att_obj'] = $attendee;
156
-            $aee['reg_objs'] = isset($this->_data->attendees[ $attendee->ID() ]['reg_objs'])
157
-                ? $this->_data->attendees[ $attendee->ID() ]['reg_objs']
158
-                : array();
159
-            $aee['attendee_email'] = $attendee->email();
160
-            $aee['tkt_objs'] = isset($this->_data->attendees[ $attendee->ID() ]['tkt_objs'])
161
-                ? $this->_data->attendees[ $attendee->ID() ]['tkt_objs']
162
-                : array();
163
-
164
-            if (isset($this->_data->attendees[ $attendee->ID() ]['evt_objs'])) {
165
-                $aee['evt_objs'] = $this->_data->attendees[ $attendee->ID() ]['evt_objs'];
166
-                $aee['events'] = $this->_data->attendees[ $attendee->ID() ]['evt_objs'];
167
-            } else {
168
-                $aee['evt_objs'] = $aee['events'] = array();
169
-            }
170
-
171
-            $aee['reg_obj'] = isset($details['reg_obj'])
172
-                ? $details['reg_obj']
173
-                : null;
174
-            $aee['attendees'] = $this->_data->attendees;
175
-
176
-            // merge in the primary attendee data
177
-            $aee = array_merge($this->_default_addressee_data, $aee);
178
-
179
-            // make sure txn is set
180
-            if (empty($aee['txn']) && $aee['reg_obj'] instanceof EE_Registration) {
181
-                $aee['txn'] = $aee['reg_obj']->transaction();
182
-            }
183
-
184
-            $addressee[] = new EE_Messages_Addressee($aee);
185
-        }
186
-        return $addressee;
187
-    }
188
-
189
-    /**
190
-     * Allows a message type to specifically exclude template fields for the provided messenger.
191
-     * Filtered so this can be programmatically altered as well.
192
-     *
193
-     * @param string $messenger_name name of messenger
194
-     * @return array
195
-     */
196
-    public function excludedFieldsForMessenger($messenger_name)
197
-    {
198
-        $excluded_fields = array(
199
-            'email' => array('cc')
200
-        );
201
-        return isset($excluded_fields[ $messenger_name ])
202
-            ? $excluded_fields[ $messenger_name ]
203
-            : parent::excludedFieldsForMessenger($messenger_name);
204
-    }
15
+	public function __construct()
16
+	{
17
+		$this->name = 'newsletter';
18
+		$this->description = esc_html__(
19
+			'Batch message type messages are triggered manually by the admin for sending notifications to a selected group of recipients. This should only be used for more general notification type messages that contain information specific for the recipients. For "newsletter" type messages we recommend using an email list service like MailChimp, because sending non-related mail-outs to contacts increases the risk of your site domain getting added to spam lists, which will prevent messages getting to users.',
20
+			'event_espresso'
21
+		);
22
+		$this->label = array(
23
+			'singular' => esc_html__('batch', 'event_espresso'),
24
+			'plural'   => esc_html__('batches', 'event_espresso'),
25
+		);
26
+		$this->_master_templates = array(
27
+			'email' => 'registration',
28
+		);
29
+
30
+		parent::__construct();
31
+	}
32
+
33
+
34
+	/**
35
+	 * Sets admin_registered_pages property
36
+	 */
37
+	protected function _set_admin_pages()
38
+	{
39
+		$this->admin_registered_pages = array(); // no admin pages to register this with.
40
+	}
41
+
42
+
43
+	/**
44
+	 * Sets property related to data handler.
45
+	 */
46
+	protected function _set_data_handler()
47
+	{
48
+		$this->_data_handler = 'Registrations';
49
+		$this->_single_message = $this->_data instanceof EE_Registration;
50
+	}
51
+
52
+
53
+	/**
54
+	 * Returns the data for the given context for this message type.
55
+	 * @param string          $context
56
+	 * @param EE_Registration $registration
57
+	 * @param int             $id
58
+	 * @return array|mixed
59
+	 */
60
+	protected function _get_data_for_context($context, EE_Registration $registration, $id)
61
+	{
62
+		// newsletter message type data handler is 'Registrations' and it expects an array of EE_Registration objects.
63
+		return array($registration);
64
+	}
65
+
66
+
67
+	/**
68
+	 * Sets the admin settings fields property for this message type.
69
+	 */
70
+	protected function _set_admin_settings_fields()
71
+	{
72
+		$this->_admin_settings_fields = array();
73
+	}
74
+
75
+
76
+	/**
77
+	 * Sets the contexts for this message type.
78
+	 */
79
+	protected function _set_contexts()
80
+	{
81
+		$this->_context_label = array(
82
+			'label'       => esc_html__('recipient', 'event_espresso'),
83
+			'plural'      => esc_html__('recipients', 'event_espresso'),
84
+			'description' => esc_html__('Recipient\'s are who will receive the message.', 'event_espresso'),
85
+		);
86
+
87
+		$this->_contexts = array(
88
+			'attendee' => array(
89
+				'label'       => esc_html__('Registrant', 'event_espresso'),
90
+				'description' => esc_html__('This template goes to selected registrants.', 'event_espresso'),
91
+			),
92
+		);
93
+	}
94
+
95
+
96
+	/**
97
+	 * used to set the valid shortcodes.
98
+	 * For the newsletter message type we only have two valid shortcode libraries in use, recipient details and
99
+	 * organization.  That's it!
100
+	 *
101
+	 * @since   4.3.0
102
+	 * @return  void
103
+	 */
104
+	protected function _set_valid_shortcodes()
105
+	{
106
+		parent::_set_valid_shortcodes();
107
+
108
+		$included_shortcodes = array(
109
+			'recipient_details',
110
+			'organization',
111
+			'newsletter',
112
+		);
113
+
114
+		foreach ($this->_valid_shortcodes as $context => $shortcodes) {
115
+			foreach ($shortcodes as $key => $shortcode) {
116
+				if (! in_array($shortcode, $included_shortcodes, true)) {
117
+					unset($this->_valid_shortcodes[ $context ][ $key ]);
118
+				}
119
+			}
120
+			$this->_valid_shortcodes[ $context ][] = 'newsletter';
121
+		}
122
+	}
123
+
124
+
125
+	/**
126
+	 * Override default _attendee_addressees in EE_message_type because we want to loop through the registrations
127
+	 * for EE_message_type.
128
+	 *
129
+	 * @return array
130
+	 * @throws EE_Error
131
+	 * @throws InvalidArgumentException
132
+	 * @throws ReflectionException
133
+	 * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
134
+	 * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
135
+	 */
136
+	protected function _attendee_addressees()
137
+	{
138
+		$addressee = array();
139
+
140
+		// looping through registrations
141
+		foreach ($this->_data->registrations as $reg_id => $details) {
142
+			// set $attendee array to blank on each loop
143
+			$aee = array();
144
+
145
+			// need to get the attendee from this registration.
146
+			$attendee = isset($details['att_obj']) && $details['att_obj'] instanceof EE_Attendee
147
+				? $details['att_obj']
148
+				: null;
149
+
150
+			if (! $attendee instanceof EE_Attendee) {
151
+				continue;
152
+			}
153
+
154
+			// set $aee from attendee object
155
+			$aee['att_obj'] = $attendee;
156
+			$aee['reg_objs'] = isset($this->_data->attendees[ $attendee->ID() ]['reg_objs'])
157
+				? $this->_data->attendees[ $attendee->ID() ]['reg_objs']
158
+				: array();
159
+			$aee['attendee_email'] = $attendee->email();
160
+			$aee['tkt_objs'] = isset($this->_data->attendees[ $attendee->ID() ]['tkt_objs'])
161
+				? $this->_data->attendees[ $attendee->ID() ]['tkt_objs']
162
+				: array();
163
+
164
+			if (isset($this->_data->attendees[ $attendee->ID() ]['evt_objs'])) {
165
+				$aee['evt_objs'] = $this->_data->attendees[ $attendee->ID() ]['evt_objs'];
166
+				$aee['events'] = $this->_data->attendees[ $attendee->ID() ]['evt_objs'];
167
+			} else {
168
+				$aee['evt_objs'] = $aee['events'] = array();
169
+			}
170
+
171
+			$aee['reg_obj'] = isset($details['reg_obj'])
172
+				? $details['reg_obj']
173
+				: null;
174
+			$aee['attendees'] = $this->_data->attendees;
175
+
176
+			// merge in the primary attendee data
177
+			$aee = array_merge($this->_default_addressee_data, $aee);
178
+
179
+			// make sure txn is set
180
+			if (empty($aee['txn']) && $aee['reg_obj'] instanceof EE_Registration) {
181
+				$aee['txn'] = $aee['reg_obj']->transaction();
182
+			}
183
+
184
+			$addressee[] = new EE_Messages_Addressee($aee);
185
+		}
186
+		return $addressee;
187
+	}
188
+
189
+	/**
190
+	 * Allows a message type to specifically exclude template fields for the provided messenger.
191
+	 * Filtered so this can be programmatically altered as well.
192
+	 *
193
+	 * @param string $messenger_name name of messenger
194
+	 * @return array
195
+	 */
196
+	public function excludedFieldsForMessenger($messenger_name)
197
+	{
198
+		$excluded_fields = array(
199
+			'email' => array('cc')
200
+		);
201
+		return isset($excluded_fields[ $messenger_name ])
202
+			? $excluded_fields[ $messenger_name ]
203
+			: parent::excludedFieldsForMessenger($messenger_name);
204
+	}
205 205
 }
Please login to merge, or discard this patch.
cancelled_registration/EE_Cancelled_Registration_message_type.class.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -67,8 +67,8 @@
 block discarded – undo
67 67
 
68 68
         // remove unwanted transaction shortcode
69 69
         foreach ($this->_valid_shortcodes as $context => $shortcodes) {
70
-            if (($key = array_search('transaction', $shortcodes) ) !== false) {
71
-                unset($this->_valid_shortcodes[ $context ][ $key ]);
70
+            if (($key = array_search('transaction', $shortcodes)) !== false) {
71
+                unset($this->_valid_shortcodes[$context][$key]);
72 72
             }
73 73
         }
74 74
     }
Please login to merge, or discard this patch.
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -15,61 +15,61 @@
 block discarded – undo
15 15
 class EE_Cancelled_Registration_message_type extends EE_Registration_Base_message_type
16 16
 {
17 17
 
18
-    public function __construct()
19
-    {
20
-        $this->name = 'cancelled_registration';
21
-        $this->description = esc_html__('This message type is for messages sent to registrants when their registration is cancelled.', 'event_espresso');
22
-        $this->label = array(
23
-            'singular' => esc_html__('registration cancelled', 'event_espresso'),
24
-            'plural' => esc_html__('registrations cancelled', 'event_espresso')
25
-            );
26
-        $this->_master_templates = array(
27
-            'email' => 'not_approved_registration'
28
-            );
29
-        parent::__construct();
30
-    }
18
+	public function __construct()
19
+	{
20
+		$this->name = 'cancelled_registration';
21
+		$this->description = esc_html__('This message type is for messages sent to registrants when their registration is cancelled.', 'event_espresso');
22
+		$this->label = array(
23
+			'singular' => esc_html__('registration cancelled', 'event_espresso'),
24
+			'plural' => esc_html__('registrations cancelled', 'event_espresso')
25
+			);
26
+		$this->_master_templates = array(
27
+			'email' => 'not_approved_registration'
28
+			);
29
+		parent::__construct();
30
+	}
31 31
 
32 32
 
33 33
 
34 34
 
35
-    /**
36
-     * _set_contexts
37
-     * This sets up the contexts associated with the message_type
38
-     *
39
-     * @access  protected
40
-     * @return  void
41
-     */
42
-    protected function _set_contexts()
43
-    {
44
-        $this->_context_label = array(
45
-            'label' => esc_html__('recipient', 'event_espresso'),
46
-            'plural' => esc_html__('recipients', 'event_espresso'),
47
-            'description' => esc_html__('Recipient\'s are who will receive the template.  You may want different registration details sent out depending on who the recipient is', 'event_espresso')
48
-            );
35
+	/**
36
+	 * _set_contexts
37
+	 * This sets up the contexts associated with the message_type
38
+	 *
39
+	 * @access  protected
40
+	 * @return  void
41
+	 */
42
+	protected function _set_contexts()
43
+	{
44
+		$this->_context_label = array(
45
+			'label' => esc_html__('recipient', 'event_espresso'),
46
+			'plural' => esc_html__('recipients', 'event_espresso'),
47
+			'description' => esc_html__('Recipient\'s are who will receive the template.  You may want different registration details sent out depending on who the recipient is', 'event_espresso')
48
+			);
49 49
 
50
-        $this->_contexts = array(
51
-            'admin' => array(
52
-                'label' => esc_html__('Event Admin', 'event_espresso'),
53
-                'description' => esc_html__('This template is what event administrators will receive with an cancelled registration', 'event_espresso')
54
-                ),
55
-            'attendee' => array(
56
-                'label' => esc_html__('Registrant', 'event_espresso'),
57
-                'description' => esc_html__('This template is what each registrant for the event will receive when their registration is cancelled.', 'event_espresso')
58
-                )
59
-            );
60
-    }
50
+		$this->_contexts = array(
51
+			'admin' => array(
52
+				'label' => esc_html__('Event Admin', 'event_espresso'),
53
+				'description' => esc_html__('This template is what event administrators will receive with an cancelled registration', 'event_espresso')
54
+				),
55
+			'attendee' => array(
56
+				'label' => esc_html__('Registrant', 'event_espresso'),
57
+				'description' => esc_html__('This template is what each registrant for the event will receive when their registration is cancelled.', 'event_espresso')
58
+				)
59
+			);
60
+	}
61 61
 
62 62
 
63 63
 
64
-    protected function _set_valid_shortcodes()
65
-    {
66
-        parent::_set_valid_shortcodes();
64
+	protected function _set_valid_shortcodes()
65
+	{
66
+		parent::_set_valid_shortcodes();
67 67
 
68
-        // remove unwanted transaction shortcode
69
-        foreach ($this->_valid_shortcodes as $context => $shortcodes) {
70
-            if (($key = array_search('transaction', $shortcodes) ) !== false) {
71
-                unset($this->_valid_shortcodes[ $context ][ $key ]);
72
-            }
73
-        }
74
-    }
68
+		// remove unwanted transaction shortcode
69
+		foreach ($this->_valid_shortcodes as $context => $shortcodes) {
70
+			if (($key = array_search('transaction', $shortcodes) ) !== false) {
71
+				unset($this->_valid_shortcodes[ $context ][ $key ]);
72
+			}
73
+		}
74
+	}
75 75
 }
Please login to merge, or discard this patch.
caffeinated/core/libraries/shortcodes/EE_Question_Shortcodes.lib.php 2 patches
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -49,15 +49,15 @@  discard block
 block discarded – undo
49 49
     protected function _parser($shortcode)
50 50
     {
51 51
 
52
-        if (! $this->_data instanceof EE_Answer || ! isset($this->_extra_data['data']) || ! $this->_extra_data['data'] instanceof EE_Messages_Addressee) {
52
+        if ( ! $this->_data instanceof EE_Answer || ! isset($this->_extra_data['data']) || ! $this->_extra_data['data'] instanceof EE_Messages_Addressee) {
53 53
             return '';
54 54
         }
55 55
 
56 56
         switch ($shortcode) {
57 57
             case '[QUESTION]':
58
-                $question = isset($this->_extra_data['data']->questions[ $this->_data->ID() ])
59
-                    ? $this->_extra_data['data']->questions[ $this->_data->ID() ] : $this->_data->question();
60
-                if (! $question instanceof EE_Question) {
58
+                $question = isset($this->_extra_data['data']->questions[$this->_data->ID()])
59
+                    ? $this->_extra_data['data']->questions[$this->_data->ID()] : $this->_data->question();
60
+                if ( ! $question instanceof EE_Question) {
61 61
                     return ''; // get out because we can't figure out what the question is.
62 62
                 }
63 63
 
@@ -66,9 +66,9 @@  discard block
 block discarded – undo
66 66
 
67 67
             case '[ANSWER]':
68 68
                 // need to get the question to determine the type of question (some questions require translation of the answer).
69
-                $question = isset($this->_extra_data['data']->questions[ $this->_data->ID() ])
70
-                    ? $this->_extra_data['data']->questions[ $this->_data->ID() ] : $this->_data->question();
71
-                if (! $question instanceof EE_Question) {
69
+                $question = isset($this->_extra_data['data']->questions[$this->_data->ID()])
70
+                    ? $this->_extra_data['data']->questions[$this->_data->ID()] : $this->_data->question();
71
+                if ( ! $question instanceof EE_Question) {
72 72
                     return ''; // get out cause we can't figure out what the question type is!
73 73
                 }
74 74
 
Please login to merge, or discard this patch.
Indentation   +70 added lines, -70 removed lines patch added patch discarded remove patch
@@ -17,85 +17,85 @@
 block discarded – undo
17 17
  */
18 18
 class EE_Question_Shortcodes extends EE_Shortcodes
19 19
 {
20
-    /**
21
-     * _init_props
22
-     *
23
-     * @access protected
24
-     * @return void
25
-     */
26
-    protected function _init_props()
27
-    {
28
-        $this->label = esc_html__('Attendee Shortcodes', 'event_espresso');
29
-        $this->description = esc_html__('All shortcodes specific to attendee related data', 'event_espresso');
30
-        $this->_shortcodes = array(
31
-            '[QUESTION]' => esc_html__('Will parse to a question.', 'event_espresso'),
32
-            '[ANSWER]'   => esc_html__('Will parse to the answer for a question', 'event_espresso'),
33
-        );
34
-    }
20
+	/**
21
+	 * _init_props
22
+	 *
23
+	 * @access protected
24
+	 * @return void
25
+	 */
26
+	protected function _init_props()
27
+	{
28
+		$this->label = esc_html__('Attendee Shortcodes', 'event_espresso');
29
+		$this->description = esc_html__('All shortcodes specific to attendee related data', 'event_espresso');
30
+		$this->_shortcodes = array(
31
+			'[QUESTION]' => esc_html__('Will parse to a question.', 'event_espresso'),
32
+			'[ANSWER]'   => esc_html__('Will parse to the answer for a question', 'event_espresso'),
33
+		);
34
+	}
35 35
 
36 36
 
37
-    /**
38
-     * This method will give parsing instructions for each shortcode defined in the _shortcodes array.  Child methods
39
-     * will have to take care of handling.
40
-     *
41
-     * @access protected
42
-     *
43
-     * @param string $shortcode the shortcode to be parsed.
44
-     *
45
-     * @return string parsed shortcode
46
-     */
47
-    protected function _parser($shortcode)
48
-    {
37
+	/**
38
+	 * This method will give parsing instructions for each shortcode defined in the _shortcodes array.  Child methods
39
+	 * will have to take care of handling.
40
+	 *
41
+	 * @access protected
42
+	 *
43
+	 * @param string $shortcode the shortcode to be parsed.
44
+	 *
45
+	 * @return string parsed shortcode
46
+	 */
47
+	protected function _parser($shortcode)
48
+	{
49 49
 
50
-        if (! $this->_data instanceof EE_Answer || ! isset($this->_extra_data['data']) || ! $this->_extra_data['data'] instanceof EE_Messages_Addressee) {
51
-            return '';
52
-        }
50
+		if (! $this->_data instanceof EE_Answer || ! isset($this->_extra_data['data']) || ! $this->_extra_data['data'] instanceof EE_Messages_Addressee) {
51
+			return '';
52
+		}
53 53
 
54
-        switch ($shortcode) {
55
-            case '[QUESTION]':
56
-                $question = isset($this->_extra_data['data']->questions[ $this->_data->ID() ])
57
-                    ? $this->_extra_data['data']->questions[ $this->_data->ID() ] : $this->_data->question();
58
-                if (! $question instanceof EE_Question) {
59
-                    return ''; // get out because we can't figure out what the question is.
60
-                }
54
+		switch ($shortcode) {
55
+			case '[QUESTION]':
56
+				$question = isset($this->_extra_data['data']->questions[ $this->_data->ID() ])
57
+					? $this->_extra_data['data']->questions[ $this->_data->ID() ] : $this->_data->question();
58
+				if (! $question instanceof EE_Question) {
59
+					return ''; // get out because we can't figure out what the question is.
60
+				}
61 61
 
62
-                return $question->get('QST_display_text');
63
-                break;
62
+				return $question->get('QST_display_text');
63
+				break;
64 64
 
65
-            case '[ANSWER]':
66
-                // need to get the question to determine the type of question (some questions require translation of the answer).
67
-                $question = isset($this->_extra_data['data']->questions[ $this->_data->ID() ])
68
-                    ? $this->_extra_data['data']->questions[ $this->_data->ID() ] : $this->_data->question();
69
-                if (! $question instanceof EE_Question) {
70
-                    return ''; // get out cause we can't figure out what the question type is!
71
-                }
65
+			case '[ANSWER]':
66
+				// need to get the question to determine the type of question (some questions require translation of the answer).
67
+				$question = isset($this->_extra_data['data']->questions[ $this->_data->ID() ])
68
+					? $this->_extra_data['data']->questions[ $this->_data->ID() ] : $this->_data->question();
69
+				if (! $question instanceof EE_Question) {
70
+					return ''; // get out cause we can't figure out what the question type is!
71
+				}
72 72
 
73
-                // what we show for the answer depends on the question type!
74
-                switch ($question->get('QST_type')) {
75
-                    case 'STATE':
76
-                        $state = EEM_State::instance()->get_one_by_ID($this->_data->get('ANS_value'));
77
-                        $answer = $state instanceof EE_State ? $state->name() : '';
78
-                        break;
73
+				// what we show for the answer depends on the question type!
74
+				switch ($question->get('QST_type')) {
75
+					case 'STATE':
76
+						$state = EEM_State::instance()->get_one_by_ID($this->_data->get('ANS_value'));
77
+						$answer = $state instanceof EE_State ? $state->name() : '';
78
+						break;
79 79
 
80
-                    case 'COUNTRY':
81
-                        $country = EEM_Country::instance()->get_one_by_ID($this->_data->get('ANS_value'));
82
-                        $answer = $country instanceof EE_Country ? $country->name() : '';
83
-                        break;
80
+					case 'COUNTRY':
81
+						$country = EEM_Country::instance()->get_one_by_ID($this->_data->get('ANS_value'));
82
+						$answer = $country instanceof EE_Country ? $country->name() : '';
83
+						break;
84 84
 
85
-                    default:
86
-                        $answer = $this->_data->get_pretty('ANS_value', 'no_wpautop');
87
-                        break;
88
-                }
85
+					default:
86
+						$answer = $this->_data->get_pretty('ANS_value', 'no_wpautop');
87
+						break;
88
+				}
89 89
 
90
-                return apply_filters(
91
-                    'FHEE__EE_Question_Shortcodes___parser__answer',
92
-                    $answer,
93
-                    $question,
94
-                    $this->_data
95
-                );
96
-                break;
97
-        }
90
+				return apply_filters(
91
+					'FHEE__EE_Question_Shortcodes___parser__answer',
92
+					$answer,
93
+					$question,
94
+					$this->_data
95
+				);
96
+				break;
97
+		}
98 98
 
99
-        return '';
100
-    }
99
+		return '';
100
+	}
101 101
 }
Please login to merge, or discard this patch.
caffeinated/modules/recaptcha/templates/recaptcha.template.php 2 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
1 1
 <?php
2 2
 if (! defined('EVENT_ESPRESSO_VERSION')) {
3
-    exit('No direct script access allowed');
3
+	exit('No direct script access allowed');
4 4
 }
5 5
 /** @type string $recaptcha_language */
6 6
 /** @type string $recaptcha_publickey */
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@
 block discarded – undo
1 1
 <?php
2
-if (! defined('EVENT_ESPRESSO_VERSION')) {
2
+if ( ! defined('EVENT_ESPRESSO_VERSION')) {
3 3
     exit('No direct script access allowed');
4 4
 }
5 5
 /** @type string $recaptcha_language */
Please login to merge, or discard this patch.
caffeinated/payment_methods/Paypal_Pro/EEG_Paypal_Pro.gateway.php 2 patches
Spacing   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -77,13 +77,13 @@  discard block
 block discarded – undo
77 77
     public function do_direct_payment($payment, $billing_info = null)
78 78
     {
79 79
         $transaction = $payment->transaction();
80
-        if (! $transaction instanceof EEI_Transaction) {
80
+        if ( ! $transaction instanceof EEI_Transaction) {
81 81
             throw new EE_Error(
82 82
                 esc_html__('No transaction for payment while paying with PayPal Pro.', 'event_espresso')
83 83
             );
84 84
         }
85 85
         $primary_registrant = $transaction->primary_registration();
86
-        if (! $primary_registrant instanceof EEI_Registration) {
86
+        if ( ! $primary_registrant instanceof EEI_Registration) {
87 87
             throw new EE_Error(
88 88
                 esc_html__(
89 89
                     'No primary registration on transaction while paying with PayPal Pro.',
@@ -92,7 +92,7 @@  discard block
 block discarded – undo
92 92
             );
93 93
         }
94 94
         $attendee = $primary_registrant->attendee();
95
-        if (! $attendee instanceof EEI_Attendee) {
95
+        if ( ! $attendee instanceof EEI_Attendee) {
96 96
             throw new EE_Error(
97 97
                 esc_html__(
98 98
                     'No attendee on primary registration while paying with PayPal Pro.',
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
             // Required.  Credit card number.  No spaces or punctuation.
190 190
             'acct'           => $billing_info['credit_card'],
191 191
             // Required.  Credit card expiration date.  Format is MMYYYY
192
-            'expdate'        => $billing_info['exp_month'] . $billing_info['exp_year'],
192
+            'expdate'        => $billing_info['exp_month'].$billing_info['exp_year'],
193 193
             // Requirements determined by your PayPal account settings.  Security digits for credit card.
194 194
             'cvv2'           => $billing_info['cvv'],
195 195
         );
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
         $ShippingAddress = array(
242 242
             'shiptoname'     => substr($use_registration_address_info
243 243
                 ? $attendee->full_name()
244
-                : $billing_info['first_name'] . ' ' . $billing_info['last_name'], 0, 32),
244
+                : $billing_info['first_name'].' '.$billing_info['last_name'], 0, 32),
245 245
             'shiptostreet'   => substr($use_registration_address_info
246 246
                 ? $attendee->address()
247 247
                 : $billing_info['address'], 0, 100),
@@ -270,7 +270,7 @@  discard block
 block discarded – undo
270 270
             'currencycode' => $payment->currency_code(),
271 271
             // Required if you include itemized cart details. (L_AMTn, etc.)
272 272
             // Subtotal of items not including S&H, or tax.
273
-            'itemamt'      => $gateway_formatter->formatCurrency($item_amount),//
273
+            'itemamt'      => $gateway_formatter->formatCurrency($item_amount), //
274 274
             // Total shipping costs for the order.  If you specify shippingamt, you must also specify itemamt.
275 275
             'shippingamt'  => '',
276 276
             // Total handling costs for the order.  If you specify handlingamt, you must also specify itemamt.
@@ -283,10 +283,10 @@  discard block
 block discarded – undo
283 283
             // Free-form field for your own use.  256 char max.
284 284
             'custom'       => $primary_registrant ? $primary_registrant->ID() : '',
285 285
             // Your own invoice or tracking number
286
-            'invnum'       => wp_generate_password(12, false),// $transaction->ID(),
286
+            'invnum'       => wp_generate_password(12, false), // $transaction->ID(),
287 287
             // URL for receiving Instant Payment Notifications.  This overrides what your profile is set to use.
288 288
             'notifyurl'    => '',
289
-            'buttonsource' => 'EventEspresso_SP',// EE will blow up if you change this
289
+            'buttonsource' => 'EventEspresso_SP', // EE will blow up if you change this
290 290
         );
291 291
         // Wrap all data arrays into a single, "master" array which will be passed into the class function.
292 292
         $PayPalRequestData = array(
@@ -396,52 +396,52 @@  discard block
 block discarded – undo
396 396
         // DP Fields
397 397
         $DPFields = isset($DataArray['DPFields']) ? $DataArray['DPFields'] : array();
398 398
         foreach ($DPFields as $DPFieldsVar => $DPFieldsVal) {
399
-            $DPFieldsNVP .= '&' . strtoupper($DPFieldsVar) . '=' . urlencode($DPFieldsVal);
399
+            $DPFieldsNVP .= '&'.strtoupper($DPFieldsVar).'='.urlencode($DPFieldsVal);
400 400
         }
401 401
         // CC Details Fields
402 402
         $CCDetails = isset($DataArray['CCDetails']) ? $DataArray['CCDetails'] : array();
403 403
         foreach ($CCDetails as $CCDetailsVar => $CCDetailsVal) {
404
-            $CCDetailsNVP .= '&' . strtoupper($CCDetailsVar) . '=' . urlencode($CCDetailsVal);
404
+            $CCDetailsNVP .= '&'.strtoupper($CCDetailsVar).'='.urlencode($CCDetailsVal);
405 405
         }
406 406
         // PayerInfo Type Fields
407 407
         $PayerInfo = isset($DataArray['PayerInfo']) ? $DataArray['PayerInfo'] : array();
408 408
         foreach ($PayerInfo as $PayerInfoVar => $PayerInfoVal) {
409
-            $PayerInfoNVP .= '&' . strtoupper($PayerInfoVar) . '=' . urlencode($PayerInfoVal);
409
+            $PayerInfoNVP .= '&'.strtoupper($PayerInfoVar).'='.urlencode($PayerInfoVal);
410 410
         }
411 411
         // Payer Name Fields
412 412
         $PayerName = isset($DataArray['PayerName']) ? $DataArray['PayerName'] : array();
413 413
         foreach ($PayerName as $PayerNameVar => $PayerNameVal) {
414
-            $PayerNameNVP .= '&' . strtoupper($PayerNameVar) . '=' . urlencode($PayerNameVal);
414
+            $PayerNameNVP .= '&'.strtoupper($PayerNameVar).'='.urlencode($PayerNameVal);
415 415
         }
416 416
         // Address Fields (Billing)
417 417
         $BillingAddress = isset($DataArray['BillingAddress']) ? $DataArray['BillingAddress'] : array();
418 418
         foreach ($BillingAddress as $BillingAddressVar => $BillingAddressVal) {
419
-            $BillingAddressNVP .= '&' . strtoupper($BillingAddressVar) . '=' . urlencode($BillingAddressVal);
419
+            $BillingAddressNVP .= '&'.strtoupper($BillingAddressVar).'='.urlencode($BillingAddressVal);
420 420
         }
421 421
         // Payment Details Type Fields
422 422
         $PaymentDetails = isset($DataArray['PaymentDetails']) ? $DataArray['PaymentDetails'] : array();
423 423
         foreach ($PaymentDetails as $PaymentDetailsVar => $PaymentDetailsVal) {
424
-            $PaymentDetailsNVP .= '&' . strtoupper($PaymentDetailsVar) . '=' . urlencode($PaymentDetailsVal);
424
+            $PaymentDetailsNVP .= '&'.strtoupper($PaymentDetailsVar).'='.urlencode($PaymentDetailsVal);
425 425
         }
426 426
         // Payment Details Item Type Fields
427 427
         $OrderItems = isset($DataArray['OrderItems']) ? $DataArray['OrderItems'] : array();
428 428
         $n = 0;
429 429
         foreach ($OrderItems as $OrderItemsVar => $OrderItemsVal) {
430
-            $CurrentItem = $OrderItems[ $OrderItemsVar ];
430
+            $CurrentItem = $OrderItems[$OrderItemsVar];
431 431
             foreach ($CurrentItem as $CurrentItemVar => $CurrentItemVal) {
432
-                $OrderItemsNVP .= '&' . strtoupper($CurrentItemVar) . $n . '=' . urlencode($CurrentItemVal);
432
+                $OrderItemsNVP .= '&'.strtoupper($CurrentItemVar).$n.'='.urlencode($CurrentItemVal);
433 433
             }
434 434
             $n++;
435 435
         }
436 436
         // Ship To Address Fields
437 437
         $ShippingAddress = isset($DataArray['ShippingAddress']) ? $DataArray['ShippingAddress'] : array();
438 438
         foreach ($ShippingAddress as $ShippingAddressVar => $ShippingAddressVal) {
439
-            $ShippingAddressNVP .= '&' . strtoupper($ShippingAddressVar) . '=' . urlencode($ShippingAddressVal);
439
+            $ShippingAddressNVP .= '&'.strtoupper($ShippingAddressVar).'='.urlencode($ShippingAddressVal);
440 440
         }
441 441
         // 3D Secure Fields
442 442
         $Secure3D = isset($DataArray['Secure3D']) ? $DataArray['Secure3D'] : array();
443 443
         foreach ($Secure3D as $Secure3DVar => $Secure3DVal) {
444
-            $Secure3DNVP .= '&' . strtoupper($Secure3DVar) . '=' . urlencode($Secure3DVal);
444
+            $Secure3DNVP .= '&'.strtoupper($Secure3DVar).'='.urlencode($Secure3DVal);
445 445
         }
446 446
         // Now that we have each chunk we need to go ahead and append them all together for our entire NVP string
447 447
         $NVPRequest = 'USER='
@@ -512,7 +512,7 @@  discard block
 block discarded – undo
512 512
             $valuepos = strpos($NVPString, '&') ? strpos($NVPString, '&') : strlen($NVPString);
513 513
             $valval = substr($NVPString, $keypos + 1, $valuepos - $keypos - 1);
514 514
             // decoding the response
515
-            $proArray[ $keyval ] = urldecode($valval);
515
+            $proArray[$keyval] = urldecode($valval);
516 516
             $NVPString = substr($NVPString, $valuepos + 1, strlen($NVPString));
517 517
         }
518 518
         return $proArray;
@@ -545,16 +545,16 @@  discard block
 block discarded – undo
545 545
     {
546 546
         $Errors = array();
547 547
         $n = 0;
548
-        while (isset($DataArray[ 'L_ERRORCODE' . $n . '' ])) {
549
-            $LErrorCode = isset($DataArray[ 'L_ERRORCODE' . $n . '' ]) ? $DataArray[ 'L_ERRORCODE' . $n . '' ] : '';
550
-            $LShortMessage = isset($DataArray[ 'L_SHORTMESSAGE' . $n . '' ])
551
-                ? $DataArray[ 'L_SHORTMESSAGE' . $n . '' ]
548
+        while (isset($DataArray['L_ERRORCODE'.$n.''])) {
549
+            $LErrorCode = isset($DataArray['L_ERRORCODE'.$n.'']) ? $DataArray['L_ERRORCODE'.$n.''] : '';
550
+            $LShortMessage = isset($DataArray['L_SHORTMESSAGE'.$n.''])
551
+                ? $DataArray['L_SHORTMESSAGE'.$n.'']
552 552
                 : '';
553
-            $LLongMessage = isset($DataArray[ 'L_LONGMESSAGE' . $n . '' ])
554
-                ? $DataArray[ 'L_LONGMESSAGE' . $n . '' ]
553
+            $LLongMessage = isset($DataArray['L_LONGMESSAGE'.$n.''])
554
+                ? $DataArray['L_LONGMESSAGE'.$n.'']
555 555
                 : '';
556
-            $LSeverityCode = isset($DataArray[ 'L_SEVERITYCODE' . $n . '' ])
557
-                ? $DataArray[ 'L_SEVERITYCODE' . $n . '' ]
556
+            $LSeverityCode = isset($DataArray['L_SEVERITYCODE'.$n.''])
557
+                ? $DataArray['L_SEVERITYCODE'.$n.'']
558 558
                 : '';
559 559
             $CurrentItem = array(
560 560
                 'L_ERRORCODE'    => $LErrorCode,
@@ -581,7 +581,7 @@  discard block
 block discarded – undo
581 581
     {
582 582
         $error = '';
583 583
         foreach ($Errors as $ErrorVar => $ErrorVal) {
584
-            $CurrentError = $Errors[ $ErrorVar ];
584
+            $CurrentError = $Errors[$ErrorVar];
585 585
             foreach ($CurrentError as $CurrentErrorVar => $CurrentErrorVal) {
586 586
                 $CurrentVarName = '';
587 587
                 if ($CurrentErrorVar == 'L_ERRORCODE') {
@@ -593,7 +593,7 @@  discard block
 block discarded – undo
593 593
                 } elseif ($CurrentErrorVar == 'L_SEVERITYCODE') {
594 594
                     $CurrentVarName = 'Severity Code';
595 595
                 }
596
-                $error .= '<br />' . $CurrentVarName . ': ' . $CurrentErrorVal;
596
+                $error .= '<br />'.$CurrentVarName.': '.$CurrentErrorVal;
597 597
             }
598 598
         }
599 599
         return $error;
Please login to merge, or discard this patch.
Indentation   +606 added lines, -606 removed lines patch added patch discarded remove patch
@@ -13,610 +13,610 @@
 block discarded – undo
13 13
  */
14 14
 class EEG_Paypal_Pro extends EE_Onsite_Gateway
15 15
 {
16
-    /**
17
-     * @var $_paypal_api_username string
18
-     */
19
-    protected $_api_username = null;
20
-
21
-    /**
22
-     * @var $_api_password string
23
-     */
24
-    protected $_api_password = null;
25
-
26
-    /**
27
-     * @var $_api_signature string
28
-     */
29
-    protected $_api_signature = null;
30
-
31
-    /**
32
-     * @var $_credit_card_types array with the keys for credit card types accepted on this account
33
-     */
34
-    protected $_credit_card_types    = null;
35
-
36
-    protected $_currencies_supported = array(
37
-        'USD',
38
-        'GBP',
39
-        'CAD',
40
-        'AUD',
41
-        'BRL',
42
-        'CHF',
43
-        'CZK',
44
-        'DKK',
45
-        'EUR',
46
-        'HKD',
47
-        'HUF',
48
-        'ILS',
49
-        'JPY',
50
-        'MXN',
51
-        'MYR',
52
-        'NOK',
53
-        'NZD',
54
-        'PHP',
55
-        'PLN',
56
-        'SEK',
57
-        'SGD',
58
-        'THB',
59
-        'TRY',
60
-        'TWD',
61
-        'RUB',
62
-        'INR',
63
-    );
64
-
65
-
66
-
67
-    /**
68
-     * @param EEI_Payment $payment
69
-     * @param array       $billing_info {
70
-     * @type string $credit_card
71
-     * @type string $credit_card_type
72
-     * @type string $exp_month always 2 characters
73
-     * @type string $exp_year always 4 characters
74
-     * @type string $cvv
75
-     * }
76
-     * @see      parent::do_direct_payment for more info
77
-     * @return EE_Payment|EEI_Payment
78
-     * @throws EE_Error
79
-     */
80
-    public function do_direct_payment($payment, $billing_info = null)
81
-    {
82
-        $transaction = $payment->transaction();
83
-        if (! $transaction instanceof EEI_Transaction) {
84
-            throw new EE_Error(
85
-                esc_html__('No transaction for payment while paying with PayPal Pro.', 'event_espresso')
86
-            );
87
-        }
88
-        $primary_registrant = $transaction->primary_registration();
89
-        if (! $primary_registrant instanceof EEI_Registration) {
90
-            throw new EE_Error(
91
-                esc_html__(
92
-                    'No primary registration on transaction while paying with PayPal Pro.',
93
-                    'event_espresso'
94
-                )
95
-            );
96
-        }
97
-        $attendee = $primary_registrant->attendee();
98
-        if (! $attendee instanceof EEI_Attendee) {
99
-            throw new EE_Error(
100
-                esc_html__(
101
-                    'No attendee on primary registration while paying with PayPal Pro.',
102
-                    'event_espresso'
103
-                )
104
-            );
105
-        }
106
-        $gateway_formatter = $this->_get_gateway_formatter();
107
-        $order_description = substr($gateway_formatter->formatOrderDescription($payment), 0, 127);
108
-        // charge for the full amount. Show itemized list
109
-        if ($this->_money->compare_floats($payment->amount(), $transaction->total(), '==')) {
110
-            $item_num = 1;
111
-            $total_line_item = $transaction->total_line_item();
112
-            $order_items = array();
113
-            foreach ($total_line_item->get_items() as $line_item) {
114
-                // ignore line items with a quantity of 0
115
-                if ($line_item->quantity() == 0) {
116
-                    continue;
117
-                }
118
-                // For percent items, whose unit_price is 0, use the total instead.
119
-                if ($line_item->is_percent()) {
120
-                    $unit_price = $line_item->total();
121
-                    $line_item_quantity = 1;
122
-                } else {
123
-                    $unit_price = $line_item->unit_price();
124
-                    $line_item_quantity = $line_item->quantity();
125
-                }
126
-                $item = array(
127
-                    // Item Name.  127 char max.
128
-                    'l_name'                 => substr(
129
-                        $gateway_formatter->formatLineItemName($line_item, $payment),
130
-                        0,
131
-                        127
132
-                    ),
133
-                    // Item description.  127 char max.
134
-                    'l_desc'                 => substr(
135
-                        $gateway_formatter->formatLineItemDesc($line_item, $payment),
136
-                        0,
137
-                        127
138
-                    ),
139
-                    // Cost of individual item.
140
-                    'l_amt'                  => $unit_price,
141
-                    // Item Number.  127 char max.
142
-                    'l_number'               => $item_num++,
143
-                    // Item quantity.  Must be any positive integer.
144
-                    'l_qty'                  => $line_item_quantity,
145
-                    // Item's sales tax amount.
146
-                    'l_taxamt'               => '',
147
-                    // eBay auction number of item.
148
-                    'l_ebayitemnumber'       => '',
149
-                    // eBay transaction ID of purchased item.
150
-                    'l_ebayitemauctiontxnid' => '',
151
-                    // eBay order ID for the item.
152
-                    'l_ebayitemorderid'      => '',
153
-                );
154
-                // add to array of all items
155
-                array_push($order_items, $item);
156
-            }
157
-            $item_amount = $total_line_item->get_items_total();
158
-            $tax_amount = $total_line_item->get_total_tax();
159
-        } else {
160
-            $order_items = array();
161
-            $item_amount = $payment->amount();
162
-            $tax_amount = 0;
163
-            array_push($order_items, array(
164
-                // Item Name.  127 char max.
165
-                'l_name'   => substr(
166
-                    $gateway_formatter->formatPartialPaymentLineItemName($payment),
167
-                    0,
168
-                    127
169
-                ),
170
-                // Item description.  127 char max.
171
-                'l_desc'   => substr(
172
-                    $gateway_formatter->formatPartialPaymentLineItemDesc($payment),
173
-                    0,
174
-                    127
175
-                ),
176
-                // Cost of individual item.
177
-                'l_amt'    => $payment->amount(),
178
-                // Item Number.  127 char max.
179
-                'l_number' => 1,
180
-                // Item quantity.  Must be any positive integer.
181
-                'l_qty'    => 1,
182
-            ));
183
-        }
184
-
185
-
186
-        /** @var RequestInterface $request */
187
-        $request = LoaderFactory::getLoader()->getShared(RequestInterface::class);
188
-        // Populate data arrays with order data.
189
-        $DPFields = array(
190
-            // How you want to obtain payment ?
191
-            // Authorization indicates the payment is a basic auth subject to settlement with Auth & Capture.
192
-            // Sale indicates that this is a final sale for which you are requesting payment.  Default is Sale.
193
-            'paymentaction'    => 'Sale',
194
-            // Required.  IP address of the payer's browser.
195
-            'ipaddress'        => $request->ipAddress(),
196
-            // Flag to determine whether you want the results returned by FMF.  1 or 0.  Default is 0.
197
-            'returnfmfdetails' => '1',
198
-        );
199
-        $CCDetails = array(
200
-            // Required. Type of credit card.  Visa, MasterCard, Discover, Amex, Maestro, Solo.
201
-            // If Maestro or Solo, the currency code must be GBP.
202
-            //  In addition, either start date or issue number must be specified.
203
-            'creditcardtype' => $billing_info['credit_card_type'],
204
-            // Required.  Credit card number.  No spaces or punctuation.
205
-            'acct'           => $billing_info['credit_card'],
206
-            // Required.  Credit card expiration date.  Format is MMYYYY
207
-            'expdate'        => $billing_info['exp_month'] . $billing_info['exp_year'],
208
-            // Requirements determined by your PayPal account settings.  Security digits for credit card.
209
-            'cvv2'           => $billing_info['cvv'],
210
-        );
211
-        $PayerInfo = array(
212
-            // Email address of payer.
213
-            'email'       => $billing_info['email'],
214
-            // Unique PayPal customer ID for payer.
215
-            'payerid'     => '',
216
-            // Status of payer.  Values are verified or unverified
217
-            'payerstatus' => '',
218
-            // Payer's business name.
219
-            'business'    => '',
220
-        );
221
-        $PayerName = array(
222
-            // Payer's salutation.  20 char max.
223
-            'salutation' => '',
224
-            // Payer's first name.  25 char max.
225
-            'firstname'  => substr($billing_info['first_name'], 0, 25),
226
-            // Payer's middle name.  25 char max.
227
-            'middlename' => '',
228
-            // Payer's last name.  25 char max.
229
-            'lastname'   => substr($billing_info['last_name'], 0, 25),
230
-            // Payer's suffix.  12 char max.
231
-            'suffix'     => '',
232
-        );
233
-        $BillingAddress = array(
234
-            // Required.  First street address.
235
-            'street'      => $billing_info['address'],
236
-            // Second street address.
237
-            'street2'     => $billing_info['address2'],
238
-            // Required.  Name of City.
239
-            'city'        => $billing_info['city'],
240
-            // Required. Name of State or Province.
241
-            'state'       => substr($billing_info['state'], 0, 40),
242
-            // Required.  Country code.
243
-            'countrycode' => $billing_info['country'],
244
-            // Required.  Postal code of payer.
245
-            'zip'         => $billing_info['zip'],
246
-        );
247
-        // check if the registration info contains the needed fields for paypal pro
248
-        // (see https://developer.paypal.com/docs/classic/api/merchant/DoDirectPayment_API_Operation_NVP/)
249
-        if ($attendee->address() && $attendee->city() && $attendee->country_ID()) {
250
-            $use_registration_address_info = true;
251
-        } else {
252
-            $use_registration_address_info = false;
253
-        }
254
-        // so if the attendee has enough data to fill out PayPal Pro's shipping info, use it.
255
-        // If not, use the billing info again
256
-        $ShippingAddress = array(
257
-            'shiptoname'     => substr($use_registration_address_info
258
-                ? $attendee->full_name()
259
-                : $billing_info['first_name'] . ' ' . $billing_info['last_name'], 0, 32),
260
-            'shiptostreet'   => substr($use_registration_address_info
261
-                ? $attendee->address()
262
-                : $billing_info['address'], 0, 100),
263
-            'shiptostreet2'  => substr($use_registration_address_info
264
-                ? $attendee->address2() : $billing_info['address2'], 0, 100),
265
-            'shiptocity'     => substr($use_registration_address_info
266
-                ? $attendee->city()
267
-                : $billing_info['city'], 0, 40),
268
-            'shiptostate'          => substr($use_registration_address_info
269
-                ? $attendee->state_name()
270
-                : $billing_info['state'], 0, 40),
271
-            'shiptocountry'  => $use_registration_address_info
272
-                ? $attendee->country_ID()
273
-                : $billing_info['country'],
274
-            'shiptozip'      => substr($use_registration_address_info
275
-                ? $attendee->zip()
276
-                : $billing_info['zip'], 0, 20),
277
-            'shiptophonenum' => substr($use_registration_address_info
278
-                ? $attendee->phone()
279
-                : $billing_info['phone'], 0, 20),
280
-        );
281
-        $PaymentDetails = array(
282
-            // Required.  Total amount of order, including shipping, handling, and tax.
283
-            'amt'          => $gateway_formatter->formatCurrency($payment->amount()),
284
-            // Required.  Three-letter currency code.  Default is USD.
285
-            'currencycode' => $payment->currency_code(),
286
-            // Required if you include itemized cart details. (L_AMTn, etc.)
287
-            // Subtotal of items not including S&H, or tax.
288
-            'itemamt'      => $gateway_formatter->formatCurrency($item_amount),//
289
-            // Total shipping costs for the order.  If you specify shippingamt, you must also specify itemamt.
290
-            'shippingamt'  => '',
291
-            // Total handling costs for the order.  If you specify handlingamt, you must also specify itemamt.
292
-            'handlingamt'  => '',
293
-            // Required if you specify itemized cart tax details.
294
-            // Sum of tax for all items on the order.  Total sales tax.
295
-            'taxamt'       => $gateway_formatter->formatCurrency($tax_amount),
296
-            // Description of the order the customer is purchasing.  127 char max.
297
-            'desc'         => $order_description,
298
-            // Free-form field for your own use.  256 char max.
299
-            'custom'       => $primary_registrant ? $primary_registrant->ID() : '',
300
-            // Your own invoice or tracking number
301
-            'invnum'       => wp_generate_password(12, false),// $transaction->ID(),
302
-            // URL for receiving Instant Payment Notifications.  This overrides what your profile is set to use.
303
-            'notifyurl'    => '',
304
-            'buttonsource' => 'EventEspresso_SP',// EE will blow up if you change this
305
-        );
306
-        // Wrap all data arrays into a single, "master" array which will be passed into the class function.
307
-        $PayPalRequestData = array(
308
-            'DPFields'        => $DPFields,
309
-            'CCDetails'       => $CCDetails,
310
-            'PayerInfo'       => $PayerInfo,
311
-            'PayerName'       => $PayerName,
312
-            'BillingAddress'  => $BillingAddress,
313
-            'ShippingAddress' => $ShippingAddress,
314
-            'PaymentDetails'  => $PaymentDetails,
315
-            'OrderItems'      => $order_items,
316
-        );
317
-        $this->_log_clean_request($PayPalRequestData, $payment);
318
-        try {
319
-            $PayPalResult = $this->prep_and_curl_request($PayPalRequestData);
320
-            // remove PCI-sensitive data so it doesn't get stored
321
-            $PayPalResult = $this->_log_clean_response($PayPalResult, $payment);
322
-            if (isset($PayPalResult['L_ERRORCODE0']) && $PayPalResult['L_ERRORCODE0'] === '10002') {
323
-                $message = esc_html__('PayPal did not accept your API username, password, or signature. Please double-check these credentials and if debug mode is on.', 'event_espresso');
324
-            } elseif (isset($PayPalResult['L_LONGMESSAGE0'])) {
325
-                $message = $PayPalResult['L_LONGMESSAGE0'];
326
-            } else {
327
-                $message = $PayPalResult['ACK'];
328
-            }
329
-            if (empty($PayPalResult['RAWRESPONSE'])) {
330
-                $payment->set_status($this->_pay_model->failed_status());
331
-                $payment->set_gateway_response(esc_html__('No response received from Paypal Pro', 'event_espresso'));
332
-                $payment->set_details($PayPalResult);
333
-            } else {
334
-                if ($this->_APICallSuccessful($PayPalResult)) {
335
-                    $payment->set_status($this->_pay_model->approved_status());
336
-                } else {
337
-                    $payment->set_status($this->_pay_model->declined_status());
338
-                }
339
-                // make sure we interpret the AMT as a float, not an international string
340
-                // (where periods are thousand separators)
341
-                $payment->set_amount(isset($PayPalResult['AMT']) ? floatval($PayPalResult['AMT']) : 0);
342
-                $payment->set_gateway_response($message);
343
-                $payment->set_txn_id_chq_nmbr(isset($PayPalResult['TRANSACTIONID'])
344
-                    ? $PayPalResult['TRANSACTIONID']
345
-                    : null);
346
-                $primary_registration_code = $primary_registrant instanceof EE_Registration
347
-                    ? $primary_registrant->reg_code()
348
-                    : '';
349
-                $payment->set_extra_accntng($primary_registration_code);
350
-                $payment->set_details($PayPalResult);
351
-            }
352
-        } catch (Exception $e) {
353
-            $payment->set_status($this->_pay_model->failed_status());
354
-            $payment->set_gateway_response($e->getMessage());
355
-        }
356
-        // $payment->set_status( $this->_pay_model->declined_status() );
357
-        // $payment->set_gateway_response( '' );
358
-        return $payment;
359
-    }
360
-
361
-
362
-
363
-    /**
364
-     * CLeans out sensitive CC data and then logs it, and returns the cleaned request
365
-     *
366
-     * @param array       $request
367
-     * @param EEI_Payment $payment
368
-     * @return void
369
-     */
370
-    private function _log_clean_request($request, $payment)
371
-    {
372
-        $cleaned_request_data = $request;
373
-        unset($cleaned_request_data['CCDetails']['acct']);
374
-        unset($cleaned_request_data['CCDetails']['cvv2']);
375
-        unset($cleaned_request_data['CCDetails']['expdate']);
376
-        $this->log(array('Paypal Request' => $cleaned_request_data), $payment);
377
-    }
378
-
379
-
380
-
381
-    /**
382
-     * Cleans the response, logs it, and returns it
383
-     *
384
-     * @param array       $response
385
-     * @param EEI_Payment $payment
386
-     * @return array cleaned
387
-     */
388
-    private function _log_clean_response($response, $payment)
389
-    {
390
-        unset($response['REQUESTDATA']['CREDITCARDTYPE']);
391
-        unset($response['REQUESTDATA']['ACCT']);
392
-        unset($response['REQUESTDATA']['EXPDATE']);
393
-        unset($response['REQUESTDATA']['CVV2']);
394
-        unset($response['RAWREQUEST']);
395
-        $this->log(array('Paypal Response' => $response), $payment);
396
-        return $response;
397
-    }
398
-
399
-
400
-
401
-    /**
402
-     * @param $DataArray
403
-     * @return array
404
-     */
405
-    private function prep_and_curl_request($DataArray)
406
-    {
407
-        // Create empty holders for each portion of the NVP string
408
-        $DPFieldsNVP = '&METHOD=DoDirectPayment&BUTTONSOURCE=AngellEYE_PHP_Class_DDP';
409
-        $CCDetailsNVP = '';
410
-        $PayerInfoNVP = '';
411
-        $PayerNameNVP = '';
412
-        $BillingAddressNVP = '';
413
-        $ShippingAddressNVP = '';
414
-        $PaymentDetailsNVP = '';
415
-        $OrderItemsNVP = '';
416
-        $Secure3DNVP = '';
417
-        // DP Fields
418
-        $DPFields = isset($DataArray['DPFields']) ? $DataArray['DPFields'] : array();
419
-        foreach ($DPFields as $DPFieldsVar => $DPFieldsVal) {
420
-            $DPFieldsNVP .= '&' . strtoupper($DPFieldsVar) . '=' . urlencode($DPFieldsVal);
421
-        }
422
-        // CC Details Fields
423
-        $CCDetails = isset($DataArray['CCDetails']) ? $DataArray['CCDetails'] : array();
424
-        foreach ($CCDetails as $CCDetailsVar => $CCDetailsVal) {
425
-            $CCDetailsNVP .= '&' . strtoupper($CCDetailsVar) . '=' . urlencode($CCDetailsVal);
426
-        }
427
-        // PayerInfo Type Fields
428
-        $PayerInfo = isset($DataArray['PayerInfo']) ? $DataArray['PayerInfo'] : array();
429
-        foreach ($PayerInfo as $PayerInfoVar => $PayerInfoVal) {
430
-            $PayerInfoNVP .= '&' . strtoupper($PayerInfoVar) . '=' . urlencode($PayerInfoVal);
431
-        }
432
-        // Payer Name Fields
433
-        $PayerName = isset($DataArray['PayerName']) ? $DataArray['PayerName'] : array();
434
-        foreach ($PayerName as $PayerNameVar => $PayerNameVal) {
435
-            $PayerNameNVP .= '&' . strtoupper($PayerNameVar) . '=' . urlencode($PayerNameVal);
436
-        }
437
-        // Address Fields (Billing)
438
-        $BillingAddress = isset($DataArray['BillingAddress']) ? $DataArray['BillingAddress'] : array();
439
-        foreach ($BillingAddress as $BillingAddressVar => $BillingAddressVal) {
440
-            $BillingAddressNVP .= '&' . strtoupper($BillingAddressVar) . '=' . urlencode($BillingAddressVal);
441
-        }
442
-        // Payment Details Type Fields
443
-        $PaymentDetails = isset($DataArray['PaymentDetails']) ? $DataArray['PaymentDetails'] : array();
444
-        foreach ($PaymentDetails as $PaymentDetailsVar => $PaymentDetailsVal) {
445
-            $PaymentDetailsNVP .= '&' . strtoupper($PaymentDetailsVar) . '=' . urlencode($PaymentDetailsVal);
446
-        }
447
-        // Payment Details Item Type Fields
448
-        $OrderItems = isset($DataArray['OrderItems']) ? $DataArray['OrderItems'] : array();
449
-        $n = 0;
450
-        foreach ($OrderItems as $OrderItemsVar => $OrderItemsVal) {
451
-            $CurrentItem = $OrderItems[ $OrderItemsVar ];
452
-            foreach ($CurrentItem as $CurrentItemVar => $CurrentItemVal) {
453
-                $OrderItemsNVP .= '&' . strtoupper($CurrentItemVar) . $n . '=' . urlencode($CurrentItemVal);
454
-            }
455
-            $n++;
456
-        }
457
-        // Ship To Address Fields
458
-        $ShippingAddress = isset($DataArray['ShippingAddress']) ? $DataArray['ShippingAddress'] : array();
459
-        foreach ($ShippingAddress as $ShippingAddressVar => $ShippingAddressVal) {
460
-            $ShippingAddressNVP .= '&' . strtoupper($ShippingAddressVar) . '=' . urlencode($ShippingAddressVal);
461
-        }
462
-        // 3D Secure Fields
463
-        $Secure3D = isset($DataArray['Secure3D']) ? $DataArray['Secure3D'] : array();
464
-        foreach ($Secure3D as $Secure3DVar => $Secure3DVal) {
465
-            $Secure3DNVP .= '&' . strtoupper($Secure3DVar) . '=' . urlencode($Secure3DVal);
466
-        }
467
-        // Now that we have each chunk we need to go ahead and append them all together for our entire NVP string
468
-        $NVPRequest = 'USER='
469
-                      . $this->_api_username
470
-                      . '&PWD='
471
-                      . $this->_api_password
472
-                      . '&VERSION=64.0'
473
-                      . '&SIGNATURE='
474
-                      . $this->_api_signature
475
-                      . $DPFieldsNVP
476
-                      . $CCDetailsNVP
477
-                      . $PayerInfoNVP
478
-                      . $PayerNameNVP
479
-                      . $BillingAddressNVP
480
-                      . $PaymentDetailsNVP
481
-                      . $OrderItemsNVP
482
-                      . $ShippingAddressNVP
483
-                      . $Secure3DNVP;
484
-        $NVPResponse = $this->_CURLRequest($NVPRequest);
485
-        $NVPRequestArray = $this->_NVPToArray($NVPRequest);
486
-        $NVPResponseArray = $this->_NVPToArray($NVPResponse);
487
-        $Errors = $this->_GetErrors($NVPResponseArray);
488
-        $NVPResponseArray['ERRORS'] = $Errors;
489
-        $NVPResponseArray['REQUESTDATA'] = $NVPRequestArray;
490
-        $NVPResponseArray['RAWREQUEST'] = $NVPRequest;
491
-        $NVPResponseArray['RAWRESPONSE'] = $NVPResponse;
492
-        return $NVPResponseArray;
493
-    }
494
-
495
-
496
-
497
-    /**
498
-     * @param $Request
499
-     * @return mixed
500
-     */
501
-    private function _CURLRequest($Request)
502
-    {
503
-        $EndPointURL = $this->_debug_mode ? 'https://api-3t.sandbox.paypal.com/nvp' : 'https://api-3t.paypal.com/nvp';
504
-        $curl = curl_init();
505
-        curl_setopt($curl, CURLOPT_VERBOSE, apply_filters('FHEE__EEG_Paypal_Pro__CurlRequest__CURLOPT_VERBOSE', true));
506
-        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
507
-        curl_setopt($curl, CURLOPT_TIMEOUT, 60);
508
-        curl_setopt($curl, CURLOPT_URL, $EndPointURL);
509
-        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
510
-        curl_setopt($curl, CURLOPT_POSTFIELDS, $Request);
511
-        curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
512
-        // execute the curl POST
513
-        $Response = curl_exec($curl);
514
-        curl_close($curl);
515
-        return $Response;
516
-    }
517
-
518
-
519
-
520
-    /**
521
-     * @param $NVPString
522
-     * @return array
523
-     */
524
-    private function _NVPToArray($NVPString)
525
-    {
526
-        // prepare responses into array
527
-        $proArray = array();
528
-        while (strlen($NVPString)) {
529
-            // name
530
-            $keypos = strpos($NVPString, '=');
531
-            $keyval = substr($NVPString, 0, $keypos);
532
-            // value
533
-            $valuepos = strpos($NVPString, '&') ? strpos($NVPString, '&') : strlen($NVPString);
534
-            $valval = substr($NVPString, $keypos + 1, $valuepos - $keypos - 1);
535
-            // decoding the response
536
-            $proArray[ $keyval ] = urldecode($valval);
537
-            $NVPString = substr($NVPString, $valuepos + 1, strlen($NVPString));
538
-        }
539
-        return $proArray;
540
-    }
541
-
542
-
543
-
544
-    /**
545
-     * @param array $PayPalResult
546
-     * @return bool
547
-     */
548
-    private function _APICallSuccessful($PayPalResult)
549
-    {
550
-        $approved = false;
551
-        // check main response message from PayPal
552
-        if (isset($PayPalResult['ACK']) && ! empty($PayPalResult['ACK'])) {
553
-            $ack = strtoupper($PayPalResult['ACK']);
554
-            $approved = ($ack == 'SUCCESS' || $ack == 'SUCCESSWITHWARNING' || $ack == 'PARTIALSUCCESS') ? true : false;
555
-        }
556
-        return $approved;
557
-    }
558
-
559
-
560
-
561
-    /**
562
-     * @param $DataArray
563
-     * @return array
564
-     */
565
-    private function _GetErrors($DataArray)
566
-    {
567
-        $Errors = array();
568
-        $n = 0;
569
-        while (isset($DataArray[ 'L_ERRORCODE' . $n . '' ])) {
570
-            $LErrorCode = isset($DataArray[ 'L_ERRORCODE' . $n . '' ]) ? $DataArray[ 'L_ERRORCODE' . $n . '' ] : '';
571
-            $LShortMessage = isset($DataArray[ 'L_SHORTMESSAGE' . $n . '' ])
572
-                ? $DataArray[ 'L_SHORTMESSAGE' . $n . '' ]
573
-                : '';
574
-            $LLongMessage = isset($DataArray[ 'L_LONGMESSAGE' . $n . '' ])
575
-                ? $DataArray[ 'L_LONGMESSAGE' . $n . '' ]
576
-                : '';
577
-            $LSeverityCode = isset($DataArray[ 'L_SEVERITYCODE' . $n . '' ])
578
-                ? $DataArray[ 'L_SEVERITYCODE' . $n . '' ]
579
-                : '';
580
-            $CurrentItem = array(
581
-                'L_ERRORCODE'    => $LErrorCode,
582
-                'L_SHORTMESSAGE' => $LShortMessage,
583
-                'L_LONGMESSAGE'  => $LLongMessage,
584
-                'L_SEVERITYCODE' => $LSeverityCode,
585
-            );
586
-            array_push($Errors, $CurrentItem);
587
-            $n++;
588
-        }
589
-        return $Errors;
590
-    }
591
-
592
-
593
-
594
-    /**
595
-     *        nothing to see here...  move along....
596
-     *
597
-     * @access protected
598
-     * @param $Errors
599
-     * @return string
600
-     */
601
-    private function _DisplayErrors($Errors)
602
-    {
603
-        $error = '';
604
-        foreach ($Errors as $ErrorVar => $ErrorVal) {
605
-            $CurrentError = $Errors[ $ErrorVar ];
606
-            foreach ($CurrentError as $CurrentErrorVar => $CurrentErrorVal) {
607
-                $CurrentVarName = '';
608
-                if ($CurrentErrorVar == 'L_ERRORCODE') {
609
-                    $CurrentVarName = 'Error Code';
610
-                } elseif ($CurrentErrorVar == 'L_SHORTMESSAGE') {
611
-                    $CurrentVarName = 'Short Message';
612
-                } elseif ($CurrentErrorVar == 'L_LONGMESSAGE') {
613
-                    $CurrentVarName = 'Long Message';
614
-                } elseif ($CurrentErrorVar == 'L_SEVERITYCODE') {
615
-                    $CurrentVarName = 'Severity Code';
616
-                }
617
-                $error .= '<br />' . $CurrentVarName . ': ' . $CurrentErrorVal;
618
-            }
619
-        }
620
-        return $error;
621
-    }
16
+	/**
17
+	 * @var $_paypal_api_username string
18
+	 */
19
+	protected $_api_username = null;
20
+
21
+	/**
22
+	 * @var $_api_password string
23
+	 */
24
+	protected $_api_password = null;
25
+
26
+	/**
27
+	 * @var $_api_signature string
28
+	 */
29
+	protected $_api_signature = null;
30
+
31
+	/**
32
+	 * @var $_credit_card_types array with the keys for credit card types accepted on this account
33
+	 */
34
+	protected $_credit_card_types    = null;
35
+
36
+	protected $_currencies_supported = array(
37
+		'USD',
38
+		'GBP',
39
+		'CAD',
40
+		'AUD',
41
+		'BRL',
42
+		'CHF',
43
+		'CZK',
44
+		'DKK',
45
+		'EUR',
46
+		'HKD',
47
+		'HUF',
48
+		'ILS',
49
+		'JPY',
50
+		'MXN',
51
+		'MYR',
52
+		'NOK',
53
+		'NZD',
54
+		'PHP',
55
+		'PLN',
56
+		'SEK',
57
+		'SGD',
58
+		'THB',
59
+		'TRY',
60
+		'TWD',
61
+		'RUB',
62
+		'INR',
63
+	);
64
+
65
+
66
+
67
+	/**
68
+	 * @param EEI_Payment $payment
69
+	 * @param array       $billing_info {
70
+	 * @type string $credit_card
71
+	 * @type string $credit_card_type
72
+	 * @type string $exp_month always 2 characters
73
+	 * @type string $exp_year always 4 characters
74
+	 * @type string $cvv
75
+	 * }
76
+	 * @see      parent::do_direct_payment for more info
77
+	 * @return EE_Payment|EEI_Payment
78
+	 * @throws EE_Error
79
+	 */
80
+	public function do_direct_payment($payment, $billing_info = null)
81
+	{
82
+		$transaction = $payment->transaction();
83
+		if (! $transaction instanceof EEI_Transaction) {
84
+			throw new EE_Error(
85
+				esc_html__('No transaction for payment while paying with PayPal Pro.', 'event_espresso')
86
+			);
87
+		}
88
+		$primary_registrant = $transaction->primary_registration();
89
+		if (! $primary_registrant instanceof EEI_Registration) {
90
+			throw new EE_Error(
91
+				esc_html__(
92
+					'No primary registration on transaction while paying with PayPal Pro.',
93
+					'event_espresso'
94
+				)
95
+			);
96
+		}
97
+		$attendee = $primary_registrant->attendee();
98
+		if (! $attendee instanceof EEI_Attendee) {
99
+			throw new EE_Error(
100
+				esc_html__(
101
+					'No attendee on primary registration while paying with PayPal Pro.',
102
+					'event_espresso'
103
+				)
104
+			);
105
+		}
106
+		$gateway_formatter = $this->_get_gateway_formatter();
107
+		$order_description = substr($gateway_formatter->formatOrderDescription($payment), 0, 127);
108
+		// charge for the full amount. Show itemized list
109
+		if ($this->_money->compare_floats($payment->amount(), $transaction->total(), '==')) {
110
+			$item_num = 1;
111
+			$total_line_item = $transaction->total_line_item();
112
+			$order_items = array();
113
+			foreach ($total_line_item->get_items() as $line_item) {
114
+				// ignore line items with a quantity of 0
115
+				if ($line_item->quantity() == 0) {
116
+					continue;
117
+				}
118
+				// For percent items, whose unit_price is 0, use the total instead.
119
+				if ($line_item->is_percent()) {
120
+					$unit_price = $line_item->total();
121
+					$line_item_quantity = 1;
122
+				} else {
123
+					$unit_price = $line_item->unit_price();
124
+					$line_item_quantity = $line_item->quantity();
125
+				}
126
+				$item = array(
127
+					// Item Name.  127 char max.
128
+					'l_name'                 => substr(
129
+						$gateway_formatter->formatLineItemName($line_item, $payment),
130
+						0,
131
+						127
132
+					),
133
+					// Item description.  127 char max.
134
+					'l_desc'                 => substr(
135
+						$gateway_formatter->formatLineItemDesc($line_item, $payment),
136
+						0,
137
+						127
138
+					),
139
+					// Cost of individual item.
140
+					'l_amt'                  => $unit_price,
141
+					// Item Number.  127 char max.
142
+					'l_number'               => $item_num++,
143
+					// Item quantity.  Must be any positive integer.
144
+					'l_qty'                  => $line_item_quantity,
145
+					// Item's sales tax amount.
146
+					'l_taxamt'               => '',
147
+					// eBay auction number of item.
148
+					'l_ebayitemnumber'       => '',
149
+					// eBay transaction ID of purchased item.
150
+					'l_ebayitemauctiontxnid' => '',
151
+					// eBay order ID for the item.
152
+					'l_ebayitemorderid'      => '',
153
+				);
154
+				// add to array of all items
155
+				array_push($order_items, $item);
156
+			}
157
+			$item_amount = $total_line_item->get_items_total();
158
+			$tax_amount = $total_line_item->get_total_tax();
159
+		} else {
160
+			$order_items = array();
161
+			$item_amount = $payment->amount();
162
+			$tax_amount = 0;
163
+			array_push($order_items, array(
164
+				// Item Name.  127 char max.
165
+				'l_name'   => substr(
166
+					$gateway_formatter->formatPartialPaymentLineItemName($payment),
167
+					0,
168
+					127
169
+				),
170
+				// Item description.  127 char max.
171
+				'l_desc'   => substr(
172
+					$gateway_formatter->formatPartialPaymentLineItemDesc($payment),
173
+					0,
174
+					127
175
+				),
176
+				// Cost of individual item.
177
+				'l_amt'    => $payment->amount(),
178
+				// Item Number.  127 char max.
179
+				'l_number' => 1,
180
+				// Item quantity.  Must be any positive integer.
181
+				'l_qty'    => 1,
182
+			));
183
+		}
184
+
185
+
186
+		/** @var RequestInterface $request */
187
+		$request = LoaderFactory::getLoader()->getShared(RequestInterface::class);
188
+		// Populate data arrays with order data.
189
+		$DPFields = array(
190
+			// How you want to obtain payment ?
191
+			// Authorization indicates the payment is a basic auth subject to settlement with Auth & Capture.
192
+			// Sale indicates that this is a final sale for which you are requesting payment.  Default is Sale.
193
+			'paymentaction'    => 'Sale',
194
+			// Required.  IP address of the payer's browser.
195
+			'ipaddress'        => $request->ipAddress(),
196
+			// Flag to determine whether you want the results returned by FMF.  1 or 0.  Default is 0.
197
+			'returnfmfdetails' => '1',
198
+		);
199
+		$CCDetails = array(
200
+			// Required. Type of credit card.  Visa, MasterCard, Discover, Amex, Maestro, Solo.
201
+			// If Maestro or Solo, the currency code must be GBP.
202
+			//  In addition, either start date or issue number must be specified.
203
+			'creditcardtype' => $billing_info['credit_card_type'],
204
+			// Required.  Credit card number.  No spaces or punctuation.
205
+			'acct'           => $billing_info['credit_card'],
206
+			// Required.  Credit card expiration date.  Format is MMYYYY
207
+			'expdate'        => $billing_info['exp_month'] . $billing_info['exp_year'],
208
+			// Requirements determined by your PayPal account settings.  Security digits for credit card.
209
+			'cvv2'           => $billing_info['cvv'],
210
+		);
211
+		$PayerInfo = array(
212
+			// Email address of payer.
213
+			'email'       => $billing_info['email'],
214
+			// Unique PayPal customer ID for payer.
215
+			'payerid'     => '',
216
+			// Status of payer.  Values are verified or unverified
217
+			'payerstatus' => '',
218
+			// Payer's business name.
219
+			'business'    => '',
220
+		);
221
+		$PayerName = array(
222
+			// Payer's salutation.  20 char max.
223
+			'salutation' => '',
224
+			// Payer's first name.  25 char max.
225
+			'firstname'  => substr($billing_info['first_name'], 0, 25),
226
+			// Payer's middle name.  25 char max.
227
+			'middlename' => '',
228
+			// Payer's last name.  25 char max.
229
+			'lastname'   => substr($billing_info['last_name'], 0, 25),
230
+			// Payer's suffix.  12 char max.
231
+			'suffix'     => '',
232
+		);
233
+		$BillingAddress = array(
234
+			// Required.  First street address.
235
+			'street'      => $billing_info['address'],
236
+			// Second street address.
237
+			'street2'     => $billing_info['address2'],
238
+			// Required.  Name of City.
239
+			'city'        => $billing_info['city'],
240
+			// Required. Name of State or Province.
241
+			'state'       => substr($billing_info['state'], 0, 40),
242
+			// Required.  Country code.
243
+			'countrycode' => $billing_info['country'],
244
+			// Required.  Postal code of payer.
245
+			'zip'         => $billing_info['zip'],
246
+		);
247
+		// check if the registration info contains the needed fields for paypal pro
248
+		// (see https://developer.paypal.com/docs/classic/api/merchant/DoDirectPayment_API_Operation_NVP/)
249
+		if ($attendee->address() && $attendee->city() && $attendee->country_ID()) {
250
+			$use_registration_address_info = true;
251
+		} else {
252
+			$use_registration_address_info = false;
253
+		}
254
+		// so if the attendee has enough data to fill out PayPal Pro's shipping info, use it.
255
+		// If not, use the billing info again
256
+		$ShippingAddress = array(
257
+			'shiptoname'     => substr($use_registration_address_info
258
+				? $attendee->full_name()
259
+				: $billing_info['first_name'] . ' ' . $billing_info['last_name'], 0, 32),
260
+			'shiptostreet'   => substr($use_registration_address_info
261
+				? $attendee->address()
262
+				: $billing_info['address'], 0, 100),
263
+			'shiptostreet2'  => substr($use_registration_address_info
264
+				? $attendee->address2() : $billing_info['address2'], 0, 100),
265
+			'shiptocity'     => substr($use_registration_address_info
266
+				? $attendee->city()
267
+				: $billing_info['city'], 0, 40),
268
+			'shiptostate'          => substr($use_registration_address_info
269
+				? $attendee->state_name()
270
+				: $billing_info['state'], 0, 40),
271
+			'shiptocountry'  => $use_registration_address_info
272
+				? $attendee->country_ID()
273
+				: $billing_info['country'],
274
+			'shiptozip'      => substr($use_registration_address_info
275
+				? $attendee->zip()
276
+				: $billing_info['zip'], 0, 20),
277
+			'shiptophonenum' => substr($use_registration_address_info
278
+				? $attendee->phone()
279
+				: $billing_info['phone'], 0, 20),
280
+		);
281
+		$PaymentDetails = array(
282
+			// Required.  Total amount of order, including shipping, handling, and tax.
283
+			'amt'          => $gateway_formatter->formatCurrency($payment->amount()),
284
+			// Required.  Three-letter currency code.  Default is USD.
285
+			'currencycode' => $payment->currency_code(),
286
+			// Required if you include itemized cart details. (L_AMTn, etc.)
287
+			// Subtotal of items not including S&H, or tax.
288
+			'itemamt'      => $gateway_formatter->formatCurrency($item_amount),//
289
+			// Total shipping costs for the order.  If you specify shippingamt, you must also specify itemamt.
290
+			'shippingamt'  => '',
291
+			// Total handling costs for the order.  If you specify handlingamt, you must also specify itemamt.
292
+			'handlingamt'  => '',
293
+			// Required if you specify itemized cart tax details.
294
+			// Sum of tax for all items on the order.  Total sales tax.
295
+			'taxamt'       => $gateway_formatter->formatCurrency($tax_amount),
296
+			// Description of the order the customer is purchasing.  127 char max.
297
+			'desc'         => $order_description,
298
+			// Free-form field for your own use.  256 char max.
299
+			'custom'       => $primary_registrant ? $primary_registrant->ID() : '',
300
+			// Your own invoice or tracking number
301
+			'invnum'       => wp_generate_password(12, false),// $transaction->ID(),
302
+			// URL for receiving Instant Payment Notifications.  This overrides what your profile is set to use.
303
+			'notifyurl'    => '',
304
+			'buttonsource' => 'EventEspresso_SP',// EE will blow up if you change this
305
+		);
306
+		// Wrap all data arrays into a single, "master" array which will be passed into the class function.
307
+		$PayPalRequestData = array(
308
+			'DPFields'        => $DPFields,
309
+			'CCDetails'       => $CCDetails,
310
+			'PayerInfo'       => $PayerInfo,
311
+			'PayerName'       => $PayerName,
312
+			'BillingAddress'  => $BillingAddress,
313
+			'ShippingAddress' => $ShippingAddress,
314
+			'PaymentDetails'  => $PaymentDetails,
315
+			'OrderItems'      => $order_items,
316
+		);
317
+		$this->_log_clean_request($PayPalRequestData, $payment);
318
+		try {
319
+			$PayPalResult = $this->prep_and_curl_request($PayPalRequestData);
320
+			// remove PCI-sensitive data so it doesn't get stored
321
+			$PayPalResult = $this->_log_clean_response($PayPalResult, $payment);
322
+			if (isset($PayPalResult['L_ERRORCODE0']) && $PayPalResult['L_ERRORCODE0'] === '10002') {
323
+				$message = esc_html__('PayPal did not accept your API username, password, or signature. Please double-check these credentials and if debug mode is on.', 'event_espresso');
324
+			} elseif (isset($PayPalResult['L_LONGMESSAGE0'])) {
325
+				$message = $PayPalResult['L_LONGMESSAGE0'];
326
+			} else {
327
+				$message = $PayPalResult['ACK'];
328
+			}
329
+			if (empty($PayPalResult['RAWRESPONSE'])) {
330
+				$payment->set_status($this->_pay_model->failed_status());
331
+				$payment->set_gateway_response(esc_html__('No response received from Paypal Pro', 'event_espresso'));
332
+				$payment->set_details($PayPalResult);
333
+			} else {
334
+				if ($this->_APICallSuccessful($PayPalResult)) {
335
+					$payment->set_status($this->_pay_model->approved_status());
336
+				} else {
337
+					$payment->set_status($this->_pay_model->declined_status());
338
+				}
339
+				// make sure we interpret the AMT as a float, not an international string
340
+				// (where periods are thousand separators)
341
+				$payment->set_amount(isset($PayPalResult['AMT']) ? floatval($PayPalResult['AMT']) : 0);
342
+				$payment->set_gateway_response($message);
343
+				$payment->set_txn_id_chq_nmbr(isset($PayPalResult['TRANSACTIONID'])
344
+					? $PayPalResult['TRANSACTIONID']
345
+					: null);
346
+				$primary_registration_code = $primary_registrant instanceof EE_Registration
347
+					? $primary_registrant->reg_code()
348
+					: '';
349
+				$payment->set_extra_accntng($primary_registration_code);
350
+				$payment->set_details($PayPalResult);
351
+			}
352
+		} catch (Exception $e) {
353
+			$payment->set_status($this->_pay_model->failed_status());
354
+			$payment->set_gateway_response($e->getMessage());
355
+		}
356
+		// $payment->set_status( $this->_pay_model->declined_status() );
357
+		// $payment->set_gateway_response( '' );
358
+		return $payment;
359
+	}
360
+
361
+
362
+
363
+	/**
364
+	 * CLeans out sensitive CC data and then logs it, and returns the cleaned request
365
+	 *
366
+	 * @param array       $request
367
+	 * @param EEI_Payment $payment
368
+	 * @return void
369
+	 */
370
+	private function _log_clean_request($request, $payment)
371
+	{
372
+		$cleaned_request_data = $request;
373
+		unset($cleaned_request_data['CCDetails']['acct']);
374
+		unset($cleaned_request_data['CCDetails']['cvv2']);
375
+		unset($cleaned_request_data['CCDetails']['expdate']);
376
+		$this->log(array('Paypal Request' => $cleaned_request_data), $payment);
377
+	}
378
+
379
+
380
+
381
+	/**
382
+	 * Cleans the response, logs it, and returns it
383
+	 *
384
+	 * @param array       $response
385
+	 * @param EEI_Payment $payment
386
+	 * @return array cleaned
387
+	 */
388
+	private function _log_clean_response($response, $payment)
389
+	{
390
+		unset($response['REQUESTDATA']['CREDITCARDTYPE']);
391
+		unset($response['REQUESTDATA']['ACCT']);
392
+		unset($response['REQUESTDATA']['EXPDATE']);
393
+		unset($response['REQUESTDATA']['CVV2']);
394
+		unset($response['RAWREQUEST']);
395
+		$this->log(array('Paypal Response' => $response), $payment);
396
+		return $response;
397
+	}
398
+
399
+
400
+
401
+	/**
402
+	 * @param $DataArray
403
+	 * @return array
404
+	 */
405
+	private function prep_and_curl_request($DataArray)
406
+	{
407
+		// Create empty holders for each portion of the NVP string
408
+		$DPFieldsNVP = '&METHOD=DoDirectPayment&BUTTONSOURCE=AngellEYE_PHP_Class_DDP';
409
+		$CCDetailsNVP = '';
410
+		$PayerInfoNVP = '';
411
+		$PayerNameNVP = '';
412
+		$BillingAddressNVP = '';
413
+		$ShippingAddressNVP = '';
414
+		$PaymentDetailsNVP = '';
415
+		$OrderItemsNVP = '';
416
+		$Secure3DNVP = '';
417
+		// DP Fields
418
+		$DPFields = isset($DataArray['DPFields']) ? $DataArray['DPFields'] : array();
419
+		foreach ($DPFields as $DPFieldsVar => $DPFieldsVal) {
420
+			$DPFieldsNVP .= '&' . strtoupper($DPFieldsVar) . '=' . urlencode($DPFieldsVal);
421
+		}
422
+		// CC Details Fields
423
+		$CCDetails = isset($DataArray['CCDetails']) ? $DataArray['CCDetails'] : array();
424
+		foreach ($CCDetails as $CCDetailsVar => $CCDetailsVal) {
425
+			$CCDetailsNVP .= '&' . strtoupper($CCDetailsVar) . '=' . urlencode($CCDetailsVal);
426
+		}
427
+		// PayerInfo Type Fields
428
+		$PayerInfo = isset($DataArray['PayerInfo']) ? $DataArray['PayerInfo'] : array();
429
+		foreach ($PayerInfo as $PayerInfoVar => $PayerInfoVal) {
430
+			$PayerInfoNVP .= '&' . strtoupper($PayerInfoVar) . '=' . urlencode($PayerInfoVal);
431
+		}
432
+		// Payer Name Fields
433
+		$PayerName = isset($DataArray['PayerName']) ? $DataArray['PayerName'] : array();
434
+		foreach ($PayerName as $PayerNameVar => $PayerNameVal) {
435
+			$PayerNameNVP .= '&' . strtoupper($PayerNameVar) . '=' . urlencode($PayerNameVal);
436
+		}
437
+		// Address Fields (Billing)
438
+		$BillingAddress = isset($DataArray['BillingAddress']) ? $DataArray['BillingAddress'] : array();
439
+		foreach ($BillingAddress as $BillingAddressVar => $BillingAddressVal) {
440
+			$BillingAddressNVP .= '&' . strtoupper($BillingAddressVar) . '=' . urlencode($BillingAddressVal);
441
+		}
442
+		// Payment Details Type Fields
443
+		$PaymentDetails = isset($DataArray['PaymentDetails']) ? $DataArray['PaymentDetails'] : array();
444
+		foreach ($PaymentDetails as $PaymentDetailsVar => $PaymentDetailsVal) {
445
+			$PaymentDetailsNVP .= '&' . strtoupper($PaymentDetailsVar) . '=' . urlencode($PaymentDetailsVal);
446
+		}
447
+		// Payment Details Item Type Fields
448
+		$OrderItems = isset($DataArray['OrderItems']) ? $DataArray['OrderItems'] : array();
449
+		$n = 0;
450
+		foreach ($OrderItems as $OrderItemsVar => $OrderItemsVal) {
451
+			$CurrentItem = $OrderItems[ $OrderItemsVar ];
452
+			foreach ($CurrentItem as $CurrentItemVar => $CurrentItemVal) {
453
+				$OrderItemsNVP .= '&' . strtoupper($CurrentItemVar) . $n . '=' . urlencode($CurrentItemVal);
454
+			}
455
+			$n++;
456
+		}
457
+		// Ship To Address Fields
458
+		$ShippingAddress = isset($DataArray['ShippingAddress']) ? $DataArray['ShippingAddress'] : array();
459
+		foreach ($ShippingAddress as $ShippingAddressVar => $ShippingAddressVal) {
460
+			$ShippingAddressNVP .= '&' . strtoupper($ShippingAddressVar) . '=' . urlencode($ShippingAddressVal);
461
+		}
462
+		// 3D Secure Fields
463
+		$Secure3D = isset($DataArray['Secure3D']) ? $DataArray['Secure3D'] : array();
464
+		foreach ($Secure3D as $Secure3DVar => $Secure3DVal) {
465
+			$Secure3DNVP .= '&' . strtoupper($Secure3DVar) . '=' . urlencode($Secure3DVal);
466
+		}
467
+		// Now that we have each chunk we need to go ahead and append them all together for our entire NVP string
468
+		$NVPRequest = 'USER='
469
+					  . $this->_api_username
470
+					  . '&PWD='
471
+					  . $this->_api_password
472
+					  . '&VERSION=64.0'
473
+					  . '&SIGNATURE='
474
+					  . $this->_api_signature
475
+					  . $DPFieldsNVP
476
+					  . $CCDetailsNVP
477
+					  . $PayerInfoNVP
478
+					  . $PayerNameNVP
479
+					  . $BillingAddressNVP
480
+					  . $PaymentDetailsNVP
481
+					  . $OrderItemsNVP
482
+					  . $ShippingAddressNVP
483
+					  . $Secure3DNVP;
484
+		$NVPResponse = $this->_CURLRequest($NVPRequest);
485
+		$NVPRequestArray = $this->_NVPToArray($NVPRequest);
486
+		$NVPResponseArray = $this->_NVPToArray($NVPResponse);
487
+		$Errors = $this->_GetErrors($NVPResponseArray);
488
+		$NVPResponseArray['ERRORS'] = $Errors;
489
+		$NVPResponseArray['REQUESTDATA'] = $NVPRequestArray;
490
+		$NVPResponseArray['RAWREQUEST'] = $NVPRequest;
491
+		$NVPResponseArray['RAWRESPONSE'] = $NVPResponse;
492
+		return $NVPResponseArray;
493
+	}
494
+
495
+
496
+
497
+	/**
498
+	 * @param $Request
499
+	 * @return mixed
500
+	 */
501
+	private function _CURLRequest($Request)
502
+	{
503
+		$EndPointURL = $this->_debug_mode ? 'https://api-3t.sandbox.paypal.com/nvp' : 'https://api-3t.paypal.com/nvp';
504
+		$curl = curl_init();
505
+		curl_setopt($curl, CURLOPT_VERBOSE, apply_filters('FHEE__EEG_Paypal_Pro__CurlRequest__CURLOPT_VERBOSE', true));
506
+		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
507
+		curl_setopt($curl, CURLOPT_TIMEOUT, 60);
508
+		curl_setopt($curl, CURLOPT_URL, $EndPointURL);
509
+		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
510
+		curl_setopt($curl, CURLOPT_POSTFIELDS, $Request);
511
+		curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
512
+		// execute the curl POST
513
+		$Response = curl_exec($curl);
514
+		curl_close($curl);
515
+		return $Response;
516
+	}
517
+
518
+
519
+
520
+	/**
521
+	 * @param $NVPString
522
+	 * @return array
523
+	 */
524
+	private function _NVPToArray($NVPString)
525
+	{
526
+		// prepare responses into array
527
+		$proArray = array();
528
+		while (strlen($NVPString)) {
529
+			// name
530
+			$keypos = strpos($NVPString, '=');
531
+			$keyval = substr($NVPString, 0, $keypos);
532
+			// value
533
+			$valuepos = strpos($NVPString, '&') ? strpos($NVPString, '&') : strlen($NVPString);
534
+			$valval = substr($NVPString, $keypos + 1, $valuepos - $keypos - 1);
535
+			// decoding the response
536
+			$proArray[ $keyval ] = urldecode($valval);
537
+			$NVPString = substr($NVPString, $valuepos + 1, strlen($NVPString));
538
+		}
539
+		return $proArray;
540
+	}
541
+
542
+
543
+
544
+	/**
545
+	 * @param array $PayPalResult
546
+	 * @return bool
547
+	 */
548
+	private function _APICallSuccessful($PayPalResult)
549
+	{
550
+		$approved = false;
551
+		// check main response message from PayPal
552
+		if (isset($PayPalResult['ACK']) && ! empty($PayPalResult['ACK'])) {
553
+			$ack = strtoupper($PayPalResult['ACK']);
554
+			$approved = ($ack == 'SUCCESS' || $ack == 'SUCCESSWITHWARNING' || $ack == 'PARTIALSUCCESS') ? true : false;
555
+		}
556
+		return $approved;
557
+	}
558
+
559
+
560
+
561
+	/**
562
+	 * @param $DataArray
563
+	 * @return array
564
+	 */
565
+	private function _GetErrors($DataArray)
566
+	{
567
+		$Errors = array();
568
+		$n = 0;
569
+		while (isset($DataArray[ 'L_ERRORCODE' . $n . '' ])) {
570
+			$LErrorCode = isset($DataArray[ 'L_ERRORCODE' . $n . '' ]) ? $DataArray[ 'L_ERRORCODE' . $n . '' ] : '';
571
+			$LShortMessage = isset($DataArray[ 'L_SHORTMESSAGE' . $n . '' ])
572
+				? $DataArray[ 'L_SHORTMESSAGE' . $n . '' ]
573
+				: '';
574
+			$LLongMessage = isset($DataArray[ 'L_LONGMESSAGE' . $n . '' ])
575
+				? $DataArray[ 'L_LONGMESSAGE' . $n . '' ]
576
+				: '';
577
+			$LSeverityCode = isset($DataArray[ 'L_SEVERITYCODE' . $n . '' ])
578
+				? $DataArray[ 'L_SEVERITYCODE' . $n . '' ]
579
+				: '';
580
+			$CurrentItem = array(
581
+				'L_ERRORCODE'    => $LErrorCode,
582
+				'L_SHORTMESSAGE' => $LShortMessage,
583
+				'L_LONGMESSAGE'  => $LLongMessage,
584
+				'L_SEVERITYCODE' => $LSeverityCode,
585
+			);
586
+			array_push($Errors, $CurrentItem);
587
+			$n++;
588
+		}
589
+		return $Errors;
590
+	}
591
+
592
+
593
+
594
+	/**
595
+	 *        nothing to see here...  move along....
596
+	 *
597
+	 * @access protected
598
+	 * @param $Errors
599
+	 * @return string
600
+	 */
601
+	private function _DisplayErrors($Errors)
602
+	{
603
+		$error = '';
604
+		foreach ($Errors as $ErrorVar => $ErrorVal) {
605
+			$CurrentError = $Errors[ $ErrorVar ];
606
+			foreach ($CurrentError as $CurrentErrorVar => $CurrentErrorVal) {
607
+				$CurrentVarName = '';
608
+				if ($CurrentErrorVar == 'L_ERRORCODE') {
609
+					$CurrentVarName = 'Error Code';
610
+				} elseif ($CurrentErrorVar == 'L_SHORTMESSAGE') {
611
+					$CurrentVarName = 'Short Message';
612
+				} elseif ($CurrentErrorVar == 'L_LONGMESSAGE') {
613
+					$CurrentVarName = 'Long Message';
614
+				} elseif ($CurrentErrorVar == 'L_SEVERITYCODE') {
615
+					$CurrentVarName = 'Severity Code';
616
+				}
617
+				$error .= '<br />' . $CurrentVarName . ': ' . $CurrentErrorVal;
618
+			}
619
+		}
620
+		return $error;
621
+	}
622 622
 }
Please login to merge, or discard this patch.
payment_reminder/EE_Messages_Email_Payment_Reminder_Validator.class.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -32,18 +32,18 @@
 block discarded – undo
32 32
 
33 33
         // modify just event_list
34 34
         $new_config['event_list'] = array(
35
-            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
35
+            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
36 36
             );
37 37
         $new_config['ticket_list'] = array(
38 38
             'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
39 39
             );
40 40
         $new_config['content'] = array(
41
-            'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
41
+            'shortcodes' => array('event_list', 'attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
42 42
             );
43 43
         $this->_messenger->set_validator_config($new_config);
44 44
 
45 45
         if ($this->_context != 'admin') {
46
-            $this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
46
+            $this->_valid_shortcodes_modifier[$this->_context]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
47 47
         }
48 48
 
49 49
         $this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
Please login to merge, or discard this patch.
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -13,37 +13,37 @@
 block discarded – undo
13 13
  */
14 14
 class EE_Messages_Email_Payment_Reminder_Validator extends EE_Messages_Validator
15 15
 {
16
-    public function __construct($fields, $context)
17
-    {
18
-        $this->_m_name = 'email';
19
-        $this->_mt_name = 'payment_reminder';
16
+	public function __construct($fields, $context)
17
+	{
18
+		$this->_m_name = 'email';
19
+		$this->_mt_name = 'payment_reminder';
20 20
 
21
-        parent::__construct($fields, $context);
22
-    }
21
+		parent::__construct($fields, $context);
22
+	}
23 23
 
24
-    /**
25
-     * at this point no custom validation needed for this messenger/message_type combo.
26
-     */
27
-    protected function _modify_validator()
28
-    {
29
-        $new_config = $this->_messenger->get_validator_config();
24
+	/**
25
+	 * at this point no custom validation needed for this messenger/message_type combo.
26
+	 */
27
+	protected function _modify_validator()
28
+	{
29
+		$new_config = $this->_messenger->get_validator_config();
30 30
 
31
-        // modify just event_list
32
-        $new_config['event_list'] = array(
33
-            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
34
-            );
35
-        $new_config['ticket_list'] = array(
36
-            'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
37
-            );
38
-        $new_config['content'] = array(
39
-            'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
40
-            );
41
-        $this->_messenger->set_validator_config($new_config);
31
+		// modify just event_list
32
+		$new_config['event_list'] = array(
33
+			'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
34
+			);
35
+		$new_config['ticket_list'] = array(
36
+			'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
37
+			);
38
+		$new_config['content'] = array(
39
+			'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
40
+			);
41
+		$this->_messenger->set_validator_config($new_config);
42 42
 
43
-        if ($this->_context != 'admin') {
44
-            $this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
45
-        }
43
+		if ($this->_context != 'admin') {
44
+			$this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
45
+		}
46 46
 
47
-        $this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
48
-    }
47
+		$this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
48
+	}
49 49
 }
Please login to merge, or discard this patch.
payment_declined/EE_Messages_Email_Payment_Declined_Validator.class.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -32,18 +32,18 @@
 block discarded – undo
32 32
 
33 33
         // modify just event_list
34 34
         $new_config['event_list'] = array(
35
-            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
35
+            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
36 36
             );
37 37
         $new_config['ticket_list'] = array(
38 38
             'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
39 39
             );
40 40
         $new_config['content'] = array(
41
-            'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
41
+            'shortcodes' => array('event_list', 'attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
42 42
             );
43 43
         $this->_messenger->set_validator_config($new_config);
44 44
 
45 45
         if ($this->_context != 'admin') {
46
-            $this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
46
+            $this->_valid_shortcodes_modifier[$this->_context]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
47 47
         }
48 48
 
49 49
         $this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
Please login to merge, or discard this patch.
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -13,37 +13,37 @@
 block discarded – undo
13 13
  */
14 14
 class EE_Messages_Email_Payment_Declined_Validator extends EE_Messages_Validator
15 15
 {
16
-    public function __construct($fields, $context)
17
-    {
18
-        $this->_m_name = 'email';
19
-        $this->_mt_name = 'payment_declined';
16
+	public function __construct($fields, $context)
17
+	{
18
+		$this->_m_name = 'email';
19
+		$this->_mt_name = 'payment_declined';
20 20
 
21
-        parent::__construct($fields, $context);
22
-    }
21
+		parent::__construct($fields, $context);
22
+	}
23 23
 
24
-    /**
25
-     * at this point no custom validation needed for this messenger/message_type combo.
26
-     */
27
-    protected function _modify_validator()
28
-    {
29
-        $new_config = $this->_messenger->get_validator_config();
24
+	/**
25
+	 * at this point no custom validation needed for this messenger/message_type combo.
26
+	 */
27
+	protected function _modify_validator()
28
+	{
29
+		$new_config = $this->_messenger->get_validator_config();
30 30
 
31
-        // modify just event_list
32
-        $new_config['event_list'] = array(
33
-            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
34
-            );
35
-        $new_config['ticket_list'] = array(
36
-            'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
37
-            );
38
-        $new_config['content'] = array(
39
-            'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
40
-            );
41
-        $this->_messenger->set_validator_config($new_config);
31
+		// modify just event_list
32
+		$new_config['event_list'] = array(
33
+			'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
34
+			);
35
+		$new_config['ticket_list'] = array(
36
+			'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
37
+			);
38
+		$new_config['content'] = array(
39
+			'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
40
+			);
41
+		$this->_messenger->set_validator_config($new_config);
42 42
 
43
-        if ($this->_context != 'admin') {
44
-            $this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
45
-        }
43
+		if ($this->_context != 'admin') {
44
+			$this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
45
+		}
46 46
 
47
-        $this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
48
-    }
47
+		$this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
48
+	}
49 49
 }
Please login to merge, or discard this patch.
payment_cancelled/EE_Messages_Email_Payment_Cancelled_Validator.class.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -32,18 +32,18 @@
 block discarded – undo
32 32
 
33 33
         // modify just event_list
34 34
         $new_config['event_list'] = array(
35
-            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
35
+            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
36 36
             );
37 37
         $new_config['ticket_list'] = array(
38 38
             'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
39 39
             );
40 40
         $new_config['content'] = array(
41
-            'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
41
+            'shortcodes' => array('event_list', 'attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
42 42
             );
43 43
         $this->_messenger->set_validator_config($new_config);
44 44
 
45 45
         if ($this->_context != 'admin') {
46
-            $this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
46
+            $this->_valid_shortcodes_modifier[$this->_context]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
47 47
         }
48 48
 
49 49
         $this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
Please login to merge, or discard this patch.
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -14,37 +14,37 @@
 block discarded – undo
14 14
  */
15 15
 class EE_Messages_Email_Payment_Cancelled_Validator extends EE_Messages_Validator
16 16
 {
17
-    public function __construct($fields, $context)
18
-    {
19
-        $this->_m_name = 'email';
20
-        $this->_mt_name = 'payment_cancelled';
17
+	public function __construct($fields, $context)
18
+	{
19
+		$this->_m_name = 'email';
20
+		$this->_mt_name = 'payment_cancelled';
21 21
 
22
-        parent::__construct($fields, $context);
23
-    }
22
+		parent::__construct($fields, $context);
23
+	}
24 24
 
25
-    /**
26
-     * at this point no custom validation needed for this messenger/message_type combo.
27
-     */
28
-    protected function _modify_validator()
29
-    {
30
-        $new_config = $this->_messenger->get_validator_config();
25
+	/**
26
+	 * at this point no custom validation needed for this messenger/message_type combo.
27
+	 */
28
+	protected function _modify_validator()
29
+	{
30
+		$new_config = $this->_messenger->get_validator_config();
31 31
 
32
-        // modify just event_list
33
-        $new_config['event_list'] = array(
34
-            'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
35
-            );
36
-        $new_config['ticket_list'] = array(
37
-            'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
38
-            );
39
-        $new_config['content'] = array(
40
-            'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
41
-            );
42
-        $this->_messenger->set_validator_config($new_config);
32
+		// modify just event_list
33
+		$new_config['event_list'] = array(
34
+			'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization','recipient_details', 'recipient_list', 'event_author', 'primary_registration_details', 'primary_registration_list')
35
+			);
36
+		$new_config['ticket_list'] = array(
37
+			'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'recipient_details', 'transaction')
38
+			);
39
+		$new_config['content'] = array(
40
+			'shortcodes' => array('event_list','attendee_list', 'ticket_list', 'organization', 'recipient_details', 'recipient_list', 'transaction', 'primary_registration_details', 'primary_registration_list', 'messenger')
41
+			);
42
+		$this->_messenger->set_validator_config($new_config);
43 43
 
44
-        if ($this->_context != 'admin') {
45
-            $this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
46
-        }
44
+		if ($this->_context != 'admin') {
45
+			$this->_valid_shortcodes_modifier[ $this->_context ]['event_list'] = array('event', 'attendee_list', 'ticket_list', 'datetime_list', 'venue', 'organization', 'event_author', 'primary_registration_details', 'primary_registration_list', 'recipient_details', 'recipient_list');
46
+		}
47 47
 
48
-        $this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
49
-    }
48
+		$this->_specific_shortcode_excludes['content'] = array('[DISPLAY_PDF_URL]', '[DISPLAY_PDF_BUTTON]');
49
+	}
50 50
 }
Please login to merge, or discard this patch.