Completed
Branch FET-10785-ee-system-loader (4ec117)
by
unknown
139:17 queued 127:33
created
core/services/loaders/CoreLoader.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -38,7 +38,7 @@
 block discarded – undo
38 38
      */
39 39
     public function __construct($generator)
40 40
     {
41
-        if(!($generator instanceof EE_Registry || $generator instanceof CoffeeShop)) {
41
+        if ( ! ($generator instanceof EE_Registry || $generator instanceof CoffeeShop)) {
42 42
             throw new InvalidArgumentException(
43 43
                 esc_html__(
44 44
                     'The CoreLoader class must receive an instance of EE_Registry or the CoffeeShop DI container.',
Please login to merge, or discard this patch.
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -24,59 +24,59 @@
 block discarded – undo
24 24
 class CoreLoader implements LoaderDecoratorInterface
25 25
 {
26 26
 
27
-    /**
28
-     * @var EE_Registry|CoffeeShop $generator
29
-     */
30
-    private $generator;
31
-
32
-
33
-
34
-    /**
35
-     * CoreLoader constructor.
36
-     *
37
-     * @param EE_Registry|CoffeeShop $generator
38
-     * @throws InvalidArgumentException
39
-     */
40
-    public function __construct($generator)
41
-    {
42
-        if(!($generator instanceof EE_Registry || $generator instanceof CoffeeShop)) {
43
-            throw new InvalidArgumentException(
44
-                esc_html__(
45
-                    'The CoreLoader class must receive an instance of EE_Registry or the CoffeeShop DI container.',
46
-                    'event_espresso'
47
-                )
48
-            );
49
-        }
50
-        $this->generator = $generator;
51
-    }
52
-
53
-
54
-
55
-    /**
56
-     * @param string $fqcn
57
-     * @param array  $arguments
58
-     * @return mixed
59
-     * @throws EE_Error
60
-     * @throws ServiceNotFoundException
61
-     */
62
-    public function load($fqcn, $arguments = array())
63
-    {
64
-        return $this->generator instanceof EE_Registry
65
-            ? $this->generator->create($fqcn, $arguments)
66
-            : $this->generator->brew($fqcn, $arguments);
67
-    }
68
-
69
-
70
-
71
-    /**
72
-     * calls reset() on generator if method exists
73
-     */
74
-    public function reset()
75
-    {
76
-        if (method_exists($this->generator, 'reset')) {
77
-            $this->generator->reset();
78
-        }
79
-    }
27
+	/**
28
+	 * @var EE_Registry|CoffeeShop $generator
29
+	 */
30
+	private $generator;
31
+
32
+
33
+
34
+	/**
35
+	 * CoreLoader constructor.
36
+	 *
37
+	 * @param EE_Registry|CoffeeShop $generator
38
+	 * @throws InvalidArgumentException
39
+	 */
40
+	public function __construct($generator)
41
+	{
42
+		if(!($generator instanceof EE_Registry || $generator instanceof CoffeeShop)) {
43
+			throw new InvalidArgumentException(
44
+				esc_html__(
45
+					'The CoreLoader class must receive an instance of EE_Registry or the CoffeeShop DI container.',
46
+					'event_espresso'
47
+				)
48
+			);
49
+		}
50
+		$this->generator = $generator;
51
+	}
52
+
53
+
54
+
55
+	/**
56
+	 * @param string $fqcn
57
+	 * @param array  $arguments
58
+	 * @return mixed
59
+	 * @throws EE_Error
60
+	 * @throws ServiceNotFoundException
61
+	 */
62
+	public function load($fqcn, $arguments = array())
63
+	{
64
+		return $this->generator instanceof EE_Registry
65
+			? $this->generator->create($fqcn, $arguments)
66
+			: $this->generator->brew($fqcn, $arguments);
67
+	}
68
+
69
+
70
+
71
+	/**
72
+	 * calls reset() on generator if method exists
73
+	 */
74
+	public function reset()
75
+	{
76
+		if (method_exists($this->generator, 'reset')) {
77
+			$this->generator->reset();
78
+		}
79
+	}
80 80
 
81 81
 }
82 82
 // End of file CoreLoader.php
Please login to merge, or discard this patch.
core/libraries/payment_methods/EE_Payment_Method_Manager.lib.php 1 patch
Indentation   +407 added lines, -407 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php if ( ! defined('EVENT_ESPRESSO_VERSION')) {
2
-    exit('No direct script access allowed');
2
+	exit('No direct script access allowed');
3 3
 }
4 4
 
5 5
 
@@ -17,407 +17,407 @@  discard block
 block discarded – undo
17 17
 class EE_Payment_Method_Manager
18 18
 {
19 19
 
20
-    /**
21
-     *    instance of the EE_Payment_Method_Manager object
22
-     *
23
-     * @var    $_instance
24
-     * @access    private
25
-     */
26
-    private static $_instance;
27
-
28
-    /**
29
-     * @var array keys are classnames without 'EE_PMT_', values are their filepaths
30
-     */
31
-    protected $_payment_method_types = array();
32
-
33
-
34
-
35
-    /**
36
-     * @singleton method used to instantiate class object
37
-     * @access    public
38
-     * @return EE_Payment_Method_Manager instance
39
-     */
40
-    public static function instance()
41
-    {
42
-        // check if class object is instantiated, and instantiated properly
43
-        if ( ! self::$_instance instanceof EE_Payment_Method_Manager) {
44
-            self::$_instance = new self();
45
-        }
46
-        EE_Registry::instance()->load_lib('PMT_Base');
47
-        return self::$_instance;
48
-    }
49
-
50
-
51
-
52
-    /**
53
-     * Resets the instance and returns a new one
54
-     *
55
-     * @return EE_Payment_Method_Manager
56
-     */
57
-    public static function reset()
58
-    {
59
-        self::$_instance = null;
60
-        return self::instance();
61
-    }
62
-
63
-
64
-
65
-    /**
66
-     * If necessary, re-register payment methods
67
-     *
68
-     * @param boolean $force_recheck whether to recheck for payment method types,
69
-     *                               or just re-use the PMTs we found last time we checked during this request (if
70
-     *                               we have not yet checked during this request, then we need to check anyways)
71
-     */
72
-    public function maybe_register_payment_methods($force_recheck = false)
73
-    {
74
-        if ( ! $this->_payment_method_types || $force_recheck) {
75
-            $this->_register_payment_methods();
76
-            //if in admin lets ensure caps are set.
77
-            if (is_admin()) {
78
-                add_filter('FHEE__EE_Capabilities__init_caps_map__caps', array($this, 'add_payment_method_caps'));
79
-                EE_Registry::instance()->CAP->init_caps();
80
-            }
81
-        }
82
-    }
83
-
84
-
85
-
86
-    /**
87
-     *        register_payment_methods
88
-     *
89
-     * @return array
90
-     */
91
-    protected function _register_payment_methods()
92
-    {
93
-        // grab list of installed modules
94
-        $pm_to_register = glob(EE_PAYMENT_METHODS . '*', GLOB_ONLYDIR);
95
-        // filter list of modules to register
96
-        $pm_to_register = apply_filters('FHEE__EE_Payment_Method_Manager__register_payment_methods__payment_methods_to_register',
97
-            $pm_to_register);
98
-        // loop through folders
99
-        foreach ($pm_to_register as $pm_path) {
100
-            $this->register_payment_method($pm_path);
101
-        }
102
-        do_action('FHEE__EE_Payment_Method_Manager__register_payment_methods__registered_payment_methods');
103
-        // filter list of installed modules
104
-        //keep them organized alphabetically by the payment method type's name
105
-        ksort($this->_payment_method_types);
106
-        return apply_filters('FHEE__EE_Payment_Method_Manager__register_payment_methods__installed_payment_methods',
107
-            $this->_payment_method_types);
108
-    }
109
-
110
-
111
-
112
-    /**
113
-     *    register_payment_method- makes core aware of this payment method
114
-     *
115
-     * @access public
116
-     * @param string $payment_method_path - full path up to and including payment method folder
117
-     * @return boolean
118
-     */
119
-    public function register_payment_method($payment_method_path = '')
120
-    {
121
-        do_action('AHEE__EE_Payment_Method_Manager__register_payment_method__begin', $payment_method_path);
122
-        $module_ext = '.pm.php';
123
-        // make all separators match
124
-        $payment_method_path = rtrim(str_replace('/\\', DS, $payment_method_path), DS);
125
-        // grab and sanitize module name
126
-        $module_dir = basename($payment_method_path);
127
-        // create classname from module directory name
128
-        $module = str_replace(' ', '_', str_replace('_', ' ', $module_dir));
129
-        // add class prefix
130
-        $module_class = 'EE_PMT_' . $module;
131
-        // does the module exist ?
132
-        if ( ! is_readable($payment_method_path . DS . $module_class . $module_ext)) {
133
-            $msg = sprintf(__('The requested %s payment method file could not be found or is not readable due to file permissions.',
134
-                'event_espresso'), $module);
135
-            EE_Error::add_error($msg . '||' . $msg, __FILE__, __FUNCTION__, __LINE__);
136
-            return false;
137
-        }
138
-        if (WP_DEBUG === true) {
139
-            EEH_Debug_Tools::instance()->start_timer();
140
-        }
141
-        // load the module class file
142
-        require_once($payment_method_path . DS . $module_class . $module_ext);
143
-        if (WP_DEBUG === true) {
144
-            EEH_Debug_Tools::instance()->stop_timer("Requiring payment method $module_class");
145
-        }
146
-        // verify that class exists
147
-        if ( ! class_exists($module_class)) {
148
-            $msg = sprintf(__('The requested %s module class does not exist.', 'event_espresso'), $module_class);
149
-            EE_Error::add_error($msg . '||' . $msg, __FILE__, __FUNCTION__, __LINE__);
150
-            return false;
151
-        }
152
-        // add to array of registered modules
153
-        $this->_payment_method_types[$module] = $payment_method_path . DS . $module_class . $module_ext;
154
-        return true;
155
-    }
156
-
157
-
158
-
159
-    /**
160
-     * Checks if a payment method has been registered, and if so includes it
161
-     *
162
-     * @param string  $payment_method_name like 'Paypal_Pro', (ie classname without the prefix 'EEPM_')
163
-     * @param boolean $force_recheck       whether to force re-checking for new payment method types
164
-     * @return boolean
165
-     */
166
-    public function payment_method_type_exists($payment_method_name, $force_recheck = false)
167
-    {
168
-        if (
169
-            $force_recheck
170
-            || ! is_array($this->_payment_method_types)
171
-            || ! isset($this->_payment_method_types[$payment_method_name])
172
-        ) {
173
-            $this->maybe_register_payment_methods($force_recheck);
174
-        }
175
-        if (isset($this->_payment_method_types[$payment_method_name])) {
176
-            require_once($this->_payment_method_types[$payment_method_name]);
177
-            return true;
178
-        } else {
179
-            return false;
180
-        }
181
-    }
182
-
183
-
184
-
185
-    /**
186
-     * Returns all the classnames of the various payment method types
187
-     *
188
-     * @param boolean $with_prefixes TRUE: get payment method type classnames; false just their 'names'
189
-     *                               (what you'd find in wp_esp_payment_method.PMD_type)
190
-     * @param boolean $force_recheck whether to force re-checking for new payment method types
191
-     * @return array
192
-     */
193
-    public function payment_method_type_names($with_prefixes = false, $force_recheck = false)
194
-    {
195
-        $this->maybe_register_payment_methods($force_recheck);
196
-        if ($with_prefixes) {
197
-            $classnames = array_keys($this->_payment_method_types);
198
-            $payment_methods = array();
199
-            foreach ($classnames as $classname) {
200
-                $payment_methods[] = $this->payment_method_class_from_type($classname);
201
-            }
202
-            return $payment_methods;
203
-        } else {
204
-            return array_keys($this->_payment_method_types);
205
-        }
206
-    }
207
-
208
-
209
-
210
-    /**
211
-     * Gets an object of each payment method type, none of which are bound to a
212
-     * payment method instance
213
-     *
214
-     * @param boolean $force_recheck whether to force re-checking for new payment method types
215
-     * @return EE_PMT_Base[]
216
-     */
217
-    public function payment_method_types($force_recheck = false)
218
-    {
219
-        $this->maybe_register_payment_methods($force_recheck);
220
-        $pmt_objs = array();
221
-        foreach ($this->payment_method_type_names(true) as $classname) {
222
-            $pmt_objs[] = new $classname;
223
-        }
224
-        return $pmt_objs;
225
-    }
226
-
227
-
228
-
229
-    /**
230
-     * Changes the payment method's classname into the payment method type's name
231
-     * (as used on the payment method's table's PMD_type field)
232
-     *
233
-     * @param string $classname
234
-     * @return string
235
-     */
236
-    public function payment_method_type_sans_class_prefix($classname)
237
-    {
238
-        return str_replace("EE_PMT_", "", $classname);
239
-    }
240
-
241
-
242
-
243
-    /**
244
-     * Does the opposite of payment-method_type_sans_prefix
245
-     *
246
-     * @param string $type
247
-     * @return string
248
-     */
249
-    public function payment_method_class_from_type($type)
250
-    {
251
-        $this->maybe_register_payment_methods();
252
-        return "EE_PMT_" . $type;
253
-    }
254
-
255
-
256
-
257
-    /**
258
-     * Activates a payment method of the given type.
259
-     *
260
-     * @param string $payment_method_type the PMT_type; for EE_PMT_Invoice this would be 'Invoice'
261
-     * @return \EE_Payment_Method
262
-     * @throws \EE_Error
263
-     */
264
-    public function activate_a_payment_method_of_type($payment_method_type)
265
-    {
266
-        $payment_method = EEM_Payment_Method::instance()->get_one_of_type($payment_method_type);
267
-        if ( ! $payment_method instanceof EE_Payment_Method) {
268
-            $pm_type_class = $this->payment_method_class_from_type($payment_method_type);
269
-            if (class_exists($pm_type_class)) {
270
-                /** @var $pm_type_obj EE_PMT_Base */
271
-                $pm_type_obj = new $pm_type_class;
272
-                $payment_method = EEM_Payment_Method::instance()->get_one_by_slug($pm_type_obj->system_name());
273
-                if ( ! $payment_method) {
274
-                    $payment_method = $this->create_payment_method_of_type($pm_type_obj);
275
-                }
276
-                $payment_method->set_type($payment_method_type);
277
-                $this->initialize_payment_method($payment_method);
278
-            } else {
279
-                throw new EE_Error(
280
-                    sprintf(
281
-                        __('There is no payment method of type %1$s, so it could not be activated', 'event_espresso'),
282
-                        $pm_type_class)
283
-                );
284
-            }
285
-        }
286
-        $payment_method->set_active();
287
-        $payment_method->save();
288
-        if ($payment_method->type() === 'Invoice') {
289
-            /** @type EE_Message_Resource_Manager $message_resource_manager */
290
-            $message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
291
-            $message_resource_manager->ensure_message_type_is_active('invoice', 'html');
292
-            $message_resource_manager->ensure_messenger_is_active('pdf');
293
-            EE_Error::add_persistent_admin_notice(
294
-                'invoice_pm_requirements_notice',
295
-                sprintf(
296
-                    __('The Invoice payment method has been activated. It requires the invoice message type, html messenger, and pdf messenger be activated as well for the %1$smessages system%2$s, so it has been automatically verified that they are also active.',
297
-                        'event_espresso'),
298
-                    '<a href="' . admin_url('admin.php?page=espresso_messages') . '">',
299
-                    '</a>'
300
-                ),
301
-                true
302
-            );
303
-        }
304
-        return $payment_method;
305
-    }
306
-
307
-
308
-
309
-    /**
310
-     * Creates a payment method of the specified type. Does not save it.
311
-     *
312
-     * @global WP_User    $current_user
313
-     * @param EE_PMT_Base $pm_type_obj
314
-     * @return EE_Payment_Method
315
-     * @throws \EE_Error
316
-     */
317
-    public function create_payment_method_of_type($pm_type_obj)
318
-    {
319
-        global $current_user;
320
-        $payment_method = EE_Payment_Method::new_instance(
321
-            array(
322
-                'PMD_type'       => $pm_type_obj->system_name(),
323
-                'PMD_name'       => $pm_type_obj->pretty_name(),
324
-                'PMD_admin_name' => $pm_type_obj->pretty_name(),
325
-                'PMD_slug'       => $pm_type_obj->system_name(),//automatically converted to slug
326
-                'PMD_wp_user'    => $current_user->ID,
327
-                'PMD_order'      => EEM_Payment_Method::instance()->count(
328
-                        array(array('PMD_type' => array('!=', 'Admin_Only')))
329
-                    ) * 10,
330
-            )
331
-        );
332
-        return $payment_method;
333
-    }
334
-
335
-
336
-
337
-    /**
338
-     * Sets the initial payment method properties (including extra meta)
339
-     *
340
-     * @param EE_Payment_Method $payment_method
341
-     * @return EE_Payment_Method
342
-     * @throws \EE_Error
343
-     */
344
-    public function initialize_payment_method($payment_method)
345
-    {
346
-        $pm_type_obj = $payment_method->type_obj();
347
-        $payment_method->set_description($pm_type_obj->default_description());
348
-        if ( ! $payment_method->button_url()) {
349
-            $payment_method->set_button_url($pm_type_obj->default_button_url());
350
-        }
351
-        //now add setup its default extra meta properties
352
-        $extra_metas = $pm_type_obj->settings_form()->extra_meta_inputs();
353
-        if ( ! empty($extra_metas)) {
354
-            //verify the payment method has an ID before adding extra meta
355
-            if ( ! $payment_method->ID()) {
356
-                $payment_method->save();
357
-            }
358
-            foreach ($extra_metas as $meta_name => $input) {
359
-                $payment_method->update_extra_meta($meta_name, $input->raw_value());
360
-            }
361
-        }
362
-        return $payment_method;
363
-    }
364
-
365
-
366
-
367
-    /**
368
-     * Makes sure the payment method is related to the specified payment method
369
-     * @deprecated in 4.9.40 because the currency payment method table is being deprecated
370
-     * @param EE_Payment_Method $payment_method
371
-     * @return EE_Payment_Method
372
-     * @throws \EE_Error
373
-     */
374
-    public function set_usable_currencies_on_payment_method($payment_method)
375
-    {
376
-        EE_Error::doing_it_wrong(
377
-            'EE_Payment_Method_Manager::set_usable_currencies_on_payment_method',
378
-                esc_html__('We no longer define what currencies are usable by payment methods. Its not used nor efficient.', 'event_espresso'),
379
-            '4.9.40');
380
-        return $payment_method;
381
-    }
382
-
383
-
384
-
385
-    /**
386
-     * Deactivates a payment method of the given payment method slug.
387
-     *
388
-     * @param string $payment_method_slug The slug for the payment method to deactivate.
389
-     * @return int count of rows updated.
390
-     */
391
-    public function deactivate_payment_method($payment_method_slug)
392
-    {
393
-        EE_Log::instance()->log(
394
-            __FILE__,
395
-            __FUNCTION__,
396
-            sprintf(
397
-                __('Payment method with slug %1$s is being deactivated by site admin', 'event_espresso'),
398
-                $payment_method_slug
399
-            ),
400
-            'payment_method_change'
401
-        );
402
-        $count_updated = EEM_Payment_Method::instance()->update(
403
-            array('PMD_scope' => array()),
404
-            array(array('PMD_slug' => $payment_method_slug))
405
-        );
406
-        return $count_updated;
407
-    }
408
-
409
-
410
-
411
-    /**
412
-     * callback for FHEE__EE_Capabilities__init_caps_map__caps filter to add dynamic payment method
413
-     * access caps.
414
-     *
415
-     * @param array $caps capabilities being filtered
416
-     * @return array
417
-     */
418
-    public function add_payment_method_caps($caps)
419
-    {
420
-        /* add dynamic caps from payment methods
20
+	/**
21
+	 *    instance of the EE_Payment_Method_Manager object
22
+	 *
23
+	 * @var    $_instance
24
+	 * @access    private
25
+	 */
26
+	private static $_instance;
27
+
28
+	/**
29
+	 * @var array keys are classnames without 'EE_PMT_', values are their filepaths
30
+	 */
31
+	protected $_payment_method_types = array();
32
+
33
+
34
+
35
+	/**
36
+	 * @singleton method used to instantiate class object
37
+	 * @access    public
38
+	 * @return EE_Payment_Method_Manager instance
39
+	 */
40
+	public static function instance()
41
+	{
42
+		// check if class object is instantiated, and instantiated properly
43
+		if ( ! self::$_instance instanceof EE_Payment_Method_Manager) {
44
+			self::$_instance = new self();
45
+		}
46
+		EE_Registry::instance()->load_lib('PMT_Base');
47
+		return self::$_instance;
48
+	}
49
+
50
+
51
+
52
+	/**
53
+	 * Resets the instance and returns a new one
54
+	 *
55
+	 * @return EE_Payment_Method_Manager
56
+	 */
57
+	public static function reset()
58
+	{
59
+		self::$_instance = null;
60
+		return self::instance();
61
+	}
62
+
63
+
64
+
65
+	/**
66
+	 * If necessary, re-register payment methods
67
+	 *
68
+	 * @param boolean $force_recheck whether to recheck for payment method types,
69
+	 *                               or just re-use the PMTs we found last time we checked during this request (if
70
+	 *                               we have not yet checked during this request, then we need to check anyways)
71
+	 */
72
+	public function maybe_register_payment_methods($force_recheck = false)
73
+	{
74
+		if ( ! $this->_payment_method_types || $force_recheck) {
75
+			$this->_register_payment_methods();
76
+			//if in admin lets ensure caps are set.
77
+			if (is_admin()) {
78
+				add_filter('FHEE__EE_Capabilities__init_caps_map__caps', array($this, 'add_payment_method_caps'));
79
+				EE_Registry::instance()->CAP->init_caps();
80
+			}
81
+		}
82
+	}
83
+
84
+
85
+
86
+	/**
87
+	 *        register_payment_methods
88
+	 *
89
+	 * @return array
90
+	 */
91
+	protected function _register_payment_methods()
92
+	{
93
+		// grab list of installed modules
94
+		$pm_to_register = glob(EE_PAYMENT_METHODS . '*', GLOB_ONLYDIR);
95
+		// filter list of modules to register
96
+		$pm_to_register = apply_filters('FHEE__EE_Payment_Method_Manager__register_payment_methods__payment_methods_to_register',
97
+			$pm_to_register);
98
+		// loop through folders
99
+		foreach ($pm_to_register as $pm_path) {
100
+			$this->register_payment_method($pm_path);
101
+		}
102
+		do_action('FHEE__EE_Payment_Method_Manager__register_payment_methods__registered_payment_methods');
103
+		// filter list of installed modules
104
+		//keep them organized alphabetically by the payment method type's name
105
+		ksort($this->_payment_method_types);
106
+		return apply_filters('FHEE__EE_Payment_Method_Manager__register_payment_methods__installed_payment_methods',
107
+			$this->_payment_method_types);
108
+	}
109
+
110
+
111
+
112
+	/**
113
+	 *    register_payment_method- makes core aware of this payment method
114
+	 *
115
+	 * @access public
116
+	 * @param string $payment_method_path - full path up to and including payment method folder
117
+	 * @return boolean
118
+	 */
119
+	public function register_payment_method($payment_method_path = '')
120
+	{
121
+		do_action('AHEE__EE_Payment_Method_Manager__register_payment_method__begin', $payment_method_path);
122
+		$module_ext = '.pm.php';
123
+		// make all separators match
124
+		$payment_method_path = rtrim(str_replace('/\\', DS, $payment_method_path), DS);
125
+		// grab and sanitize module name
126
+		$module_dir = basename($payment_method_path);
127
+		// create classname from module directory name
128
+		$module = str_replace(' ', '_', str_replace('_', ' ', $module_dir));
129
+		// add class prefix
130
+		$module_class = 'EE_PMT_' . $module;
131
+		// does the module exist ?
132
+		if ( ! is_readable($payment_method_path . DS . $module_class . $module_ext)) {
133
+			$msg = sprintf(__('The requested %s payment method file could not be found or is not readable due to file permissions.',
134
+				'event_espresso'), $module);
135
+			EE_Error::add_error($msg . '||' . $msg, __FILE__, __FUNCTION__, __LINE__);
136
+			return false;
137
+		}
138
+		if (WP_DEBUG === true) {
139
+			EEH_Debug_Tools::instance()->start_timer();
140
+		}
141
+		// load the module class file
142
+		require_once($payment_method_path . DS . $module_class . $module_ext);
143
+		if (WP_DEBUG === true) {
144
+			EEH_Debug_Tools::instance()->stop_timer("Requiring payment method $module_class");
145
+		}
146
+		// verify that class exists
147
+		if ( ! class_exists($module_class)) {
148
+			$msg = sprintf(__('The requested %s module class does not exist.', 'event_espresso'), $module_class);
149
+			EE_Error::add_error($msg . '||' . $msg, __FILE__, __FUNCTION__, __LINE__);
150
+			return false;
151
+		}
152
+		// add to array of registered modules
153
+		$this->_payment_method_types[$module] = $payment_method_path . DS . $module_class . $module_ext;
154
+		return true;
155
+	}
156
+
157
+
158
+
159
+	/**
160
+	 * Checks if a payment method has been registered, and if so includes it
161
+	 *
162
+	 * @param string  $payment_method_name like 'Paypal_Pro', (ie classname without the prefix 'EEPM_')
163
+	 * @param boolean $force_recheck       whether to force re-checking for new payment method types
164
+	 * @return boolean
165
+	 */
166
+	public function payment_method_type_exists($payment_method_name, $force_recheck = false)
167
+	{
168
+		if (
169
+			$force_recheck
170
+			|| ! is_array($this->_payment_method_types)
171
+			|| ! isset($this->_payment_method_types[$payment_method_name])
172
+		) {
173
+			$this->maybe_register_payment_methods($force_recheck);
174
+		}
175
+		if (isset($this->_payment_method_types[$payment_method_name])) {
176
+			require_once($this->_payment_method_types[$payment_method_name]);
177
+			return true;
178
+		} else {
179
+			return false;
180
+		}
181
+	}
182
+
183
+
184
+
185
+	/**
186
+	 * Returns all the classnames of the various payment method types
187
+	 *
188
+	 * @param boolean $with_prefixes TRUE: get payment method type classnames; false just their 'names'
189
+	 *                               (what you'd find in wp_esp_payment_method.PMD_type)
190
+	 * @param boolean $force_recheck whether to force re-checking for new payment method types
191
+	 * @return array
192
+	 */
193
+	public function payment_method_type_names($with_prefixes = false, $force_recheck = false)
194
+	{
195
+		$this->maybe_register_payment_methods($force_recheck);
196
+		if ($with_prefixes) {
197
+			$classnames = array_keys($this->_payment_method_types);
198
+			$payment_methods = array();
199
+			foreach ($classnames as $classname) {
200
+				$payment_methods[] = $this->payment_method_class_from_type($classname);
201
+			}
202
+			return $payment_methods;
203
+		} else {
204
+			return array_keys($this->_payment_method_types);
205
+		}
206
+	}
207
+
208
+
209
+
210
+	/**
211
+	 * Gets an object of each payment method type, none of which are bound to a
212
+	 * payment method instance
213
+	 *
214
+	 * @param boolean $force_recheck whether to force re-checking for new payment method types
215
+	 * @return EE_PMT_Base[]
216
+	 */
217
+	public function payment_method_types($force_recheck = false)
218
+	{
219
+		$this->maybe_register_payment_methods($force_recheck);
220
+		$pmt_objs = array();
221
+		foreach ($this->payment_method_type_names(true) as $classname) {
222
+			$pmt_objs[] = new $classname;
223
+		}
224
+		return $pmt_objs;
225
+	}
226
+
227
+
228
+
229
+	/**
230
+	 * Changes the payment method's classname into the payment method type's name
231
+	 * (as used on the payment method's table's PMD_type field)
232
+	 *
233
+	 * @param string $classname
234
+	 * @return string
235
+	 */
236
+	public function payment_method_type_sans_class_prefix($classname)
237
+	{
238
+		return str_replace("EE_PMT_", "", $classname);
239
+	}
240
+
241
+
242
+
243
+	/**
244
+	 * Does the opposite of payment-method_type_sans_prefix
245
+	 *
246
+	 * @param string $type
247
+	 * @return string
248
+	 */
249
+	public function payment_method_class_from_type($type)
250
+	{
251
+		$this->maybe_register_payment_methods();
252
+		return "EE_PMT_" . $type;
253
+	}
254
+
255
+
256
+
257
+	/**
258
+	 * Activates a payment method of the given type.
259
+	 *
260
+	 * @param string $payment_method_type the PMT_type; for EE_PMT_Invoice this would be 'Invoice'
261
+	 * @return \EE_Payment_Method
262
+	 * @throws \EE_Error
263
+	 */
264
+	public function activate_a_payment_method_of_type($payment_method_type)
265
+	{
266
+		$payment_method = EEM_Payment_Method::instance()->get_one_of_type($payment_method_type);
267
+		if ( ! $payment_method instanceof EE_Payment_Method) {
268
+			$pm_type_class = $this->payment_method_class_from_type($payment_method_type);
269
+			if (class_exists($pm_type_class)) {
270
+				/** @var $pm_type_obj EE_PMT_Base */
271
+				$pm_type_obj = new $pm_type_class;
272
+				$payment_method = EEM_Payment_Method::instance()->get_one_by_slug($pm_type_obj->system_name());
273
+				if ( ! $payment_method) {
274
+					$payment_method = $this->create_payment_method_of_type($pm_type_obj);
275
+				}
276
+				$payment_method->set_type($payment_method_type);
277
+				$this->initialize_payment_method($payment_method);
278
+			} else {
279
+				throw new EE_Error(
280
+					sprintf(
281
+						__('There is no payment method of type %1$s, so it could not be activated', 'event_espresso'),
282
+						$pm_type_class)
283
+				);
284
+			}
285
+		}
286
+		$payment_method->set_active();
287
+		$payment_method->save();
288
+		if ($payment_method->type() === 'Invoice') {
289
+			/** @type EE_Message_Resource_Manager $message_resource_manager */
290
+			$message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
291
+			$message_resource_manager->ensure_message_type_is_active('invoice', 'html');
292
+			$message_resource_manager->ensure_messenger_is_active('pdf');
293
+			EE_Error::add_persistent_admin_notice(
294
+				'invoice_pm_requirements_notice',
295
+				sprintf(
296
+					__('The Invoice payment method has been activated. It requires the invoice message type, html messenger, and pdf messenger be activated as well for the %1$smessages system%2$s, so it has been automatically verified that they are also active.',
297
+						'event_espresso'),
298
+					'<a href="' . admin_url('admin.php?page=espresso_messages') . '">',
299
+					'</a>'
300
+				),
301
+				true
302
+			);
303
+		}
304
+		return $payment_method;
305
+	}
306
+
307
+
308
+
309
+	/**
310
+	 * Creates a payment method of the specified type. Does not save it.
311
+	 *
312
+	 * @global WP_User    $current_user
313
+	 * @param EE_PMT_Base $pm_type_obj
314
+	 * @return EE_Payment_Method
315
+	 * @throws \EE_Error
316
+	 */
317
+	public function create_payment_method_of_type($pm_type_obj)
318
+	{
319
+		global $current_user;
320
+		$payment_method = EE_Payment_Method::new_instance(
321
+			array(
322
+				'PMD_type'       => $pm_type_obj->system_name(),
323
+				'PMD_name'       => $pm_type_obj->pretty_name(),
324
+				'PMD_admin_name' => $pm_type_obj->pretty_name(),
325
+				'PMD_slug'       => $pm_type_obj->system_name(),//automatically converted to slug
326
+				'PMD_wp_user'    => $current_user->ID,
327
+				'PMD_order'      => EEM_Payment_Method::instance()->count(
328
+						array(array('PMD_type' => array('!=', 'Admin_Only')))
329
+					) * 10,
330
+			)
331
+		);
332
+		return $payment_method;
333
+	}
334
+
335
+
336
+
337
+	/**
338
+	 * Sets the initial payment method properties (including extra meta)
339
+	 *
340
+	 * @param EE_Payment_Method $payment_method
341
+	 * @return EE_Payment_Method
342
+	 * @throws \EE_Error
343
+	 */
344
+	public function initialize_payment_method($payment_method)
345
+	{
346
+		$pm_type_obj = $payment_method->type_obj();
347
+		$payment_method->set_description($pm_type_obj->default_description());
348
+		if ( ! $payment_method->button_url()) {
349
+			$payment_method->set_button_url($pm_type_obj->default_button_url());
350
+		}
351
+		//now add setup its default extra meta properties
352
+		$extra_metas = $pm_type_obj->settings_form()->extra_meta_inputs();
353
+		if ( ! empty($extra_metas)) {
354
+			//verify the payment method has an ID before adding extra meta
355
+			if ( ! $payment_method->ID()) {
356
+				$payment_method->save();
357
+			}
358
+			foreach ($extra_metas as $meta_name => $input) {
359
+				$payment_method->update_extra_meta($meta_name, $input->raw_value());
360
+			}
361
+		}
362
+		return $payment_method;
363
+	}
364
+
365
+
366
+
367
+	/**
368
+	 * Makes sure the payment method is related to the specified payment method
369
+	 * @deprecated in 4.9.40 because the currency payment method table is being deprecated
370
+	 * @param EE_Payment_Method $payment_method
371
+	 * @return EE_Payment_Method
372
+	 * @throws \EE_Error
373
+	 */
374
+	public function set_usable_currencies_on_payment_method($payment_method)
375
+	{
376
+		EE_Error::doing_it_wrong(
377
+			'EE_Payment_Method_Manager::set_usable_currencies_on_payment_method',
378
+				esc_html__('We no longer define what currencies are usable by payment methods. Its not used nor efficient.', 'event_espresso'),
379
+			'4.9.40');
380
+		return $payment_method;
381
+	}
382
+
383
+
384
+
385
+	/**
386
+	 * Deactivates a payment method of the given payment method slug.
387
+	 *
388
+	 * @param string $payment_method_slug The slug for the payment method to deactivate.
389
+	 * @return int count of rows updated.
390
+	 */
391
+	public function deactivate_payment_method($payment_method_slug)
392
+	{
393
+		EE_Log::instance()->log(
394
+			__FILE__,
395
+			__FUNCTION__,
396
+			sprintf(
397
+				__('Payment method with slug %1$s is being deactivated by site admin', 'event_espresso'),
398
+				$payment_method_slug
399
+			),
400
+			'payment_method_change'
401
+		);
402
+		$count_updated = EEM_Payment_Method::instance()->update(
403
+			array('PMD_scope' => array()),
404
+			array(array('PMD_slug' => $payment_method_slug))
405
+		);
406
+		return $count_updated;
407
+	}
408
+
409
+
410
+
411
+	/**
412
+	 * callback for FHEE__EE_Capabilities__init_caps_map__caps filter to add dynamic payment method
413
+	 * access caps.
414
+	 *
415
+	 * @param array $caps capabilities being filtered
416
+	 * @return array
417
+	 */
418
+	public function add_payment_method_caps($caps)
419
+	{
420
+		/* add dynamic caps from payment methods
421 421
          * at the time of writing, october 20 2014, these are the caps added:
422 422
          * ee_payment_method_admin_only
423 423
          * ee_payment_method_aim
@@ -431,10 +431,10 @@  discard block
 block discarded – undo
431 431
          * their related capability automatically added too, so long as they are
432 432
          * registered properly using EE_Register_Payment_Method::register()
433 433
          */
434
-        foreach ($this->payment_method_types() as $payment_method_type_obj) {
435
-            $caps['administrator'][] = $payment_method_type_obj->cap_name();
436
-        }
437
-        return $caps;
438
-    }
434
+		foreach ($this->payment_method_types() as $payment_method_type_obj) {
435
+			$caps['administrator'][] = $payment_method_type_obj->cap_name();
436
+		}
437
+		return $caps;
438
+	}
439 439
 
440 440
 }
Please login to merge, or discard this patch.
4_6_0_stages/EE_DMS_4_6_0_payment_method_currencies.dmsstage.php 1 patch
Spacing   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if (!defined('EVENT_ESPRESSO_VERSION')) {
3
+if ( ! defined('EVENT_ESPRESSO_VERSION')) {
4 4
 	exit('No direct script access allowed');
5 5
 }
6 6
 
@@ -14,7 +14,7 @@  discard block
 block discarded – undo
14 14
  * @deprecated in 4.9.40 because the currency payment method table has been deprecated
15 15
  *
16 16
  */
17
-class EE_DMS_4_6_0_payment_method_currencies extends EE_Data_Migration_Script_Stage{
17
+class EE_DMS_4_6_0_payment_method_currencies extends EE_Data_Migration_Script_Stage {
18 18
 	protected $_currency_table_name;
19 19
 	protected $_currency_payment_method_table_name;
20 20
 	protected $_payment_method_table_name;
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
 	);
91 91
 	public function __construct() {
92 92
 		global $wpdb;
93
-		$this->_pretty_name = __( 'Payment Method Currencies', 'event_espresso' );
93
+		$this->_pretty_name = __('Payment Method Currencies', 'event_espresso');
94 94
 		$this->_payment_method_table_name = $wpdb->prefix.'esp_payment_method';
95 95
 		$this->_currency_payment_method_table_name = $wpdb->prefix.'esp_currency_payment_method';
96 96
 		$this->_currency_table_name = $wpdb->prefix.'esp_currency';
@@ -99,8 +99,8 @@  discard block
 block discarded – undo
99 99
 
100 100
 	protected function _count_records_to_migrate() {
101 101
 		$count = 0;
102
-		foreach($this->_gateway_currencies as $currencies){
103
-			if( $currencies == 'all'){
102
+		foreach ($this->_gateway_currencies as $currencies) {
103
+			if ($currencies == 'all') {
104 104
 				$currencies = $this->_get_all_currencies();
105 105
 			}
106 106
 			$count += count($currencies);
@@ -110,20 +110,20 @@  discard block
 block discarded – undo
110 110
 
111 111
 
112 112
 
113
-	protected function _migration_step( $num_items_to_migrate = 50 ) {
113
+	protected function _migration_step($num_items_to_migrate = 50) {
114 114
 		$items_actually_migrated = 0;
115 115
 		$relations_to_add_this_step = $this->_gather_relations_to_add($num_items_to_migrate);
116
-		foreach($relations_to_add_this_step as $pm_slug => $currencies){
116
+		foreach ($relations_to_add_this_step as $pm_slug => $currencies) {
117 117
 
118
-			$id = $this->get_migration_script()->get_mapping_new_pk( 'EE_Gateway_Config', $pm_slug, $this->_payment_method_table_name );
119
-			foreach( $currencies as $currency ){
120
-				if( $id ){
121
-					$this->_add_currency_relations( $id, $currency );
118
+			$id = $this->get_migration_script()->get_mapping_new_pk('EE_Gateway_Config', $pm_slug, $this->_payment_method_table_name);
119
+			foreach ($currencies as $currency) {
120
+				if ($id) {
121
+					$this->_add_currency_relations($id, $currency);
122 122
 				}
123 123
 				$items_actually_migrated++;
124 124
 			}
125 125
 		}
126
-		if($this->count_records_migrated() + $items_actually_migrated >= $this->count_records_to_migrate()){
126
+		if ($this->count_records_migrated() + $items_actually_migrated >= $this->count_records_to_migrate()) {
127 127
 			$this->set_completed();
128 128
 		}
129 129
 		return $items_actually_migrated;
@@ -133,14 +133,14 @@  discard block
 block discarded – undo
133 133
 		$relations_to_add_this_step = array();
134 134
 		$migrate_up_to_count = $this->count_records_migrated() + $num_items_to_migrate;
135 135
 		$iterator = 0;
136
-		foreach($this->_gateway_currencies as $pm_slug => $currencies){
137
-			if( $currencies == 'all' ){
136
+		foreach ($this->_gateway_currencies as $pm_slug => $currencies) {
137
+			if ($currencies == 'all') {
138 138
 				$currencies = $this->_get_all_currencies();
139 139
 			}
140
-			foreach($currencies as $currency_code){
141
-				if( $this->count_records_migrated() <= $iterator &&
142
-						$iterator < $migrate_up_to_count ){
143
-					$relations_to_add_this_step[ $pm_slug ] [] = $currency_code;
140
+			foreach ($currencies as $currency_code) {
141
+				if ($this->count_records_migrated() <= $iterator &&
142
+						$iterator < $migrate_up_to_count) {
143
+					$relations_to_add_this_step[$pm_slug] [] = $currency_code;
144 144
 				}
145 145
 				$iterator++;
146 146
 			}
@@ -151,7 +151,7 @@  discard block
 block discarded – undo
151 151
 	 * Gets all the currency codes in the database
152 152
 	 * @return array
153 153
 	 */
154
-	private function _get_all_currencies(){
154
+	private function _get_all_currencies() {
155 155
 		global $wpdb;
156 156
 		$currencies = $wpdb->get_col("SELECT CUR_code FROM {$this->_currency_table_name}");
157 157
 		return $currencies;
@@ -162,7 +162,7 @@  discard block
 block discarded – undo
162 162
 	 * @param int $id
163 163
 	 * @param string $gateway_slug
164 164
 	 */
165
-	private function _add_currency_relations($pm_id,$currency_code){
165
+	private function _add_currency_relations($pm_id, $currency_code) {
166 166
 		global $wpdb;
167 167
 		$cur_pm_relation = array(
168 168
 					'CUR_code'=>$currency_code,
@@ -171,11 +171,11 @@  discard block
 block discarded – undo
171 171
 		$success = $wpdb->insert($this->_currency_payment_method_table_name,
172 172
 				$cur_pm_relation,
173 173
 				array(
174
-					'%s',//CUR_code
175
-					'%d',//PMD_ID
174
+					'%s', //CUR_code
175
+					'%d', //PMD_ID
176 176
 				));
177
-		if( ! $success ){
178
-			$this->add_error( sprintf( __( 'Could not add currency relation %s because %s', "event_espresso" ), wp_json_encode( $cur_pm_relation ), $wpdb->last_error ) );
177
+		if ( ! $success) {
178
+			$this->add_error(sprintf(__('Could not add currency relation %s because %s', "event_espresso"), wp_json_encode($cur_pm_relation), $wpdb->last_error));
179 179
 		}
180 180
 	}
181 181
 }
Please login to merge, or discard this patch.
core/data_migration_scripts/EE_DMS_Core_4_9_0.dms.php 1 patch
Indentation   +282 added lines, -282 removed lines patch added patch discarded remove patch
@@ -12,9 +12,9 @@  discard block
 block discarded – undo
12 12
 $stages = glob(EE_CORE . 'data_migration_scripts/4_9_0_stages/*');
13 13
 $class_to_filepath = array();
14 14
 foreach ($stages as $filepath) {
15
-    $matches = array();
16
-    preg_match('~4_9_0_stages/(.*).dmsstage.php~', $filepath, $matches);
17
-    $class_to_filepath[$matches[1]] = $filepath;
15
+	$matches = array();
16
+	preg_match('~4_9_0_stages/(.*).dmsstage.php~', $filepath, $matches);
17
+	$class_to_filepath[$matches[1]] = $filepath;
18 18
 }
19 19
 //give addons a chance to autoload their stages too
20 20
 $class_to_filepath = apply_filters('FHEE__EE_DMS_4_9_0__autoloaded_stages', $class_to_filepath);
@@ -33,68 +33,68 @@  discard block
 block discarded – undo
33 33
 class EE_DMS_Core_4_9_0 extends EE_Data_Migration_Script_Base
34 34
 {
35 35
 
36
-    /**
37
-     * return EE_DMS_Core_4_9_0
38
-     *
39
-     * @param TableManager  $table_manager
40
-     * @param TableAnalysis $table_analysis
41
-     */
42
-    public function __construct(TableManager $table_manager = null, TableAnalysis $table_analysis = null)
43
-    {
44
-        $this->_pretty_name = esc_html__("Data Update to Event Espresso 4.9.0", "event_espresso");
45
-        $this->_priority = 10;
46
-        $this->_migration_stages = array(
47
-            new EE_DMS_4_9_0_Email_System_Question(),
48
-            new EE_DMS_4_9_0_Answers_With_No_Registration(),
49
-        );
50
-        parent::__construct($table_manager, $table_analysis);
51
-    }
36
+	/**
37
+	 * return EE_DMS_Core_4_9_0
38
+	 *
39
+	 * @param TableManager  $table_manager
40
+	 * @param TableAnalysis $table_analysis
41
+	 */
42
+	public function __construct(TableManager $table_manager = null, TableAnalysis $table_analysis = null)
43
+	{
44
+		$this->_pretty_name = esc_html__("Data Update to Event Espresso 4.9.0", "event_espresso");
45
+		$this->_priority = 10;
46
+		$this->_migration_stages = array(
47
+			new EE_DMS_4_9_0_Email_System_Question(),
48
+			new EE_DMS_4_9_0_Answers_With_No_Registration(),
49
+		);
50
+		parent::__construct($table_manager, $table_analysis);
51
+	}
52 52
 
53 53
 
54 54
 
55
-    /**
56
-     * Whether to migrate or not.
57
-     *
58
-     * @param array $version_array
59
-     * @return bool
60
-     */
61
-    public function can_migrate_from_version($version_array)
62
-    {
63
-        $version_string = $version_array['Core'];
64
-        if (version_compare($version_string, '4.9.0', '<=') && version_compare($version_string, '4.8.0', '>=')) {
65
-            //			echo "$version_string can be migrated from";
66
-            return true;
67
-        } elseif ( ! $version_string) {
68
-            //			echo "no version string provided: $version_string";
69
-            //no version string provided... this must be pre 4.3
70
-            return false;//changed mind. dont want people thinking they should migrate yet because they cant
71
-        } else {
72
-            //			echo "$version_string doesnt apply";
73
-            return false;
74
-        }
75
-    }
55
+	/**
56
+	 * Whether to migrate or not.
57
+	 *
58
+	 * @param array $version_array
59
+	 * @return bool
60
+	 */
61
+	public function can_migrate_from_version($version_array)
62
+	{
63
+		$version_string = $version_array['Core'];
64
+		if (version_compare($version_string, '4.9.0', '<=') && version_compare($version_string, '4.8.0', '>=')) {
65
+			//			echo "$version_string can be migrated from";
66
+			return true;
67
+		} elseif ( ! $version_string) {
68
+			//			echo "no version string provided: $version_string";
69
+			//no version string provided... this must be pre 4.3
70
+			return false;//changed mind. dont want people thinking they should migrate yet because they cant
71
+		} else {
72
+			//			echo "$version_string doesnt apply";
73
+			return false;
74
+		}
75
+	}
76 76
 
77 77
 
78 78
 
79
-    /**
80
-     * @return bool
81
-     */
82
-    public function schema_changes_before_migration()
83
-    {
84
-        require_once(EE_HELPERS . 'EEH_Activation.helper.php');
85
-        $now_in_mysql = current_time('mysql', true);
86
-        $table_name = 'esp_answer';
87
-        $sql = " ANS_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
79
+	/**
80
+	 * @return bool
81
+	 */
82
+	public function schema_changes_before_migration()
83
+	{
84
+		require_once(EE_HELPERS . 'EEH_Activation.helper.php');
85
+		$now_in_mysql = current_time('mysql', true);
86
+		$table_name = 'esp_answer';
87
+		$sql = " ANS_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
88 88
 					REG_ID int(10) unsigned NOT NULL,
89 89
 					QST_ID int(10) unsigned NOT NULL,
90 90
 					ANS_value text NOT NULL,
91 91
 					PRIMARY KEY  (ANS_ID),
92 92
 					KEY REG_ID (REG_ID),
93 93
 					KEY QST_ID (QST_ID)";
94
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
95
-        $table_name = 'esp_attendee_meta';
96
-        $this->_get_table_manager()->dropIndexIfSizeNot($table_name, 'ATT_email');
97
-        $sql = "ATTM_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
94
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
95
+		$table_name = 'esp_attendee_meta';
96
+		$this->_get_table_manager()->dropIndexIfSizeNot($table_name, 'ATT_email');
97
+		$sql = "ATTM_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
98 98
 				ATT_ID bigint(20) unsigned NOT NULL,
99 99
 				ATT_fname varchar(45) NOT NULL,
100 100
 				ATT_lname varchar(45) NOT NULL,
@@ -111,9 +111,9 @@  discard block
 block discarded – undo
111 111
 				KEY ATT_email (ATT_email(191)),
112 112
 				KEY ATT_lname (ATT_lname),
113 113
 				KEY ATT_fname (ATT_fname)";
114
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
115
-        $table_name = 'esp_checkin';
116
-        $sql = "CHK_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
114
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
115
+		$table_name = 'esp_checkin';
116
+		$sql = "CHK_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
117 117
 				REG_ID int(10) unsigned NOT NULL,
118 118
 				DTT_ID int(10) unsigned NOT NULL,
119 119
 				CHK_in tinyint(1) unsigned NOT NULL DEFAULT 1,
@@ -121,9 +121,9 @@  discard block
 block discarded – undo
121 121
 				PRIMARY KEY  (CHK_ID),
122 122
 				KEY REG_ID (REG_ID),
123 123
 				KEY DTT_ID (DTT_ID)";
124
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
125
-        $table_name = 'esp_country';
126
-        $sql = "CNT_ISO varchar(2) NOT NULL,
124
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
125
+		$table_name = 'esp_country';
126
+		$sql = "CNT_ISO varchar(2) NOT NULL,
127 127
 				CNT_ISO3 varchar(3) NOT NULL,
128 128
 				RGN_ID tinyint(3) unsigned DEFAULT NULL,
129 129
 				CNT_name varchar(45) NOT NULL,
@@ -139,29 +139,29 @@  discard block
 block discarded – undo
139 139
 				CNT_is_EU tinyint(1) DEFAULT '0',
140 140
 				CNT_active tinyint(1) DEFAULT '0',
141 141
 				PRIMARY KEY  (CNT_ISO)";
142
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
143
-        $table_name = 'esp_currency';
144
-        $sql = "CUR_code varchar(6) NOT NULL,
142
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
143
+		$table_name = 'esp_currency';
144
+		$sql = "CUR_code varchar(6) NOT NULL,
145 145
 				CUR_single varchar(45) DEFAULT 'dollar',
146 146
 				CUR_plural varchar(45) DEFAULT 'dollars',
147 147
 				CUR_sign varchar(45) DEFAULT '$',
148 148
 				CUR_dec_plc varchar(1) NOT NULL DEFAULT '2',
149 149
 				CUR_active tinyint(1) DEFAULT '0',
150 150
 				PRIMARY KEY  (CUR_code)";
151
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
152
-        //note: although this table is no longer in use,
153
-        //it hasn't been removed because then queries to the model will have errors.
154
-        //but you should expect this table and its corresponding model to be removed in
155
-        //the next few months
156
-        $table_name = 'esp_currency_payment_method';
157
-        $sql = "CPM_ID int(11) NOT NULL AUTO_INCREMENT,
151
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
152
+		//note: although this table is no longer in use,
153
+		//it hasn't been removed because then queries to the model will have errors.
154
+		//but you should expect this table and its corresponding model to be removed in
155
+		//the next few months
156
+		$table_name = 'esp_currency_payment_method';
157
+		$sql = "CPM_ID int(11) NOT NULL AUTO_INCREMENT,
158 158
 				CUR_code varchar(6) NOT NULL,
159 159
 				PMD_ID int(11) NOT NULL,
160 160
 				PRIMARY KEY  (CPM_ID),
161 161
 				KEY PMD_ID (PMD_ID)";
162
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB ');
163
-        $table_name = 'esp_datetime';
164
-        $sql = "DTT_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
162
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB ');
163
+		$table_name = 'esp_datetime';
164
+		$sql = "DTT_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
165 165
 				EVT_ID bigint(20) unsigned NOT NULL,
166 166
 				DTT_name varchar(255) NOT NULL DEFAULT '',
167 167
 				DTT_description text NOT NULL,
@@ -178,25 +178,25 @@  discard block
 block discarded – undo
178 178
 				KEY DTT_EVT_start (DTT_EVT_start),
179 179
 				KEY EVT_ID (EVT_ID),
180 180
 				KEY DTT_is_primary (DTT_is_primary)";
181
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
182
-        $table_name = "esp_datetime_ticket";
183
-        $sql = "DTK_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
181
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
182
+		$table_name = "esp_datetime_ticket";
183
+		$sql = "DTK_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
184 184
 				DTT_ID int(10) unsigned NOT NULL,
185 185
 				TKT_ID int(10) unsigned NOT NULL,
186 186
 				PRIMARY KEY  (DTK_ID),
187 187
 				KEY DTT_ID (DTT_ID),
188 188
 				KEY TKT_ID (TKT_ID)";
189
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
190
-        $table_name = 'esp_event_message_template';
191
-        $sql = "EMT_ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
189
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
190
+		$table_name = 'esp_event_message_template';
191
+		$sql = "EMT_ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
192 192
 				EVT_ID bigint(20) unsigned NOT NULL DEFAULT 0,
193 193
 				GRP_ID int(10) unsigned NOT NULL DEFAULT 0,
194 194
 				PRIMARY KEY  (EMT_ID),
195 195
 				KEY EVT_ID (EVT_ID),
196 196
 				KEY GRP_ID (GRP_ID)";
197
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
198
-        $table_name = 'esp_event_meta';
199
-        $sql = "EVTM_ID int(10) NOT NULL AUTO_INCREMENT,
197
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
198
+		$table_name = 'esp_event_meta';
199
+		$sql = "EVTM_ID int(10) NOT NULL AUTO_INCREMENT,
200 200
 				EVT_ID bigint(20) unsigned NOT NULL,
201 201
 				EVT_display_desc tinyint(1) unsigned NOT NULL DEFAULT 1,
202 202
 				EVT_display_ticket_selector tinyint(1) unsigned NOT NULL DEFAULT 1,
@@ -211,34 +211,34 @@  discard block
 block discarded – undo
211 211
 				EVT_donations tinyint(1) NULL,
212 212
 				PRIMARY KEY  (EVTM_ID),
213 213
 				KEY EVT_ID (EVT_ID)";
214
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
215
-        $table_name = 'esp_event_question_group';
216
-        $sql = "EQG_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
214
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
215
+		$table_name = 'esp_event_question_group';
216
+		$sql = "EQG_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
217 217
 				EVT_ID bigint(20) unsigned NOT NULL,
218 218
 				QSG_ID int(10) unsigned NOT NULL,
219 219
 				EQG_primary tinyint(1) unsigned NOT NULL DEFAULT 0,
220 220
 				PRIMARY KEY  (EQG_ID),
221 221
 				KEY EVT_ID (EVT_ID),
222 222
 				KEY QSG_ID (QSG_ID)";
223
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
224
-        $table_name = 'esp_event_venue';
225
-        $sql = "EVV_ID int(11) NOT NULL AUTO_INCREMENT,
223
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
224
+		$table_name = 'esp_event_venue';
225
+		$sql = "EVV_ID int(11) NOT NULL AUTO_INCREMENT,
226 226
 				EVT_ID bigint(20) unsigned NOT NULL,
227 227
 				VNU_ID bigint(20) unsigned NOT NULL,
228 228
 				EVV_primary tinyint(1) unsigned NOT NULL DEFAULT 0,
229 229
 				PRIMARY KEY  (EVV_ID)";
230
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
231
-        $table_name = 'esp_extra_meta';
232
-        $sql = "EXM_ID int(11) NOT NULL AUTO_INCREMENT,
230
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
231
+		$table_name = 'esp_extra_meta';
232
+		$sql = "EXM_ID int(11) NOT NULL AUTO_INCREMENT,
233 233
 				OBJ_ID int(11) DEFAULT NULL,
234 234
 				EXM_type varchar(45) DEFAULT NULL,
235 235
 				EXM_key varchar(45) DEFAULT NULL,
236 236
 				EXM_value text,
237 237
 				PRIMARY KEY  (EXM_ID),
238 238
 				KEY EXM_type (EXM_type,OBJ_ID,EXM_key)";
239
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
240
-        $table_name = 'esp_extra_join';
241
-        $sql = "EXJ_ID int(11) NOT NULL AUTO_INCREMENT,
239
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
240
+		$table_name = 'esp_extra_join';
241
+		$sql = "EXJ_ID int(11) NOT NULL AUTO_INCREMENT,
242 242
 				EXJ_first_model_id varchar(6) NOT NULL,
243 243
 				EXJ_first_model_name varchar(20) NOT NULL,
244 244
 				EXJ_second_model_id varchar(6) NOT NULL,
@@ -246,9 +246,9 @@  discard block
 block discarded – undo
246 246
 				PRIMARY KEY  (EXJ_ID),
247 247
 				KEY first_model (EXJ_first_model_name,EXJ_first_model_id),
248 248
 				KEY second_model (EXJ_second_model_name,EXJ_second_model_id)";
249
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB ');
250
-        $table_name = 'esp_line_item';
251
-        $sql = "LIN_ID int(11) NOT NULL AUTO_INCREMENT,
249
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB ');
250
+		$table_name = 'esp_line_item';
251
+		$sql = "LIN_ID int(11) NOT NULL AUTO_INCREMENT,
252 252
 				LIN_code varchar(245) NOT NULL DEFAULT '',
253 253
 				TXN_ID int(11) DEFAULT NULL,
254 254
 				LIN_name varchar(245) NOT NULL DEFAULT '',
@@ -267,9 +267,9 @@  discard block
 block discarded – undo
267 267
 				PRIMARY KEY  (LIN_ID),
268 268
 				KEY LIN_code (LIN_code(191)),
269 269
 				KEY TXN_ID (TXN_ID)";
270
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
271
-        $table_name = 'esp_log';
272
-        $sql = "LOG_ID int(11) NOT NULL AUTO_INCREMENT,
270
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
271
+		$table_name = 'esp_log';
272
+		$sql = "LOG_ID int(11) NOT NULL AUTO_INCREMENT,
273 273
 				LOG_time datetime DEFAULT NULL,
274 274
 				OBJ_ID varchar(45) DEFAULT NULL,
275 275
 				OBJ_type varchar(45) DEFAULT NULL,
@@ -280,12 +280,12 @@  discard block
 block discarded – undo
280 280
 				KEY LOG_time (LOG_time),
281 281
 				KEY OBJ (OBJ_type,OBJ_ID),
282 282
 				KEY LOG_type (LOG_type)";
283
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
284
-        $table_name = 'esp_message';
285
-        $this->_get_table_manager()->dropIndexIfSizeNot($table_name, 'MSG_to');
286
-        $this->_get_table_manager()->dropIndexIfSizeNot($table_name, 'MSG_from');
287
-        $this->_get_table_manager()->dropIndexIfSizeNot($table_name, 'MSG_subject');
288
-        $sql = "MSG_ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
283
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
284
+		$table_name = 'esp_message';
285
+		$this->_get_table_manager()->dropIndexIfSizeNot($table_name, 'MSG_to');
286
+		$this->_get_table_manager()->dropIndexIfSizeNot($table_name, 'MSG_from');
287
+		$this->_get_table_manager()->dropIndexIfSizeNot($table_name, 'MSG_subject');
288
+		$sql = "MSG_ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
289 289
 				GRP_ID int(10) unsigned NULL,
290 290
 				MSG_token varchar(255) NULL,
291 291
 				TXN_ID int(10) unsigned NULL,
@@ -317,18 +317,18 @@  discard block
 block discarded – undo
317 317
 				KEY STS_ID (STS_ID),
318 318
 				KEY MSG_created (MSG_created),
319 319
 				KEY MSG_modified (MSG_modified)";
320
-        $this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
321
-        $table_name = 'esp_message_template';
322
-        $sql = "MTP_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
320
+		$this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
321
+		$table_name = 'esp_message_template';
322
+		$sql = "MTP_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
323 323
 				GRP_ID int(10) unsigned NOT NULL,
324 324
 				MTP_context varchar(50) NOT NULL,
325 325
 				MTP_template_field varchar(30) NOT NULL,
326 326
 				MTP_content text NOT NULL,
327 327
 				PRIMARY KEY  (MTP_ID),
328 328
 				KEY GRP_ID (GRP_ID)";
329
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
330
-        $table_name = 'esp_message_template_group';
331
-        $sql = "GRP_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
329
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
330
+		$table_name = 'esp_message_template_group';
331
+		$sql = "GRP_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
332 332
 				MTP_user_id int(10) NOT NULL DEFAULT '1',
333 333
 				MTP_name varchar(245) NOT NULL DEFAULT '',
334 334
 				MTP_description varchar(245) NOT NULL DEFAULT '',
@@ -340,9 +340,9 @@  discard block
 block discarded – undo
340 340
 				MTP_is_active tinyint(1) NOT NULL DEFAULT '1',
341 341
 				PRIMARY KEY  (GRP_ID),
342 342
 				KEY MTP_user_id (MTP_user_id)";
343
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
344
-        $table_name = 'esp_payment';
345
-        $sql = "PAY_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
343
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
344
+		$table_name = 'esp_payment';
345
+		$sql = "PAY_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
346 346
 				TXN_ID int(10) unsigned DEFAULT NULL,
347 347
 				STS_ID varchar(3) DEFAULT NULL,
348 348
 				PAY_timestamp datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
@@ -359,9 +359,9 @@  discard block
 block discarded – undo
359 359
 				PRIMARY KEY  (PAY_ID),
360 360
 				KEY PAY_timestamp (PAY_timestamp),
361 361
 				KEY TXN_ID (TXN_ID)";
362
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
363
-        $table_name = 'esp_payment_method';
364
-        $sql = "PMD_ID int(11) NOT NULL AUTO_INCREMENT,
362
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
363
+		$table_name = 'esp_payment_method';
364
+		$sql = "PMD_ID int(11) NOT NULL AUTO_INCREMENT,
365 365
 				PMD_type varchar(124) DEFAULT NULL,
366 366
 				PMD_name varchar(255) DEFAULT NULL,
367 367
 				PMD_desc text,
@@ -377,24 +377,24 @@  discard block
 block discarded – undo
377 377
 				PRIMARY KEY  (PMD_ID),
378 378
 				UNIQUE KEY PMD_slug_UNIQUE (PMD_slug),
379 379
 				KEY PMD_type (PMD_type)";
380
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB ');
381
-        $table_name = "esp_ticket_price";
382
-        $sql = "TKP_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
380
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB ');
381
+		$table_name = "esp_ticket_price";
382
+		$sql = "TKP_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
383 383
 				TKT_ID int(10) unsigned NOT NULL,
384 384
 				PRC_ID int(10) unsigned NOT NULL,
385 385
 				PRIMARY KEY  (TKP_ID),
386 386
 				KEY TKT_ID (TKT_ID),
387 387
 				KEY PRC_ID (PRC_ID)";
388
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
389
-        $table_name = "esp_ticket_template";
390
-        $sql = "TTM_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
388
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
389
+		$table_name = "esp_ticket_template";
390
+		$sql = "TTM_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
391 391
 				TTM_name varchar(45) NOT NULL,
392 392
 				TTM_description text,
393 393
 				TTM_file varchar(45),
394 394
 				PRIMARY KEY  (TTM_ID)";
395
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
396
-        $table_name = 'esp_question';
397
-        $sql = 'QST_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
395
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
396
+		$table_name = 'esp_question';
397
+		$sql = 'QST_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
398 398
 				QST_display_text text NOT NULL,
399 399
 				QST_admin_label varchar(255) NOT NULL,
400 400
 				QST_system varchar(25) DEFAULT NULL,
@@ -408,18 +408,18 @@  discard block
 block discarded – undo
408 408
 				QST_deleted tinyint(2) unsigned NOT NULL DEFAULT 0,
409 409
 				PRIMARY KEY  (QST_ID),
410 410
 				KEY QST_order (QST_order)';
411
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
412
-        $table_name = 'esp_question_group_question';
413
-        $sql = "QGQ_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
411
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
412
+		$table_name = 'esp_question_group_question';
413
+		$sql = "QGQ_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
414 414
 				QSG_ID int(10) unsigned NOT NULL,
415 415
 				QST_ID int(10) unsigned NOT NULL,
416 416
 				QGQ_order int(10) unsigned NOT NULL DEFAULT 0,
417 417
 				PRIMARY KEY  (QGQ_ID),
418 418
 				KEY QST_ID (QST_ID),
419 419
 				KEY QSG_ID_order (QSG_ID,QGQ_order)";
420
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
421
-        $table_name = 'esp_question_option';
422
-        $sql = "QSO_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
420
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
421
+		$table_name = 'esp_question_option';
422
+		$sql = "QSO_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
423 423
 				QSO_value varchar(255) NOT NULL,
424 424
 				QSO_desc text NOT NULL,
425 425
 				QST_ID int(10) unsigned NOT NULL,
@@ -429,9 +429,9 @@  discard block
 block discarded – undo
429 429
 				PRIMARY KEY  (QSO_ID),
430 430
 				KEY QST_ID (QST_ID),
431 431
 				KEY QSO_order (QSO_order)";
432
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
433
-        $table_name = 'esp_registration';
434
-        $sql = "REG_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
432
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
433
+		$table_name = 'esp_registration';
434
+		$sql = "REG_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
435 435
 				EVT_ID bigint(20) unsigned NOT NULL,
436 436
 				ATT_ID bigint(20) unsigned NOT NULL,
437 437
 				TXN_ID int(10) unsigned NOT NULL,
@@ -455,18 +455,18 @@  discard block
 block discarded – undo
455 455
 				KEY TKT_ID (TKT_ID),
456 456
 				KEY EVT_ID (EVT_ID),
457 457
 				KEY STS_ID (STS_ID)";
458
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
459
-        $table_name = 'esp_registration_payment';
460
-        $sql = "RPY_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
458
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
459
+		$table_name = 'esp_registration_payment';
460
+		$sql = "RPY_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
461 461
 					  REG_ID int(10) unsigned NOT NULL,
462 462
 					  PAY_ID int(10) unsigned NULL,
463 463
 					  RPY_amount decimal(12,3) NOT NULL DEFAULT '0.00',
464 464
 					  PRIMARY KEY  (RPY_ID),
465 465
 					  KEY REG_ID (REG_ID),
466 466
 					  KEY PAY_ID (PAY_ID)";
467
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
468
-        $table_name = 'esp_state';
469
-        $sql = "STA_ID smallint(5) unsigned NOT NULL AUTO_INCREMENT,
467
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
468
+		$table_name = 'esp_state';
469
+		$sql = "STA_ID smallint(5) unsigned NOT NULL AUTO_INCREMENT,
470 470
 				CNT_ISO varchar(2) NOT NULL,
471 471
 				STA_abbrev varchar(24) NOT NULL,
472 472
 				STA_name varchar(100) NOT NULL,
@@ -474,9 +474,9 @@  discard block
 block discarded – undo
474 474
 				PRIMARY KEY  (STA_ID),
475 475
 				KEY STA_abbrev (STA_abbrev),
476 476
 				KEY CNT_ISO (CNT_ISO)";
477
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
478
-        $table_name = 'esp_status';
479
-        $sql = "STS_ID varchar(3) NOT NULL,
477
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
478
+		$table_name = 'esp_status';
479
+		$sql = "STS_ID varchar(3) NOT NULL,
480 480
 				STS_code varchar(45) NOT NULL,
481 481
 				STS_type varchar(45) NOT NULL,
482 482
 				STS_can_edit tinyint(1) NOT NULL DEFAULT 0,
@@ -484,9 +484,9 @@  discard block
 block discarded – undo
484 484
 				STS_open tinyint(1) NOT NULL DEFAULT 1,
485 485
 				UNIQUE KEY STS_ID_UNIQUE (STS_ID),
486 486
 				KEY STS_type (STS_type)";
487
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
488
-        $table_name = 'esp_transaction';
489
-        $sql = "TXN_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
487
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
488
+		$table_name = 'esp_transaction';
489
+		$sql = "TXN_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
490 490
 				TXN_timestamp datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
491 491
 				TXN_total decimal(12,3) DEFAULT '0.00',
492 492
 				TXN_paid decimal(12,3) NOT NULL DEFAULT '0.00',
@@ -498,9 +498,9 @@  discard block
 block discarded – undo
498 498
 				PRIMARY KEY  (TXN_ID),
499 499
 				KEY TXN_timestamp (TXN_timestamp),
500 500
 				KEY STS_ID (STS_ID)";
501
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
502
-        $table_name = 'esp_venue_meta';
503
-        $sql = "VNUM_ID int(11) NOT NULL AUTO_INCREMENT,
501
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
502
+		$table_name = 'esp_venue_meta';
503
+		$sql = "VNUM_ID int(11) NOT NULL AUTO_INCREMENT,
504 504
 			VNU_ID bigint(20) unsigned NOT NULL DEFAULT 0,
505 505
 			VNU_address varchar(255) DEFAULT NULL,
506 506
 			VNU_address2 varchar(255) DEFAULT NULL,
@@ -519,10 +519,10 @@  discard block
 block discarded – undo
519 519
 			KEY VNU_ID (VNU_ID),
520 520
 			KEY STA_ID (STA_ID),
521 521
 			KEY CNT_ISO (CNT_ISO)";
522
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
523
-        //modified tables
524
-        $table_name = "esp_price";
525
-        $sql = "PRC_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
522
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
523
+		//modified tables
524
+		$table_name = "esp_price";
525
+		$sql = "PRC_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
526 526
 				PRT_ID tinyint(3) unsigned NOT NULL,
527 527
 				PRC_amount decimal(12,3) NOT NULL DEFAULT '0.00',
528 528
 				PRC_name varchar(245) NOT NULL,
@@ -535,9 +535,9 @@  discard block
 block discarded – undo
535 535
 				PRC_parent int(10) unsigned DEFAULT 0,
536 536
 				PRIMARY KEY  (PRC_ID),
537 537
 				KEY PRT_ID (PRT_ID)";
538
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
539
-        $table_name = "esp_price_type";
540
-        $sql = "PRT_ID tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
538
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
539
+		$table_name = "esp_price_type";
540
+		$sql = "PRT_ID tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
541 541
 				PRT_name varchar(45) NOT NULL,
542 542
 				PBT_ID tinyint(3) unsigned NOT NULL DEFAULT '1',
543 543
 				PRT_is_percent tinyint(1) NOT NULL DEFAULT '0',
@@ -546,9 +546,9 @@  discard block
 block discarded – undo
546 546
 				PRT_deleted tinyint(1) NOT NULL DEFAULT '0',
547 547
 				UNIQUE KEY PRT_name_UNIQUE (PRT_name),
548 548
 				PRIMARY KEY  (PRT_ID)";
549
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB ');
550
-        $table_name = "esp_ticket";
551
-        $sql = "TKT_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
549
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB ');
550
+		$table_name = "esp_ticket";
551
+		$sql = "TKT_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
552 552
 				TTM_ID int(10) unsigned NOT NULL,
553 553
 				TKT_name varchar(245) NOT NULL DEFAULT '',
554 554
 				TKT_description text NOT NULL,
@@ -571,9 +571,9 @@  discard block
 block discarded – undo
571 571
 				TKT_deleted tinyint(1) NOT NULL DEFAULT '0',
572 572
 				PRIMARY KEY  (TKT_ID),
573 573
 				KEY TKT_start_date (TKT_start_date)";
574
-        $this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
575
-        $table_name = 'esp_question_group';
576
-        $sql = 'QSG_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
574
+		$this->_table_is_changed_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
575
+		$table_name = 'esp_question_group';
576
+		$sql = 'QSG_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
577 577
 				QSG_name varchar(255) NOT NULL,
578 578
 				QSG_identifier varchar(100) NOT NULL,
579 579
 				QSG_desc text NULL,
@@ -586,138 +586,138 @@  discard block
 block discarded – undo
586 586
 				PRIMARY KEY  (QSG_ID),
587 587
 				UNIQUE KEY QSG_identifier_UNIQUE (QSG_identifier),
588 588
 				KEY QSG_order (QSG_order)';
589
-        $this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
590
-        /** @var EE_DMS_Core_4_1_0 $script_4_1_defaults */
591
-        $script_4_1_defaults = EE_Registry::instance()->load_dms('Core_4_1_0');
592
-        //(because many need to convert old string states to foreign keys into the states table)
593
-        $script_4_1_defaults->insert_default_states();
594
-        $script_4_1_defaults->insert_default_countries();
595
-        /** @var EE_DMS_Core_4_5_0 $script_4_5_defaults */
596
-        $script_4_5_defaults = EE_Registry::instance()->load_dms('Core_4_5_0');
597
-        $script_4_5_defaults->insert_default_price_types();
598
-        $script_4_5_defaults->insert_default_prices();
599
-        $script_4_5_defaults->insert_default_tickets();
600
-        /** @var EE_DMS_Core_4_6_0 $script_4_6_defaults */
601
-        $script_4_6_defaults = EE_Registry::instance()->load_dms('Core_4_6_0');
602
-        $script_4_6_defaults->add_default_admin_only_payments();
603
-        $script_4_6_defaults->insert_default_currencies();
604
-        /** @var EE_DMS_Core_4_8_0 $script_4_8_defaults */
605
-        $script_4_8_defaults = EE_Registry::instance()->load_dms('Core_4_8_0');
606
-        $script_4_8_defaults->verify_new_countries();
607
-        $script_4_8_defaults->verify_new_currencies();
608
-        $this->verify_db_collations();
609
-        $this->verify_db_collations_again();
610
-        return true;
611
-    }
589
+		$this->_table_has_not_changed_since_previous($table_name, $sql, 'ENGINE=InnoDB');
590
+		/** @var EE_DMS_Core_4_1_0 $script_4_1_defaults */
591
+		$script_4_1_defaults = EE_Registry::instance()->load_dms('Core_4_1_0');
592
+		//(because many need to convert old string states to foreign keys into the states table)
593
+		$script_4_1_defaults->insert_default_states();
594
+		$script_4_1_defaults->insert_default_countries();
595
+		/** @var EE_DMS_Core_4_5_0 $script_4_5_defaults */
596
+		$script_4_5_defaults = EE_Registry::instance()->load_dms('Core_4_5_0');
597
+		$script_4_5_defaults->insert_default_price_types();
598
+		$script_4_5_defaults->insert_default_prices();
599
+		$script_4_5_defaults->insert_default_tickets();
600
+		/** @var EE_DMS_Core_4_6_0 $script_4_6_defaults */
601
+		$script_4_6_defaults = EE_Registry::instance()->load_dms('Core_4_6_0');
602
+		$script_4_6_defaults->add_default_admin_only_payments();
603
+		$script_4_6_defaults->insert_default_currencies();
604
+		/** @var EE_DMS_Core_4_8_0 $script_4_8_defaults */
605
+		$script_4_8_defaults = EE_Registry::instance()->load_dms('Core_4_8_0');
606
+		$script_4_8_defaults->verify_new_countries();
607
+		$script_4_8_defaults->verify_new_currencies();
608
+		$this->verify_db_collations();
609
+		$this->verify_db_collations_again();
610
+		return true;
611
+	}
612 612
 
613 613
 
614 614
 
615
-    /**
616
-     * @return boolean
617
-     */
618
-    public function schema_changes_after_migration()
619
-    {
620
-        return true;
621
-    }
615
+	/**
616
+	 * @return boolean
617
+	 */
618
+	public function schema_changes_after_migration()
619
+	{
620
+		return true;
621
+	}
622 622
 
623 623
 
624 624
 
625
-    public function migration_page_hooks()
626
-    {
627
-    }
625
+	public function migration_page_hooks()
626
+	{
627
+	}
628 628
 
629 629
 
630 630
 
631
-    /**
632
-     * Verify all EE4 models' tables use utf8mb4 collation
633
-     *
634
-     * @return void
635
-     */
636
-    public function verify_db_collations()
637
-    {
638
-        if (get_option('ee_verified_db_collations', false)) {
639
-            return;
640
-        }
641
-        // grab tables from each model
642
-        $tables_to_check = array();
643
-        foreach (EE_Registry::instance()->non_abstract_db_models as $model_name) {
644
-            if (method_exists($model_name, 'instance')) {
645
-                $model_obj = call_user_func(array($model_name, 'instance'));
646
-                if ($model_obj instanceof EEM_Base) {
647
-                    foreach ($model_obj->get_tables() as $table) {
648
-                        if (
649
-                            strpos($table->get_table_name(), 'esp_')
650
-                            && (is_main_site()//for main tables, verify global tables
651
-                                || ! $table->is_global()//if not the main site, then only verify non-global tables (avoid doubling up)
652
-                            )
653
-                            && function_exists('maybe_convert_table_to_utf8mb4')
654
-                        ) {
655
-                            $tables_to_check[] = $table->get_table_name();
656
-                        }
657
-                    }
658
-                }
659
-            }
660
-        }
661
-        //and let's just be sure these addons' tables get migrated too. They already get handled if their addons are active
662
-        //when this code is run, but not otherwise. Once we record what tables EE added, we'll be able to use that instead
663
-        //of hard-coding this
664
-        $addon_tables = array(
665
-            //mailchimp
666
-            'esp_event_mailchimp_list_group',
667
-            'esp_event_question_mailchimp_field',
668
-            //multisite
669
-            'esp_blog_meta',
670
-            //people
671
-            'esp_people_to_post',
672
-            //promotions
673
-            'esp_promotion',
674
-            'esp_promotion_object',
675
-        );
676
-        foreach ($addon_tables as $table_name) {
677
-                $tables_to_check[] = $table_name;
678
-        }
679
-        $this->_verify_db_collations_for_tables(array_unique($tables_to_check));
680
-        //ok and now let's remember this was done (without needing to check the db schemas all over again)
681
-        add_option('ee_verified_db_collations', true, null, 'no');
682
-        //seeing how this ran with the fix from 10435, no need to check again
683
-        add_option('ee_verified_db_collations_again',true,null,'no');
684
-    }
631
+	/**
632
+	 * Verify all EE4 models' tables use utf8mb4 collation
633
+	 *
634
+	 * @return void
635
+	 */
636
+	public function verify_db_collations()
637
+	{
638
+		if (get_option('ee_verified_db_collations', false)) {
639
+			return;
640
+		}
641
+		// grab tables from each model
642
+		$tables_to_check = array();
643
+		foreach (EE_Registry::instance()->non_abstract_db_models as $model_name) {
644
+			if (method_exists($model_name, 'instance')) {
645
+				$model_obj = call_user_func(array($model_name, 'instance'));
646
+				if ($model_obj instanceof EEM_Base) {
647
+					foreach ($model_obj->get_tables() as $table) {
648
+						if (
649
+							strpos($table->get_table_name(), 'esp_')
650
+							&& (is_main_site()//for main tables, verify global tables
651
+								|| ! $table->is_global()//if not the main site, then only verify non-global tables (avoid doubling up)
652
+							)
653
+							&& function_exists('maybe_convert_table_to_utf8mb4')
654
+						) {
655
+							$tables_to_check[] = $table->get_table_name();
656
+						}
657
+					}
658
+				}
659
+			}
660
+		}
661
+		//and let's just be sure these addons' tables get migrated too. They already get handled if their addons are active
662
+		//when this code is run, but not otherwise. Once we record what tables EE added, we'll be able to use that instead
663
+		//of hard-coding this
664
+		$addon_tables = array(
665
+			//mailchimp
666
+			'esp_event_mailchimp_list_group',
667
+			'esp_event_question_mailchimp_field',
668
+			//multisite
669
+			'esp_blog_meta',
670
+			//people
671
+			'esp_people_to_post',
672
+			//promotions
673
+			'esp_promotion',
674
+			'esp_promotion_object',
675
+		);
676
+		foreach ($addon_tables as $table_name) {
677
+				$tables_to_check[] = $table_name;
678
+		}
679
+		$this->_verify_db_collations_for_tables(array_unique($tables_to_check));
680
+		//ok and now let's remember this was done (without needing to check the db schemas all over again)
681
+		add_option('ee_verified_db_collations', true, null, 'no');
682
+		//seeing how this ran with the fix from 10435, no need to check again
683
+		add_option('ee_verified_db_collations_again',true,null,'no');
684
+	}
685 685
 
686 686
 
687 687
 
688
-    /**
689
-     * Verifies DB collations because a bug was discovered on https://events.codebasehq.com/projects/event-espresso/tickets/10435
690
-     * which meant some DB collations might not have been updated
691
-     * @return void
692
-     */
693
-    public function verify_db_collations_again(){
694
-        if (get_option('ee_verified_db_collations_again', false)) {
695
-            return;
696
-        }
697
-        $tables_to_check = array(
698
-            'esp_attendee_meta',
699
-            'esp_message'
700
-        );
701
-        $this->_verify_db_collations_for_tables(array_unique($tables_to_check));
702
-        add_option('ee_verified_db_collations_again',true,null,'no');
703
-    }
688
+	/**
689
+	 * Verifies DB collations because a bug was discovered on https://events.codebasehq.com/projects/event-espresso/tickets/10435
690
+	 * which meant some DB collations might not have been updated
691
+	 * @return void
692
+	 */
693
+	public function verify_db_collations_again(){
694
+		if (get_option('ee_verified_db_collations_again', false)) {
695
+			return;
696
+		}
697
+		$tables_to_check = array(
698
+			'esp_attendee_meta',
699
+			'esp_message'
700
+		);
701
+		$this->_verify_db_collations_for_tables(array_unique($tables_to_check));
702
+		add_option('ee_verified_db_collations_again',true,null,'no');
703
+	}
704 704
 
705 705
 
706 706
 
707
-    /**
708
-     * Runs maybe_convert_table_to_utf8mb4 on the specified tables
709
-     * @param $tables_to_check
710
-     * @return boolean true if logic ran, false if it didn't
711
-     */
712
-    protected function _verify_db_collations_for_tables($tables_to_check)
713
-    {
714
-        foreach ($tables_to_check as $table_name) {
715
-            $table_name = $this->_table_analysis->ensureTableNameHasPrefix($table_name);
716
-            if ( ! apply_filters('FHEE__EE_DMS_Core_4_9_0__verify_db_collations__check_overridden', false, $table_name )
717
-                && $this->_get_table_analysis()->tableExists($table_name)
718
-            ) {
719
-                maybe_convert_table_to_utf8mb4($table_name);
720
-            }
721
-        }
722
-    }
707
+	/**
708
+	 * Runs maybe_convert_table_to_utf8mb4 on the specified tables
709
+	 * @param $tables_to_check
710
+	 * @return boolean true if logic ran, false if it didn't
711
+	 */
712
+	protected function _verify_db_collations_for_tables($tables_to_check)
713
+	{
714
+		foreach ($tables_to_check as $table_name) {
715
+			$table_name = $this->_table_analysis->ensureTableNameHasPrefix($table_name);
716
+			if ( ! apply_filters('FHEE__EE_DMS_Core_4_9_0__verify_db_collations__check_overridden', false, $table_name )
717
+				&& $this->_get_table_analysis()->tableExists($table_name)
718
+			) {
719
+				maybe_convert_table_to_utf8mb4($table_name);
720
+			}
721
+		}
722
+	}
723 723
 }
724 724
\ No newline at end of file
Please login to merge, or discard this patch.
core/data_migration_scripts/EE_DMS_Core_4_6_0.dms.php 1 patch
Indentation   +269 added lines, -269 removed lines patch added patch discarded remove patch
@@ -14,9 +14,9 @@  discard block
 block discarded – undo
14 14
 $stages = glob(EE_CORE . 'data_migration_scripts/4_6_0_stages/*');
15 15
 $class_to_filepath = array();
16 16
 foreach ($stages as $filepath) {
17
-    $matches = array();
18
-    preg_match('~4_6_0_stages/(.*).dmsstage.php~', $filepath, $matches);
19
-    $class_to_filepath[$matches[1]] = $filepath;
17
+	$matches = array();
18
+	preg_match('~4_6_0_stages/(.*).dmsstage.php~', $filepath, $matches);
19
+	$class_to_filepath[$matches[1]] = $filepath;
20 20
 }
21 21
 //give addons a chance to autoload their stages too
22 22
 $class_to_filepath = apply_filters('FHEE__EE_DMS_4_6_0__autoloaded_stages', $class_to_filepath);
@@ -35,69 +35,69 @@  discard block
 block discarded – undo
35 35
 class EE_DMS_Core_4_6_0 extends EE_Data_Migration_Script_Base
36 36
 {
37 37
 
38
-    /**
39
-     * return EE_DMS_Core_4_6_0
40
-     *
41
-     * @param TableManager  $table_manager
42
-     * @param TableAnalysis $table_analysis
43
-     */
44
-    public function __construct(TableManager $table_manager = null, TableAnalysis $table_analysis = null)
45
-    {
46
-        $this->_pretty_name = __("Data Update to Event Espresso 4.6.0", "event_espresso");
47
-        $this->_priority = 10;
48
-        $this->_migration_stages = array(
49
-            new EE_DMS_4_6_0_gateways(),
50
-            new EE_DMS_4_6_0_question_types(),
51
-            new EE_DMS_4_6_0_country_system_question(),
52
-            new EE_DMS_4_6_0_state_system_question(),
53
-            new EE_DMS_4_6_0_billing_info(),
54
-            new EE_DMS_4_6_0_transactions(),
55
-            new EE_DMS_4_6_0_payments(),
56
-            new EE_DMS_4_6_0_invoice_settings(),
57
-        );
58
-        parent::__construct($table_manager, $table_analysis);
59
-    }
60
-
61
-
62
-
63
-    /**
64
-     * @param array $version_array
65
-     * @return bool
66
-     */
67
-    public function can_migrate_from_version($version_array)
68
-    {
69
-        $version_string = $version_array['Core'];
70
-        if (version_compare($version_string, '4.6.0', '<=') && version_compare($version_string, '4.5.0', '>=')) {
38
+	/**
39
+	 * return EE_DMS_Core_4_6_0
40
+	 *
41
+	 * @param TableManager  $table_manager
42
+	 * @param TableAnalysis $table_analysis
43
+	 */
44
+	public function __construct(TableManager $table_manager = null, TableAnalysis $table_analysis = null)
45
+	{
46
+		$this->_pretty_name = __("Data Update to Event Espresso 4.6.0", "event_espresso");
47
+		$this->_priority = 10;
48
+		$this->_migration_stages = array(
49
+			new EE_DMS_4_6_0_gateways(),
50
+			new EE_DMS_4_6_0_question_types(),
51
+			new EE_DMS_4_6_0_country_system_question(),
52
+			new EE_DMS_4_6_0_state_system_question(),
53
+			new EE_DMS_4_6_0_billing_info(),
54
+			new EE_DMS_4_6_0_transactions(),
55
+			new EE_DMS_4_6_0_payments(),
56
+			new EE_DMS_4_6_0_invoice_settings(),
57
+		);
58
+		parent::__construct($table_manager, $table_analysis);
59
+	}
60
+
61
+
62
+
63
+	/**
64
+	 * @param array $version_array
65
+	 * @return bool
66
+	 */
67
+	public function can_migrate_from_version($version_array)
68
+	{
69
+		$version_string = $version_array['Core'];
70
+		if (version_compare($version_string, '4.6.0', '<=') && version_compare($version_string, '4.5.0', '>=')) {
71 71
 //			echo "$version_string can be migrated from";
72
-            return true;
73
-        } elseif ( ! $version_string) {
72
+			return true;
73
+		} elseif ( ! $version_string) {
74 74
 //			echo "no version string provided: $version_string";
75
-            //no version string provided... this must be pre 4.3
76
-            return false;//changed mind. dont want people thinking they should migrate yet because they cant
77
-        } else {
75
+			//no version string provided... this must be pre 4.3
76
+			return false;//changed mind. dont want people thinking they should migrate yet because they cant
77
+		} else {
78 78
 //			echo "$version_string doesnt apply";
79
-            return false;
80
-        }
81
-    }
79
+			return false;
80
+		}
81
+	}
82 82
 
83 83
 
84 84
 
85
-    /**
86
-     * @return bool
87
-     */
88
-    public function schema_changes_before_migration()
89
-    {
90
-        //relies on 4.1's EEH_Activation::create_table
91
-        require_once(EE_HELPERS . 'EEH_Activation.helper.php');
92
-        $table_name = 'esp_answer';
93
-        $sql = " ANS_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
85
+	/**
86
+	 * @return bool
87
+	 */
88
+	public function schema_changes_before_migration()
89
+	{
90
+		//relies on 4.1's EEH_Activation::create_table
91
+		require_once(EE_HELPERS . 'EEH_Activation.helper.php');
92
+		$table_name = 'esp_answer';
93
+		$sql = " ANS_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
94 94
 					REG_ID INT UNSIGNED NOT NULL,
95 95
 					QST_ID INT UNSIGNED NOT NULL,
96 96
 					ANS_value TEXT NOT NULL,
97 97
 					PRIMARY KEY  (ANS_ID)";
98
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
99
-        $table_name = 'esp_attendee_meta';
100
-        $sql = "ATTM_ID INT(10) UNSIGNED NOT	NULL AUTO_INCREMENT,
98
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
99
+		$table_name = 'esp_attendee_meta';
100
+		$sql = "ATTM_ID INT(10) UNSIGNED NOT	NULL AUTO_INCREMENT,
101 101
 						ATT_ID BIGINT(20) UNSIGNED NOT NULL,
102 102
 						ATT_fname VARCHAR(45) NOT NULL,
103 103
 						ATT_lname VARCHAR(45) NOT	NULL,
@@ -113,9 +113,9 @@  discard block
 block discarded – undo
113 113
 								KEY ATT_fname (ATT_fname),
114 114
 								KEY ATT_lname (ATT_lname),
115 115
 								KEY ATT_email (ATT_email)";
116
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB ');
117
-        $table_name = 'esp_country';
118
-        $sql = "CNT_ISO VARCHAR(2) COLLATE utf8_bin NOT NULL,
116
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB ');
117
+		$table_name = 'esp_country';
118
+		$sql = "CNT_ISO VARCHAR(2) COLLATE utf8_bin NOT NULL,
119 119
 					  CNT_ISO3 VARCHAR(3) COLLATE utf8_bin NOT NULL,
120 120
 					  RGN_ID TINYINT(3) UNSIGNED DEFAULT NULL,
121 121
 					  CNT_name VARCHAR(45) COLLATE utf8_bin NOT NULL,
@@ -131,24 +131,24 @@  discard block
 block discarded – undo
131 131
 					  CNT_is_EU TINYINT(1) DEFAULT '0',
132 132
 					  CNT_active TINYINT(1) DEFAULT '0',
133 133
 					  PRIMARY KEY  (CNT_ISO)";
134
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
135
-        $table_name = 'esp_currency';
136
-        $sql = "CUR_code VARCHAR(6) COLLATE utf8_bin NOT NULL,
134
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
135
+		$table_name = 'esp_currency';
136
+		$sql = "CUR_code VARCHAR(6) COLLATE utf8_bin NOT NULL,
137 137
 				CUR_single VARCHAR(45) COLLATE utf8_bin DEFAULT 'dollar',
138 138
 				CUR_plural VARCHAR(45) COLLATE utf8_bin DEFAULT 'dollars',
139 139
 				CUR_sign VARCHAR(45) COLLATE utf8_bin DEFAULT '$',
140 140
 				CUR_dec_plc VARCHAR(1) COLLATE utf8_bin NOT NULL DEFAULT '2',
141 141
 				CUR_active TINYINT(1) DEFAULT '0',
142 142
 				PRIMARY KEY  (CUR_code)";
143
-        $this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
144
-        $table_name = 'esp_currency_payment_method';
145
-        $sql = "CPM_ID INT(11) NOT NULL AUTO_INCREMENT,
143
+		$this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
144
+		$table_name = 'esp_currency_payment_method';
145
+		$sql = "CPM_ID INT(11) NOT NULL AUTO_INCREMENT,
146 146
 				CUR_code  VARCHAR(6) COLLATE utf8_bin NOT NULL,
147 147
 				PMD_ID INT(11) NOT NULL,
148 148
 				PRIMARY KEY  (CPM_ID)";
149
-        $this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
150
-        $table_name = 'esp_datetime';
151
-        $sql = "DTT_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
149
+		$this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
150
+		$table_name = 'esp_datetime';
151
+		$sql = "DTT_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
152 152
 				  EVT_ID BIGINT(20) UNSIGNED NOT NULL,
153 153
 				  DTT_name VARCHAR(255) NOT NULL DEFAULT '',
154 154
 				  DTT_description TEXT NOT NULL,
@@ -163,9 +163,9 @@  discard block
 block discarded – undo
163 163
 						PRIMARY KEY  (DTT_ID),
164 164
 						KEY EVT_ID (EVT_ID),
165 165
 						KEY DTT_is_primary (DTT_is_primary)";
166
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
167
-        $table_name = 'esp_event_meta';
168
-        $sql = "
166
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
167
+		$table_name = 'esp_event_meta';
168
+		$sql = "
169 169
 			EVTM_ID INT NOT NULL AUTO_INCREMENT,
170 170
 			EVT_ID BIGINT(20) UNSIGNED NOT NULL,
171 171
 			EVT_display_desc TINYINT(1) UNSIGNED NOT NULL DEFAULT 1,
@@ -180,31 +180,31 @@  discard block
 block discarded – undo
180 180
 			EVT_external_URL VARCHAR(200) NULL,
181 181
 			EVT_donations TINYINT(1) NULL,
182 182
 			PRIMARY KEY  (EVTM_ID)";
183
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
184
-        $table_name = 'esp_event_question_group';
185
-        $sql = "EQG_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
183
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
184
+		$table_name = 'esp_event_question_group';
185
+		$sql = "EQG_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
186 186
 					EVT_ID BIGINT(20) UNSIGNED NOT NULL,
187 187
 					QSG_ID INT UNSIGNED NOT NULL,
188 188
 					EQG_primary TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
189 189
 					PRIMARY KEY  (EQG_ID)";
190
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
191
-        $table_name = 'esp_event_venue';
192
-        $sql = "EVV_ID INT(11) NOT NULL AUTO_INCREMENT,
190
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
191
+		$table_name = 'esp_event_venue';
192
+		$sql = "EVV_ID INT(11) NOT NULL AUTO_INCREMENT,
193 193
 				EVT_ID BIGINT(20) UNSIGNED NOT NULL,
194 194
 				VNU_ID BIGINT(20) UNSIGNED NOT NULL,
195 195
 				EVV_primary TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
196 196
 				PRIMARY KEY  (EVV_ID)";
197
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
198
-        $table_name = 'esp_extra_meta';
199
-        $sql = "EXM_ID INT(11) NOT NULL AUTO_INCREMENT,
197
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
198
+		$table_name = 'esp_extra_meta';
199
+		$sql = "EXM_ID INT(11) NOT NULL AUTO_INCREMENT,
200 200
 				OBJ_ID INT(11) DEFAULT NULL,
201 201
 				EXM_type VARCHAR(45) DEFAULT NULL,
202 202
 				EXM_key VARCHAR(45) DEFAULT NULL,
203 203
 				EXM_value TEXT,
204 204
 				PRIMARY KEY  (EXM_ID)";
205
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
206
-        $table_name = 'esp_line_item';
207
-        $sql = "LIN_ID INT(11) NOT NULL AUTO_INCREMENT,
205
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
206
+		$table_name = 'esp_line_item';
207
+		$sql = "LIN_ID INT(11) NOT NULL AUTO_INCREMENT,
208 208
 				LIN_code VARCHAR(245) NOT NULL DEFAULT '',
209 209
 				TXN_ID INT(11) DEFAULT NULL,
210 210
 				LIN_name VARCHAR(245) NOT NULL DEFAULT '',
@@ -220,9 +220,9 @@  discard block
 block discarded – undo
220 220
 				OBJ_ID INT(11) DEFAULT NULL,
221 221
 				OBJ_type VARCHAR(45)DEFAULT NULL,
222 222
 				PRIMARY KEY  (LIN_ID)";
223
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
224
-        $table_name = 'esp_log';
225
-        $sql = "LOG_ID INT(11) NOT NULL AUTO_INCREMENT,
223
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
224
+		$table_name = 'esp_log';
225
+		$sql = "LOG_ID INT(11) NOT NULL AUTO_INCREMENT,
226 226
 				LOG_time DATETIME DEFAULT NULL,
227 227
 				OBJ_ID VARCHAR(45) DEFAULT NULL,
228 228
 				OBJ_type VARCHAR(45) DEFAULT NULL,
@@ -230,19 +230,19 @@  discard block
 block discarded – undo
230 230
 				LOG_message TEXT,
231 231
 				LOG_wp_user INT(11) DEFAULT NULL,
232 232
 				PRIMARY KEY  (LOG_ID)";
233
-        $this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
234
-        $table_name = 'esp_message_template';
235
-        $sql = "MTP_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
233
+		$this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB');
234
+		$table_name = 'esp_message_template';
235
+		$sql = "MTP_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
236 236
 					GRP_ID INT(10) UNSIGNED NOT NULL,
237 237
 					MTP_context VARCHAR(50) NOT NULL,
238 238
 					MTP_template_field VARCHAR(30) NOT NULL,
239 239
 					MTP_content TEXT NOT NULL,
240 240
 					PRIMARY KEY  (MTP_ID),
241 241
 					KEY GRP_ID (GRP_ID)";
242
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
243
-        $this->_get_table_manager()->dropIndex('esp_message_template_group', 'EVT_ID');
244
-        $table_name = 'esp_message_template_group';
245
-        $sql = "GRP_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
242
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
243
+		$this->_get_table_manager()->dropIndex('esp_message_template_group', 'EVT_ID');
244
+		$table_name = 'esp_message_template_group';
245
+		$sql = "GRP_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
246 246
 					MTP_user_id INT(10) NOT NULL DEFAULT '1',
247 247
 					MTP_name VARCHAR(245) NOT NULL DEFAULT '',
248 248
 					MTP_description VARCHAR(245) NOT NULL DEFAULT '',
@@ -254,17 +254,17 @@  discard block
 block discarded – undo
254 254
 					MTP_is_active TINYINT(1) NOT NULL DEFAULT '1',
255 255
 					PRIMARY KEY  (GRP_ID),
256 256
 					KEY MTP_user_id (MTP_user_id)";
257
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
258
-        $table_name = 'esp_event_message_template';
259
-        $sql = "EMT_ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
257
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
258
+		$table_name = 'esp_event_message_template';
259
+		$sql = "EMT_ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
260 260
 					EVT_ID BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
261 261
 					GRP_ID INT(10) UNSIGNED NOT NULL DEFAULT 0,
262 262
 					PRIMARY KEY  (EMT_ID),
263 263
 					KEY EVT_ID (EVT_ID),
264 264
 					KEY GRP_ID (GRP_ID)";
265
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
266
-        $table_name = 'esp_payment';
267
-        $sql = "PAY_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
265
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
266
+		$table_name = 'esp_payment';
267
+		$sql = "PAY_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
268 268
 					TXN_ID INT(10) UNSIGNED DEFAULT NULL,
269 269
 					STS_ID VARCHAR(3) COLLATE utf8_bin DEFAULT NULL,
270 270
 					PAY_timestamp DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
@@ -281,9 +281,9 @@  discard block
 block discarded – undo
281 281
 					PRIMARY KEY  (PAY_ID),
282 282
 					KEY TXN_ID (TXN_ID),
283 283
 					KEY PAY_timestamp (PAY_timestamp)";
284
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB ');
285
-        $table_name = 'esp_payment_method';
286
-        $sql = "PMD_ID INT(11) NOT NULL AUTO_INCREMENT,
284
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB ');
285
+		$table_name = 'esp_payment_method';
286
+		$sql = "PMD_ID INT(11) NOT NULL AUTO_INCREMENT,
287 287
 				PMD_type VARCHAR(124) DEFAULT NULL,
288 288
 				PMD_name VARCHAR(255) DEFAULT NULL,
289 289
 				PMD_desc TEXT,
@@ -298,28 +298,28 @@  discard block
 block discarded – undo
298 298
 				PMD_scope VARCHAR(255) NULL DEFAULT 'frontend',
299 299
 				PRIMARY KEY  (PMD_ID),
300 300
 				UNIQUE KEY PMD_slug_UNIQUE (PMD_slug)";
301
-        $this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
302
-        $table_name = "esp_ticket_price";
303
-        $sql = "TKP_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
301
+		$this->_table_is_new_in_this_version($table_name, $sql, 'ENGINE=InnoDB ');
302
+		$table_name = "esp_ticket_price";
303
+		$sql = "TKP_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
304 304
 					  TKT_ID INT(10) UNSIGNED NOT NULL,
305 305
 					  PRC_ID INT(10) UNSIGNED NOT NULL,
306 306
 					  PRIMARY KEY  (TKP_ID)";
307
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
308
-        $table_name = "esp_datetime_ticket";
309
-        $sql = "DTK_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
307
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
308
+		$table_name = "esp_datetime_ticket";
309
+		$sql = "DTK_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
310 310
 					  DTT_ID INT(10) UNSIGNED NOT NULL,
311 311
 					  TKT_ID INT(10) UNSIGNED NOT NULL,
312 312
 					  PRIMARY KEY  (DTK_ID)";
313
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
314
-        $table_name = "esp_ticket_template";
315
-        $sql = "TTM_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
313
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
314
+		$table_name = "esp_ticket_template";
315
+		$sql = "TTM_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
316 316
 					  TTM_name VARCHAR(45) NOT NULL,
317 317
 					  TTM_description TEXT,
318 318
 					  TTM_file VARCHAR(45),
319 319
 					  PRIMARY KEY  (TTM_ID)";
320
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
321
-        $table_name = 'esp_question';
322
-        $sql = 'QST_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
320
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
321
+		$table_name = 'esp_question';
322
+		$sql = 'QST_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
323 323
 					QST_display_text TEXT NOT NULL,
324 324
 					QST_admin_label VARCHAR(255) NOT NULL,
325 325
 					QST_system VARCHAR(25) DEFAULT NULL,
@@ -331,25 +331,25 @@  discard block
 block discarded – undo
331 331
 					QST_wp_user BIGINT UNSIGNED NULL,
332 332
 					QST_deleted TINYINT UNSIGNED NOT NULL DEFAULT 0,
333 333
 					PRIMARY KEY  (QST_ID)';
334
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
335
-        $table_name = 'esp_question_group_question';
336
-        $sql = "QGQ_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
334
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
335
+		$table_name = 'esp_question_group_question';
336
+		$sql = "QGQ_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
337 337
 					QSG_ID INT UNSIGNED NOT NULL,
338 338
 					QST_ID INT UNSIGNED NOT NULL,
339 339
 					QGQ_order INT UNSIGNED NOT NULL DEFAULT 0,
340 340
 					PRIMARY KEY  (QGQ_ID) ";
341
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
342
-        $table_name = 'esp_question_option';
343
-        $sql = "QSO_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
341
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
342
+		$table_name = 'esp_question_option';
343
+		$sql = "QSO_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
344 344
 					QSO_value VARCHAR(255) NOT NULL,
345 345
 					QSO_desc TEXT NOT NULL,
346 346
 					QST_ID INT UNSIGNED NOT NULL,
347 347
 					QSO_order INT UNSIGNED NOT NULL DEFAULT 0,
348 348
 					QSO_deleted TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
349 349
 					PRIMARY KEY  (QSO_ID)";
350
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
351
-        $table_name = 'esp_registration';
352
-        $sql = "REG_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
350
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
351
+		$table_name = 'esp_registration';
352
+		$sql = "REG_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
353 353
 					  EVT_ID BIGINT(20) UNSIGNED NOT NULL,
354 354
 					  ATT_ID BIGINT(20) UNSIGNED NOT NULL,
355 355
 					  TXN_ID INT(10) UNSIGNED NOT NULL,
@@ -372,25 +372,25 @@  discard block
 block discarded – undo
372 372
 					  KEY STS_ID (STS_ID),
373 373
 					  KEY REG_url_link (REG_url_link),
374 374
 					  KEY REG_code (REG_code)";
375
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB ');
376
-        $table_name = 'esp_checkin';
377
-        $sql = "CHK_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
375
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB ');
376
+		$table_name = 'esp_checkin';
377
+		$sql = "CHK_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
378 378
 					REG_ID INT(10) UNSIGNED NOT NULL,
379 379
 					DTT_ID INT(10) UNSIGNED NOT NULL,
380 380
 					CHK_in TINYINT(1) UNSIGNED NOT NULL DEFAULT 1,
381 381
 					CHK_timestamp DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
382 382
 					PRIMARY KEY  (CHK_ID)";
383
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
384
-        $table_name = 'esp_state';
385
-        $sql = "STA_ID smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT,
383
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
384
+		$table_name = 'esp_state';
385
+		$sql = "STA_ID smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT,
386 386
 					  CNT_ISO VARCHAR(2) COLLATE utf8_bin NOT NULL,
387 387
 					  STA_abbrev VARCHAR(24) COLLATE utf8_bin NOT NULL,
388 388
 					  STA_name VARCHAR(100) COLLATE utf8_bin NOT NULL,
389 389
 					  STA_active TINYINT(1) DEFAULT '1',
390 390
 					  PRIMARY KEY  (STA_ID)";
391
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
392
-        $table_name = 'esp_status';
393
-        $sql = "STS_ID VARCHAR(3) COLLATE utf8_bin NOT NULL,
391
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
392
+		$table_name = 'esp_status';
393
+		$sql = "STS_ID VARCHAR(3) COLLATE utf8_bin NOT NULL,
394 394
 					  STS_code VARCHAR(45) COLLATE utf8_bin NOT NULL,
395 395
 					  STS_type set('event','registration','transaction','payment','email') COLLATE utf8_bin NOT NULL,
396 396
 					  STS_can_edit TINYINT(1) NOT NULL DEFAULT 0,
@@ -398,9 +398,9 @@  discard block
 block discarded – undo
398 398
 					  STS_open TINYINT(1) NOT NULL DEFAULT 1,
399 399
 					  UNIQUE KEY STS_ID_UNIQUE (STS_ID),
400 400
 					  KEY STS_type (STS_type)";
401
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
402
-        $table_name = 'esp_transaction';
403
-        $sql = "TXN_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
401
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
402
+		$table_name = 'esp_transaction';
403
+		$sql = "TXN_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
404 404
 					  TXN_timestamp DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
405 405
 					  TXN_total DECIMAL(10,3) DEFAULT '0.00',
406 406
 					  TXN_paid DECIMAL(10,3) NOT NULL DEFAULT '0.00',
@@ -412,9 +412,9 @@  discard block
 block discarded – undo
412 412
 					  PRIMARY KEY  (TXN_ID),
413 413
 					  KEY TXN_timestamp (TXN_timestamp),
414 414
 					  KEY STS_ID (STS_ID)";
415
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
416
-        $table_name = 'esp_venue_meta';
417
-        $sql = "VNUM_ID INT(11) NOT NULL AUTO_INCREMENT,
415
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
416
+		$table_name = 'esp_venue_meta';
417
+		$sql = "VNUM_ID INT(11) NOT NULL AUTO_INCREMENT,
418 418
 			VNU_ID BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
419 419
 			VNU_address VARCHAR(255) DEFAULT NULL,
420 420
 			VNU_address2 VARCHAR(255) DEFAULT NULL,
@@ -432,10 +432,10 @@  discard block
 block discarded – undo
432 432
 			PRIMARY KEY  (VNUM_ID),
433 433
 			KEY STA_ID (STA_ID),
434 434
 			KEY CNT_ISO (CNT_ISO)";
435
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
436
-        //modified tables
437
-        $table_name = "esp_price";
438
-        $sql = "PRC_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
435
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
436
+		//modified tables
437
+		$table_name = "esp_price";
438
+		$sql = "PRC_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
439 439
 					  PRT_ID TINYINT(3) UNSIGNED NOT NULL,
440 440
 					  PRC_amount DECIMAL(10,3) NOT NULL DEFAULT '0.00',
441 441
 					  PRC_name VARCHAR(245) NOT NULL,
@@ -447,9 +447,9 @@  discard block
 block discarded – undo
447 447
 					  PRC_wp_user BIGINT UNSIGNED NULL,
448 448
 					  PRC_parent INT(10) UNSIGNED DEFAULT 0,
449 449
 					  PRIMARY KEY  (PRC_ID)";
450
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
451
-        $table_name = "esp_price_type";
452
-        $sql = "PRT_ID TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
450
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
451
+		$table_name = "esp_price_type";
452
+		$sql = "PRT_ID TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
453 453
 				  PRT_name VARCHAR(45) NOT NULL,
454 454
 				  PBT_ID TINYINT(3) UNSIGNED NOT NULL DEFAULT '1',
455 455
 				  PRT_is_percent TINYINT(1) NOT NULL DEFAULT '0',
@@ -458,9 +458,9 @@  discard block
 block discarded – undo
458 458
 				  PRT_deleted TINYINT(1) NOT NULL DEFAULT '0',
459 459
 				  UNIQUE KEY PRT_name_UNIQUE (PRT_name),
460 460
 				  PRIMARY KEY  (PRT_ID)";
461
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB ');
462
-        $table_name = "esp_ticket";
463
-        $sql = "TKT_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
461
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB ');
462
+		$table_name = "esp_ticket";
463
+		$sql = "TKT_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
464 464
 					  TTM_ID INT(10) UNSIGNED NOT NULL,
465 465
 					  TKT_name VARCHAR(245) NOT NULL DEFAULT '',
466 466
 					  TKT_description TEXT NOT NULL,
@@ -481,10 +481,10 @@  discard block
 block discarded – undo
481 481
 					  TKT_parent INT(10) UNSIGNED DEFAULT '0',
482 482
 					  TKT_deleted TINYINT(1) NOT NULL DEFAULT '0',
483 483
 					  PRIMARY KEY  (TKT_ID)";
484
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
485
-        $this->_get_table_manager()->dropIndex('esp_question_group', 'QSG_identifier_UNIQUE');
486
-        $table_name = 'esp_question_group';
487
-        $sql = 'QSG_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
484
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
485
+		$this->_get_table_manager()->dropIndex('esp_question_group', 'QSG_identifier_UNIQUE');
486
+		$table_name = 'esp_question_group';
487
+		$sql = 'QSG_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
488 488
 					QSG_name VARCHAR(255) NOT NULL,
489 489
 					QSG_identifier VARCHAR(100) NOT NULL,
490 490
 					QSG_desc TEXT NULL,
@@ -496,119 +496,119 @@  discard block
 block discarded – undo
496 496
 					QSG_wp_user BIGINT UNSIGNED NULL,
497 497
 					PRIMARY KEY  (QSG_ID),
498 498
 					UNIQUE KEY QSG_identifier_UNIQUE (QSG_identifier ASC)';
499
-        $this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
500
-        /** @var EE_DMS_Core_4_1_0 $script_4_1_defaults */
501
-        $script_4_1_defaults = EE_Registry::instance()->load_dms('Core_4_1_0');
502
-        //(because many need to convert old string states to foreign keys into the states table)
503
-        $script_4_1_defaults->insert_default_states();
504
-        $script_4_1_defaults->insert_default_countries();
505
-        /** @var EE_DMS_Core_4_5_0 $script_4_5_defaults */
506
-        $script_4_5_defaults = EE_Registry::instance()->load_dms('Core_4_5_0');
507
-        $script_4_5_defaults->insert_default_price_types();
508
-        $script_4_5_defaults->insert_default_prices();
509
-        $script_4_5_defaults->insert_default_tickets();
510
-        //setting up the config wp option pretty well counts as a 'schema change', or at least should happen here
511
-        EE_Config::instance()->update_espresso_config(false, true);
512
-        $this->add_default_admin_only_payments();
513
-        $this->insert_default_currencies();
514
-        return true;
515
-    }
516
-
517
-
518
-
519
-    /**
520
-     * @return boolean
521
-     */
522
-    public function schema_changes_after_migration()
523
-    {
524
-        return true;
525
-    }
526
-
527
-
528
-
529
-    public function migration_page_hooks()
530
-    {
531
-    }
532
-
533
-
534
-
535
-    public function add_default_admin_only_payments()
536
-    {
537
-        global $wpdb;
538
-        $table_name = $wpdb->prefix . "esp_payment_method";
539
-        $user_id = EEH_Activation::get_default_creator_id();
540
-        if ($this->_get_table_analysis()->tableExists($table_name)) {
541
-            $SQL = "SELECT COUNT( * ) FROM $table_name";
542
-            $existing_payment_methods = $wpdb->get_var($SQL);
543
-            $default_admin_only_payment_methods = apply_filters(
544
-                'FHEE__EEH_Activation__add_default_admin_only_payments__default_admin_only_payment_methods',
545
-                array(
546
-                    __("Bank", 'event_espresso')        => __("Bank Draft", 'event_espresso'),
547
-                    __("Cash", 'event_espresso')        => __("Cash Delivered Physically", 'event_espresso'),
548
-                    __("Check", 'event_espresso')       => __("Paper Check", 'event_espresso'),
549
-                    __("Credit Card", 'event_espresso') => __("Offline Credit Card Payment", 'event_espresso'),
550
-                    __("Debit Card", 'event_espresso')  => __("Offline Debit Payment", 'event_espresso'),
551
-                    __("Invoice", 'event_espresso')     => __("Invoice received with monies included",
552
-                        'event_espresso'),
553
-                    __("Money Order", 'event_espresso') => '',
554
-                    __("Paypal", 'event_espresso')      => __("Paypal eCheck, Invoice, etc", 'event_espresso'),
555
-                    __('Other', 'event_espresso')       => __('Other method of payment', 'event_espresso'),
556
-                ));
557
-            //make sure we hae payment method records for the following
558
-            //so admins can record payments for them from the admin page
559
-            foreach ($default_admin_only_payment_methods as $nicename => $description) {
560
-                $slug = sanitize_key($nicename);
561
-                //check that such a payment method exists
562
-                $exists = $wpdb->get_var($wpdb->prepare("SELECT count(*) FROM $table_name WHERE PMD_slug = %s", $slug));
563
-                if ( ! $exists) {
564
-                    $values = array(
565
-                        'PMD_type'       => 'Admin_Only',
566
-                        'PMD_name'       => $nicename,
567
-                        'PMD_admin_name' => $nicename,
568
-                        'PMD_admin_desc' => $description,
569
-                        'PMD_slug'       => $slug,
570
-                        'PMD_wp_user'    => $user_id,
571
-                        'PMD_scope'      => serialize(array('ADMIN')),
572
-                    );
573
-                    $success = $wpdb->insert(
574
-                        $table_name,
575
-                        $values,
576
-                        array(
577
-                            '%s',//PMD_type
578
-                            '%s',//PMD_name
579
-                            '%s',//PMD_admin_name
580
-                            '%s',//PMD_admin_desc
581
-                            '%s',//PMD_slug
582
-                            '%d',//PMD_wp_user
583
-                            '%s',//PMD_scope
584
-                        )
585
-                    );
586
-                    if ( ! $success) {
587
-                        $this->add_error(sprintf(__("Could not insert new admin-only payment method with values %s during migration",
588
-                            "event_espresso"), $this->_json_encode($values)));
589
-                    }
590
-                }
591
-            }
592
-        }
593
-    }
594
-
595
-
596
-
597
-    /**
598
-     * insert_default_countries
599
-     *
600
-     * @static
601
-     * @return void
602
-     */
603
-    public function insert_default_currencies()
604
-    {
605
-        global $wpdb;
606
-        $currency_table = $wpdb->prefix . "esp_currency";
607
-        if ($this->_get_table_analysis()->tableExists($currency_table)) {
608
-            $SQL = "SELECT COUNT('CUR_code') FROM $currency_table";
609
-            $countries = $wpdb->get_var($SQL);
610
-            if ( ! $countries) {
611
-                $SQL = "INSERT INTO $currency_table
499
+		$this->_table_should_exist_previously($table_name, $sql, 'ENGINE=InnoDB');
500
+		/** @var EE_DMS_Core_4_1_0 $script_4_1_defaults */
501
+		$script_4_1_defaults = EE_Registry::instance()->load_dms('Core_4_1_0');
502
+		//(because many need to convert old string states to foreign keys into the states table)
503
+		$script_4_1_defaults->insert_default_states();
504
+		$script_4_1_defaults->insert_default_countries();
505
+		/** @var EE_DMS_Core_4_5_0 $script_4_5_defaults */
506
+		$script_4_5_defaults = EE_Registry::instance()->load_dms('Core_4_5_0');
507
+		$script_4_5_defaults->insert_default_price_types();
508
+		$script_4_5_defaults->insert_default_prices();
509
+		$script_4_5_defaults->insert_default_tickets();
510
+		//setting up the config wp option pretty well counts as a 'schema change', or at least should happen here
511
+		EE_Config::instance()->update_espresso_config(false, true);
512
+		$this->add_default_admin_only_payments();
513
+		$this->insert_default_currencies();
514
+		return true;
515
+	}
516
+
517
+
518
+
519
+	/**
520
+	 * @return boolean
521
+	 */
522
+	public function schema_changes_after_migration()
523
+	{
524
+		return true;
525
+	}
526
+
527
+
528
+
529
+	public function migration_page_hooks()
530
+	{
531
+	}
532
+
533
+
534
+
535
+	public function add_default_admin_only_payments()
536
+	{
537
+		global $wpdb;
538
+		$table_name = $wpdb->prefix . "esp_payment_method";
539
+		$user_id = EEH_Activation::get_default_creator_id();
540
+		if ($this->_get_table_analysis()->tableExists($table_name)) {
541
+			$SQL = "SELECT COUNT( * ) FROM $table_name";
542
+			$existing_payment_methods = $wpdb->get_var($SQL);
543
+			$default_admin_only_payment_methods = apply_filters(
544
+				'FHEE__EEH_Activation__add_default_admin_only_payments__default_admin_only_payment_methods',
545
+				array(
546
+					__("Bank", 'event_espresso')        => __("Bank Draft", 'event_espresso'),
547
+					__("Cash", 'event_espresso')        => __("Cash Delivered Physically", 'event_espresso'),
548
+					__("Check", 'event_espresso')       => __("Paper Check", 'event_espresso'),
549
+					__("Credit Card", 'event_espresso') => __("Offline Credit Card Payment", 'event_espresso'),
550
+					__("Debit Card", 'event_espresso')  => __("Offline Debit Payment", 'event_espresso'),
551
+					__("Invoice", 'event_espresso')     => __("Invoice received with monies included",
552
+						'event_espresso'),
553
+					__("Money Order", 'event_espresso') => '',
554
+					__("Paypal", 'event_espresso')      => __("Paypal eCheck, Invoice, etc", 'event_espresso'),
555
+					__('Other', 'event_espresso')       => __('Other method of payment', 'event_espresso'),
556
+				));
557
+			//make sure we hae payment method records for the following
558
+			//so admins can record payments for them from the admin page
559
+			foreach ($default_admin_only_payment_methods as $nicename => $description) {
560
+				$slug = sanitize_key($nicename);
561
+				//check that such a payment method exists
562
+				$exists = $wpdb->get_var($wpdb->prepare("SELECT count(*) FROM $table_name WHERE PMD_slug = %s", $slug));
563
+				if ( ! $exists) {
564
+					$values = array(
565
+						'PMD_type'       => 'Admin_Only',
566
+						'PMD_name'       => $nicename,
567
+						'PMD_admin_name' => $nicename,
568
+						'PMD_admin_desc' => $description,
569
+						'PMD_slug'       => $slug,
570
+						'PMD_wp_user'    => $user_id,
571
+						'PMD_scope'      => serialize(array('ADMIN')),
572
+					);
573
+					$success = $wpdb->insert(
574
+						$table_name,
575
+						$values,
576
+						array(
577
+							'%s',//PMD_type
578
+							'%s',//PMD_name
579
+							'%s',//PMD_admin_name
580
+							'%s',//PMD_admin_desc
581
+							'%s',//PMD_slug
582
+							'%d',//PMD_wp_user
583
+							'%s',//PMD_scope
584
+						)
585
+					);
586
+					if ( ! $success) {
587
+						$this->add_error(sprintf(__("Could not insert new admin-only payment method with values %s during migration",
588
+							"event_espresso"), $this->_json_encode($values)));
589
+					}
590
+				}
591
+			}
592
+		}
593
+	}
594
+
595
+
596
+
597
+	/**
598
+	 * insert_default_countries
599
+	 *
600
+	 * @static
601
+	 * @return void
602
+	 */
603
+	public function insert_default_currencies()
604
+	{
605
+		global $wpdb;
606
+		$currency_table = $wpdb->prefix . "esp_currency";
607
+		if ($this->_get_table_analysis()->tableExists($currency_table)) {
608
+			$SQL = "SELECT COUNT('CUR_code') FROM $currency_table";
609
+			$countries = $wpdb->get_var($SQL);
610
+			if ( ! $countries) {
611
+				$SQL = "INSERT INTO $currency_table
612 612
 				( CUR_code, CUR_single, CUR_plural, CUR_sign, CUR_dec_plc, CUR_active) VALUES
613 613
 				( 'EUR',  'Euro',  'Euros',  '€',  2,1),
614 614
 				( 'AED',  'Dirham',  'Dirhams', 'د.إ',2,1),
@@ -762,10 +762,10 @@  discard block
 block discarded – undo
762 762
 				( 'ZAR',  'Rand',  'Rands',  'R',  2,1),
763 763
 				( 'ZMK',  'Kwacha',  'Kwachas',  '',  2,1),
764 764
 				( 'ZWD', 'Dollar', 'Dollars', 'Z$', 2,1);";
765
-                $wpdb->query($SQL);
766
-            }
767
-        }
768
-    }
765
+				$wpdb->query($SQL);
766
+			}
767
+		}
768
+	}
769 769
 
770 770
 }
771 771
 
Please login to merge, or discard this patch.
strategies/validation/EE_Email_Validation_Strategy.strategy.php 2 patches
Indentation   +103 added lines, -103 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php if (! defined('EVENT_ESPRESSO_VERSION')) {
2
-    exit('No direct script access allowed');
2
+	exit('No direct script access allowed');
3 3
 }
4 4
 
5 5
 
@@ -15,117 +15,117 @@  discard block
 block discarded – undo
15 15
 class EE_Email_Validation_Strategy extends EE_Text_Validation_Strategy
16 16
 {
17 17
 
18
-    /**
19
-     * @param null $validation_error_message
20
-     */
21
-    public function __construct($validation_error_message = null)
22
-    {
23
-        if (! $validation_error_message) {
24
-            $validation_error_message = __("Please enter a valid email address.", "event_espresso");
25
-        }
26
-        parent::__construct($validation_error_message);
27
-    }
18
+	/**
19
+	 * @param null $validation_error_message
20
+	 */
21
+	public function __construct($validation_error_message = null)
22
+	{
23
+		if (! $validation_error_message) {
24
+			$validation_error_message = __("Please enter a valid email address.", "event_espresso");
25
+		}
26
+		parent::__construct($validation_error_message);
27
+	}
28 28
 
29 29
 
30 30
 
31
-    /**
32
-     * just checks the field isn't blank
33
-     *
34
-     * @param $normalized_value
35
-     * @return bool
36
-     * @throws \EE_Validation_Error
37
-     */
38
-    public function validate($normalized_value)
39
-    {
40
-        if ($normalized_value && ! $this->_validate_email($normalized_value)) {
41
-            throw new EE_Validation_Error($this->get_validation_error_message(), 'required');
42
-        }
43
-    }
31
+	/**
32
+	 * just checks the field isn't blank
33
+	 *
34
+	 * @param $normalized_value
35
+	 * @return bool
36
+	 * @throws \EE_Validation_Error
37
+	 */
38
+	public function validate($normalized_value)
39
+	{
40
+		if ($normalized_value && ! $this->_validate_email($normalized_value)) {
41
+			throw new EE_Validation_Error($this->get_validation_error_message(), 'required');
42
+		}
43
+	}
44 44
 
45 45
 
46 46
 
47
-    /**
48
-     * @return array
49
-     */
50
-    public function get_jquery_validation_rule_array()
51
-    {
52
-        return array('email' => true, 'messages' => array('email' => $this->get_validation_error_message()));
53
-    }
47
+	/**
48
+	 * @return array
49
+	 */
50
+	public function get_jquery_validation_rule_array()
51
+	{
52
+		return array('email' => true, 'messages' => array('email' => $this->get_validation_error_message()));
53
+	}
54 54
 
55 55
 
56 56
 
57
-    /**
58
-     * Validate an email address.
59
-     * Provide email address (raw input)
60
-     *
61
-     * @param $email
62
-     * @return bool of whether the email is valid or not
63
-     * @throws \EE_Validation_Error
64
-     */
65
-    private function _validate_email($email)
66
-    {
67
-        $validation_level = isset(EE_Registry::instance()->CFG->registration->email_validation_level)
68
-            ? EE_Registry::instance()->CFG->registration->email_validation_level
69
-            : 'wp_default';
70
-        if (! preg_match('/^.+\@\S+$/', $email)) { // \.\S+
71
-            // email not in correct {string}@{string} format
72
-            return false;
73
-        } else {
74
-            $atIndex = strrpos($email, "@");
75
-            $domain = substr($email, $atIndex + 1);
76
-            $local = substr($email, 0, $atIndex);
77
-            $localLen = strlen($local);
78
-            $domainLen = strlen($domain);
79
-            if ($localLen < 1 || $localLen > 64) {
80
-                // local part length exceeded
81
-                return false;
82
-            } else if ($domainLen < 1 || $domainLen > 255) {
83
-                // domain part length exceeded
84
-                return false;
85
-            } else if ($local[0] === '.' || $local[$localLen - 1] === '.') {
86
-                // local part starts or ends with '.'
87
-                return false;
88
-            } else if (preg_match('/\\.\\./', $local)) {
89
-                // local part has two consecutive dots
90
-                return false;
91
-            } else if (preg_match('/\\.\\./', $domain)) {
92
-                // domain part has two consecutive dots
93
-                return false;
94
-            } else if ($validation_level === 'wp_default') {
95
-                return is_email($email);
96
-            } else if (
97
-                ($validation_level === 'i18n' || $validation_level === 'i18n_dns')
98
-                // plz see http://stackoverflow.com/a/24817336 re: the following regex
99
-                && ! preg_match(
100
-                    '/^(?!\.)((?!.*\.{2})[a-zA-Z0-9\x{0080}-\x{00FF}\x{0100}-\x{017F}\x{0180}-\x{024F}\x{0250}-\x{02AF}\x{0300}-\x{036F}\x{0370}-\x{03FF}\x{0400}-\x{04FF}\x{0500}-\x{052F}\x{0530}-\x{058F}\x{0590}-\x{05FF}\x{0600}-\x{06FF}\x{0700}-\x{074F}\x{0750}-\x{077F}\x{0780}-\x{07BF}\x{07C0}-\x{07FF}\x{0900}-\x{097F}\x{0980}-\x{09FF}\x{0A00}-\x{0A7F}\x{0A80}-\x{0AFF}\x{0B00}-\x{0B7F}\x{0B80}-\x{0BFF}\x{0C00}-\x{0C7F}\x{0C80}-\x{0CFF}\x{0D00}-\x{0D7F}\x{0D80}-\x{0DFF}\x{0E00}-\x{0E7F}\x{0E80}-\x{0EFF}\x{0F00}-\x{0FFF}\x{1000}-\x{109F}\x{10A0}-\x{10FF}\x{1100}-\x{11FF}\x{1200}-\x{137F}\x{1380}-\x{139F}\x{13A0}-\x{13FF}\x{1400}-\x{167F}\x{1680}-\x{169F}\x{16A0}-\x{16FF}\x{1700}-\x{171F}\x{1720}-\x{173F}\x{1740}-\x{175F}\x{1760}-\x{177F}\x{1780}-\x{17FF}\x{1800}-\x{18AF}\x{1900}-\x{194F}\x{1950}-\x{197F}\x{1980}-\x{19DF}\x{19E0}-\x{19FF}\x{1A00}-\x{1A1F}\x{1B00}-\x{1B7F}\x{1D00}-\x{1D7F}\x{1D80}-\x{1DBF}\x{1DC0}-\x{1DFF}\x{1E00}-\x{1EFF}\x{1F00}-\x{1FFF}\x{20D0}-\x{20FF}\x{2100}-\x{214F}\x{2C00}-\x{2C5F}\x{2C60}-\x{2C7F}\x{2C80}-\x{2CFF}\x{2D00}-\x{2D2F}\x{2D30}-\x{2D7F}\x{2D80}-\x{2DDF}\x{2F00}-\x{2FDF}\x{2FF0}-\x{2FFF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3100}-\x{312F}\x{3130}-\x{318F}\x{3190}-\x{319F}\x{31C0}-\x{31EF}\x{31F0}-\x{31FF}\x{3200}-\x{32FF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4DC0}-\x{4DFF}\x{4E00}-\x{9FFF}\x{A000}-\x{A48F}\x{A490}-\x{A4CF}\x{A700}-\x{A71F}\x{A800}-\x{A82F}\x{A840}-\x{A87F}\x{AC00}-\x{D7AF}\x{F900}-\x{FAFF}\.!#$%&\'*+-\/=?^_`{|}~\-\d]+)@(?!\.)([a-zA-Z0-9\x{0080}-\x{00FF}\x{0100}-\x{017F}\x{0180}-\x{024F}\x{0250}-\x{02AF}\x{0300}-\x{036F}\x{0370}-\x{03FF}\x{0400}-\x{04FF}\x{0500}-\x{052F}\x{0530}-\x{058F}\x{0590}-\x{05FF}\x{0600}-\x{06FF}\x{0700}-\x{074F}\x{0750}-\x{077F}\x{0780}-\x{07BF}\x{07C0}-\x{07FF}\x{0900}-\x{097F}\x{0980}-\x{09FF}\x{0A00}-\x{0A7F}\x{0A80}-\x{0AFF}\x{0B00}-\x{0B7F}\x{0B80}-\x{0BFF}\x{0C00}-\x{0C7F}\x{0C80}-\x{0CFF}\x{0D00}-\x{0D7F}\x{0D80}-\x{0DFF}\x{0E00}-\x{0E7F}\x{0E80}-\x{0EFF}\x{0F00}-\x{0FFF}\x{1000}-\x{109F}\x{10A0}-\x{10FF}\x{1100}-\x{11FF}\x{1200}-\x{137F}\x{1380}-\x{139F}\x{13A0}-\x{13FF}\x{1400}-\x{167F}\x{1680}-\x{169F}\x{16A0}-\x{16FF}\x{1700}-\x{171F}\x{1720}-\x{173F}\x{1740}-\x{175F}\x{1760}-\x{177F}\x{1780}-\x{17FF}\x{1800}-\x{18AF}\x{1900}-\x{194F}\x{1950}-\x{197F}\x{1980}-\x{19DF}\x{19E0}-\x{19FF}\x{1A00}-\x{1A1F}\x{1B00}-\x{1B7F}\x{1D00}-\x{1D7F}\x{1D80}-\x{1DBF}\x{1DC0}-\x{1DFF}\x{1E00}-\x{1EFF}\x{1F00}-\x{1FFF}\x{20D0}-\x{20FF}\x{2100}-\x{214F}\x{2C00}-\x{2C5F}\x{2C60}-\x{2C7F}\x{2C80}-\x{2CFF}\x{2D00}-\x{2D2F}\x{2D30}-\x{2D7F}\x{2D80}-\x{2DDF}\x{2F00}-\x{2FDF}\x{2FF0}-\x{2FFF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3100}-\x{312F}\x{3130}-\x{318F}\x{3190}-\x{319F}\x{31C0}-\x{31EF}\x{31F0}-\x{31FF}\x{3200}-\x{32FF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4DC0}-\x{4DFF}\x{4E00}-\x{9FFF}\x{A000}-\x{A48F}\x{A490}-\x{A4CF}\x{A700}-\x{A71F}\x{A800}-\x{A82F}\x{A840}-\x{A87F}\x{AC00}-\x{D7AF}\x{F900}-\x{FAFF}\-\.\d]+)((\.([a-zA-Z\x{0080}-\x{00FF}\x{0100}-\x{017F}\x{0180}-\x{024F}\x{0250}-\x{02AF}\x{0300}-\x{036F}\x{0370}-\x{03FF}\x{0400}-\x{04FF}\x{0500}-\x{052F}\x{0530}-\x{058F}\x{0590}-\x{05FF}\x{0600}-\x{06FF}\x{0700}-\x{074F}\x{0750}-\x{077F}\x{0780}-\x{07BF}\x{07C0}-\x{07FF}\x{0900}-\x{097F}\x{0980}-\x{09FF}\x{0A00}-\x{0A7F}\x{0A80}-\x{0AFF}\x{0B00}-\x{0B7F}\x{0B80}-\x{0BFF}\x{0C00}-\x{0C7F}\x{0C80}-\x{0CFF}\x{0D00}-\x{0D7F}\x{0D80}-\x{0DFF}\x{0E00}-\x{0E7F}\x{0E80}-\x{0EFF}\x{0F00}-\x{0FFF}\x{1000}-\x{109F}\x{10A0}-\x{10FF}\x{1100}-\x{11FF}\x{1200}-\x{137F}\x{1380}-\x{139F}\x{13A0}-\x{13FF}\x{1400}-\x{167F}\x{1680}-\x{169F}\x{16A0}-\x{16FF}\x{1700}-\x{171F}\x{1720}-\x{173F}\x{1740}-\x{175F}\x{1760}-\x{177F}\x{1780}-\x{17FF}\x{1800}-\x{18AF}\x{1900}-\x{194F}\x{1950}-\x{197F}\x{1980}-\x{19DF}\x{19E0}-\x{19FF}\x{1A00}-\x{1A1F}\x{1B00}-\x{1B7F}\x{1D00}-\x{1D7F}\x{1D80}-\x{1DBF}\x{1DC0}-\x{1DFF}\x{1E00}-\x{1EFF}\x{1F00}-\x{1FFF}\x{20D0}-\x{20FF}\x{2100}-\x{214F}\x{2C00}-\x{2C5F}\x{2C60}-\x{2C7F}\x{2C80}-\x{2CFF}\x{2D00}-\x{2D2F}\x{2D30}-\x{2D7F}\x{2D80}-\x{2DDF}\x{2F00}-\x{2FDF}\x{2FF0}-\x{2FFF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3100}-\x{312F}\x{3130}-\x{318F}\x{3190}-\x{319F}\x{31C0}-\x{31EF}\x{31F0}-\x{31FF}\x{3200}-\x{32FF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4DC0}-\x{4DFF}\x{4E00}-\x{9FFF}\x{A000}-\x{A48F}\x{A490}-\x{A4CF}\x{A700}-\x{A71F}\x{A800}-\x{A82F}\x{A840}-\x{A87F}\x{AC00}-\x{D7AF}\x{F900}-\x{FAFF}]){2,63})+)$/u',
101
-                    $email
102
-                )
103
-            ) {
104
-                return false;
105
-            }
106
-            if ($validation_level === 'i18n_dns') {
107
-                if (! checkdnsrr($domain, "MX")) {
108
-                    // domain not found in MX records
109
-                    throw new EE_Validation_Error(
110
-                        __(
111
-                            'Although the email address provided is formatted correctly, a valid "MX record" could not be located for that address and domain. Please enter a valid email address.',
112
-                            'event_espresso'
113
-                        )
114
-                    );
115
-                } else if (! checkdnsrr($domain, "A")) {
116
-                    // domain not found in A records
117
-                    throw new EE_Validation_Error(
118
-                        __(
119
-                            'Although the email address provided is formatted correctly, a valid "A record" could not be located for that address and domain. Please enter a valid email address.',
120
-                            'event_espresso'
121
-                        )
122
-                    );
123
-                }
124
-            }
125
-        }
126
-        // you have successfully run the gauntlet young Padawan
127
-        return true;
128
-    }
57
+	/**
58
+	 * Validate an email address.
59
+	 * Provide email address (raw input)
60
+	 *
61
+	 * @param $email
62
+	 * @return bool of whether the email is valid or not
63
+	 * @throws \EE_Validation_Error
64
+	 */
65
+	private function _validate_email($email)
66
+	{
67
+		$validation_level = isset(EE_Registry::instance()->CFG->registration->email_validation_level)
68
+			? EE_Registry::instance()->CFG->registration->email_validation_level
69
+			: 'wp_default';
70
+		if (! preg_match('/^.+\@\S+$/', $email)) { // \.\S+
71
+			// email not in correct {string}@{string} format
72
+			return false;
73
+		} else {
74
+			$atIndex = strrpos($email, "@");
75
+			$domain = substr($email, $atIndex + 1);
76
+			$local = substr($email, 0, $atIndex);
77
+			$localLen = strlen($local);
78
+			$domainLen = strlen($domain);
79
+			if ($localLen < 1 || $localLen > 64) {
80
+				// local part length exceeded
81
+				return false;
82
+			} else if ($domainLen < 1 || $domainLen > 255) {
83
+				// domain part length exceeded
84
+				return false;
85
+			} else if ($local[0] === '.' || $local[$localLen - 1] === '.') {
86
+				// local part starts or ends with '.'
87
+				return false;
88
+			} else if (preg_match('/\\.\\./', $local)) {
89
+				// local part has two consecutive dots
90
+				return false;
91
+			} else if (preg_match('/\\.\\./', $domain)) {
92
+				// domain part has two consecutive dots
93
+				return false;
94
+			} else if ($validation_level === 'wp_default') {
95
+				return is_email($email);
96
+			} else if (
97
+				($validation_level === 'i18n' || $validation_level === 'i18n_dns')
98
+				// plz see http://stackoverflow.com/a/24817336 re: the following regex
99
+				&& ! preg_match(
100
+					'/^(?!\.)((?!.*\.{2})[a-zA-Z0-9\x{0080}-\x{00FF}\x{0100}-\x{017F}\x{0180}-\x{024F}\x{0250}-\x{02AF}\x{0300}-\x{036F}\x{0370}-\x{03FF}\x{0400}-\x{04FF}\x{0500}-\x{052F}\x{0530}-\x{058F}\x{0590}-\x{05FF}\x{0600}-\x{06FF}\x{0700}-\x{074F}\x{0750}-\x{077F}\x{0780}-\x{07BF}\x{07C0}-\x{07FF}\x{0900}-\x{097F}\x{0980}-\x{09FF}\x{0A00}-\x{0A7F}\x{0A80}-\x{0AFF}\x{0B00}-\x{0B7F}\x{0B80}-\x{0BFF}\x{0C00}-\x{0C7F}\x{0C80}-\x{0CFF}\x{0D00}-\x{0D7F}\x{0D80}-\x{0DFF}\x{0E00}-\x{0E7F}\x{0E80}-\x{0EFF}\x{0F00}-\x{0FFF}\x{1000}-\x{109F}\x{10A0}-\x{10FF}\x{1100}-\x{11FF}\x{1200}-\x{137F}\x{1380}-\x{139F}\x{13A0}-\x{13FF}\x{1400}-\x{167F}\x{1680}-\x{169F}\x{16A0}-\x{16FF}\x{1700}-\x{171F}\x{1720}-\x{173F}\x{1740}-\x{175F}\x{1760}-\x{177F}\x{1780}-\x{17FF}\x{1800}-\x{18AF}\x{1900}-\x{194F}\x{1950}-\x{197F}\x{1980}-\x{19DF}\x{19E0}-\x{19FF}\x{1A00}-\x{1A1F}\x{1B00}-\x{1B7F}\x{1D00}-\x{1D7F}\x{1D80}-\x{1DBF}\x{1DC0}-\x{1DFF}\x{1E00}-\x{1EFF}\x{1F00}-\x{1FFF}\x{20D0}-\x{20FF}\x{2100}-\x{214F}\x{2C00}-\x{2C5F}\x{2C60}-\x{2C7F}\x{2C80}-\x{2CFF}\x{2D00}-\x{2D2F}\x{2D30}-\x{2D7F}\x{2D80}-\x{2DDF}\x{2F00}-\x{2FDF}\x{2FF0}-\x{2FFF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3100}-\x{312F}\x{3130}-\x{318F}\x{3190}-\x{319F}\x{31C0}-\x{31EF}\x{31F0}-\x{31FF}\x{3200}-\x{32FF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4DC0}-\x{4DFF}\x{4E00}-\x{9FFF}\x{A000}-\x{A48F}\x{A490}-\x{A4CF}\x{A700}-\x{A71F}\x{A800}-\x{A82F}\x{A840}-\x{A87F}\x{AC00}-\x{D7AF}\x{F900}-\x{FAFF}\.!#$%&\'*+-\/=?^_`{|}~\-\d]+)@(?!\.)([a-zA-Z0-9\x{0080}-\x{00FF}\x{0100}-\x{017F}\x{0180}-\x{024F}\x{0250}-\x{02AF}\x{0300}-\x{036F}\x{0370}-\x{03FF}\x{0400}-\x{04FF}\x{0500}-\x{052F}\x{0530}-\x{058F}\x{0590}-\x{05FF}\x{0600}-\x{06FF}\x{0700}-\x{074F}\x{0750}-\x{077F}\x{0780}-\x{07BF}\x{07C0}-\x{07FF}\x{0900}-\x{097F}\x{0980}-\x{09FF}\x{0A00}-\x{0A7F}\x{0A80}-\x{0AFF}\x{0B00}-\x{0B7F}\x{0B80}-\x{0BFF}\x{0C00}-\x{0C7F}\x{0C80}-\x{0CFF}\x{0D00}-\x{0D7F}\x{0D80}-\x{0DFF}\x{0E00}-\x{0E7F}\x{0E80}-\x{0EFF}\x{0F00}-\x{0FFF}\x{1000}-\x{109F}\x{10A0}-\x{10FF}\x{1100}-\x{11FF}\x{1200}-\x{137F}\x{1380}-\x{139F}\x{13A0}-\x{13FF}\x{1400}-\x{167F}\x{1680}-\x{169F}\x{16A0}-\x{16FF}\x{1700}-\x{171F}\x{1720}-\x{173F}\x{1740}-\x{175F}\x{1760}-\x{177F}\x{1780}-\x{17FF}\x{1800}-\x{18AF}\x{1900}-\x{194F}\x{1950}-\x{197F}\x{1980}-\x{19DF}\x{19E0}-\x{19FF}\x{1A00}-\x{1A1F}\x{1B00}-\x{1B7F}\x{1D00}-\x{1D7F}\x{1D80}-\x{1DBF}\x{1DC0}-\x{1DFF}\x{1E00}-\x{1EFF}\x{1F00}-\x{1FFF}\x{20D0}-\x{20FF}\x{2100}-\x{214F}\x{2C00}-\x{2C5F}\x{2C60}-\x{2C7F}\x{2C80}-\x{2CFF}\x{2D00}-\x{2D2F}\x{2D30}-\x{2D7F}\x{2D80}-\x{2DDF}\x{2F00}-\x{2FDF}\x{2FF0}-\x{2FFF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3100}-\x{312F}\x{3130}-\x{318F}\x{3190}-\x{319F}\x{31C0}-\x{31EF}\x{31F0}-\x{31FF}\x{3200}-\x{32FF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4DC0}-\x{4DFF}\x{4E00}-\x{9FFF}\x{A000}-\x{A48F}\x{A490}-\x{A4CF}\x{A700}-\x{A71F}\x{A800}-\x{A82F}\x{A840}-\x{A87F}\x{AC00}-\x{D7AF}\x{F900}-\x{FAFF}\-\.\d]+)((\.([a-zA-Z\x{0080}-\x{00FF}\x{0100}-\x{017F}\x{0180}-\x{024F}\x{0250}-\x{02AF}\x{0300}-\x{036F}\x{0370}-\x{03FF}\x{0400}-\x{04FF}\x{0500}-\x{052F}\x{0530}-\x{058F}\x{0590}-\x{05FF}\x{0600}-\x{06FF}\x{0700}-\x{074F}\x{0750}-\x{077F}\x{0780}-\x{07BF}\x{07C0}-\x{07FF}\x{0900}-\x{097F}\x{0980}-\x{09FF}\x{0A00}-\x{0A7F}\x{0A80}-\x{0AFF}\x{0B00}-\x{0B7F}\x{0B80}-\x{0BFF}\x{0C00}-\x{0C7F}\x{0C80}-\x{0CFF}\x{0D00}-\x{0D7F}\x{0D80}-\x{0DFF}\x{0E00}-\x{0E7F}\x{0E80}-\x{0EFF}\x{0F00}-\x{0FFF}\x{1000}-\x{109F}\x{10A0}-\x{10FF}\x{1100}-\x{11FF}\x{1200}-\x{137F}\x{1380}-\x{139F}\x{13A0}-\x{13FF}\x{1400}-\x{167F}\x{1680}-\x{169F}\x{16A0}-\x{16FF}\x{1700}-\x{171F}\x{1720}-\x{173F}\x{1740}-\x{175F}\x{1760}-\x{177F}\x{1780}-\x{17FF}\x{1800}-\x{18AF}\x{1900}-\x{194F}\x{1950}-\x{197F}\x{1980}-\x{19DF}\x{19E0}-\x{19FF}\x{1A00}-\x{1A1F}\x{1B00}-\x{1B7F}\x{1D00}-\x{1D7F}\x{1D80}-\x{1DBF}\x{1DC0}-\x{1DFF}\x{1E00}-\x{1EFF}\x{1F00}-\x{1FFF}\x{20D0}-\x{20FF}\x{2100}-\x{214F}\x{2C00}-\x{2C5F}\x{2C60}-\x{2C7F}\x{2C80}-\x{2CFF}\x{2D00}-\x{2D2F}\x{2D30}-\x{2D7F}\x{2D80}-\x{2DDF}\x{2F00}-\x{2FDF}\x{2FF0}-\x{2FFF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3100}-\x{312F}\x{3130}-\x{318F}\x{3190}-\x{319F}\x{31C0}-\x{31EF}\x{31F0}-\x{31FF}\x{3200}-\x{32FF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4DC0}-\x{4DFF}\x{4E00}-\x{9FFF}\x{A000}-\x{A48F}\x{A490}-\x{A4CF}\x{A700}-\x{A71F}\x{A800}-\x{A82F}\x{A840}-\x{A87F}\x{AC00}-\x{D7AF}\x{F900}-\x{FAFF}]){2,63})+)$/u',
101
+					$email
102
+				)
103
+			) {
104
+				return false;
105
+			}
106
+			if ($validation_level === 'i18n_dns') {
107
+				if (! checkdnsrr($domain, "MX")) {
108
+					// domain not found in MX records
109
+					throw new EE_Validation_Error(
110
+						__(
111
+							'Although the email address provided is formatted correctly, a valid "MX record" could not be located for that address and domain. Please enter a valid email address.',
112
+							'event_espresso'
113
+						)
114
+					);
115
+				} else if (! checkdnsrr($domain, "A")) {
116
+					// domain not found in A records
117
+					throw new EE_Validation_Error(
118
+						__(
119
+							'Although the email address provided is formatted correctly, a valid "A record" could not be located for that address and domain. Please enter a valid email address.',
120
+							'event_espresso'
121
+						)
122
+					);
123
+				}
124
+			}
125
+		}
126
+		// you have successfully run the gauntlet young Padawan
127
+		return true;
128
+	}
129 129
 
130 130
 
131 131
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -1,4 +1,4 @@  discard block
 block discarded – undo
1
-<?php if (! defined('EVENT_ESPRESSO_VERSION')) {
1
+<?php if ( ! defined('EVENT_ESPRESSO_VERSION')) {
2 2
     exit('No direct script access allowed');
3 3
 }
4 4
 
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
      */
21 21
     public function __construct($validation_error_message = null)
22 22
     {
23
-        if (! $validation_error_message) {
23
+        if ( ! $validation_error_message) {
24 24
             $validation_error_message = __("Please enter a valid email address.", "event_espresso");
25 25
         }
26 26
         parent::__construct($validation_error_message);
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
         $validation_level = isset(EE_Registry::instance()->CFG->registration->email_validation_level)
68 68
             ? EE_Registry::instance()->CFG->registration->email_validation_level
69 69
             : 'wp_default';
70
-        if (! preg_match('/^.+\@\S+$/', $email)) { // \.\S+
70
+        if ( ! preg_match('/^.+\@\S+$/', $email)) { // \.\S+
71 71
             // email not in correct {string}@{string} format
72 72
             return false;
73 73
         } else {
@@ -104,7 +104,7 @@  discard block
 block discarded – undo
104 104
                 return false;
105 105
             }
106 106
             if ($validation_level === 'i18n_dns') {
107
-                if (! checkdnsrr($domain, "MX")) {
107
+                if ( ! checkdnsrr($domain, "MX")) {
108 108
                     // domain not found in MX records
109 109
                     throw new EE_Validation_Error(
110 110
                         __(
@@ -112,7 +112,7 @@  discard block
 block discarded – undo
112 112
                             'event_espresso'
113 113
                         )
114 114
                     );
115
-                } else if (! checkdnsrr($domain, "A")) {
115
+                } else if ( ! checkdnsrr($domain, "A")) {
116 116
                     // domain not found in A records
117 117
                     throw new EE_Validation_Error(
118 118
                         __(
Please login to merge, or discard this patch.
core/libraries/messages/EE_Messages_Generator.lib.php 2 patches
Indentation   +734 added lines, -734 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php if (! defined('EVENT_ESPRESSO_VERSION')) {
2
-    exit('No direct script access allowed');
2
+	exit('No direct script access allowed');
3 3
 }
4 4
 
5 5
 /**
@@ -14,740 +14,740 @@  discard block
 block discarded – undo
14 14
 {
15 15
 
16 16
 
17
-    /**
18
-     * @type EE_Messages_Data_Handler_Collection
19
-     */
20
-    protected $_data_handler_collection;
21
-
22
-    /**
23
-     * @type  EE_Message_Template_Group_Collection
24
-     */
25
-    protected $_template_collection;
26
-
27
-    /**
28
-     * This will hold the data handler for the current EE_Message being generated.
29
-     *
30
-     * @type EE_Messages_incoming_data
31
-     */
32
-    protected $_current_data_handler;
33
-
34
-    /**
35
-     * This holds the EE_Messages_Queue that contains the messages to generate.
36
-     *
37
-     * @type EE_Messages_Queue
38
-     */
39
-    protected $_generation_queue;
40
-
41
-    /**
42
-     * This holds the EE_Messages_Queue that will store the generated EE_Message objects.
43
-     *
44
-     * @type EE_Messages_Queue
45
-     */
46
-    protected $_ready_queue;
47
-
48
-    /**
49
-     * This is a container for any error messages that get created through the generation
50
-     * process.
51
-     *
52
-     * @type array
53
-     */
54
-    protected $_error_msg = array();
55
-
56
-    /**
57
-     * Flag used to set when the current EE_Message in the generation queue has been verified.
58
-     *
59
-     * @type bool
60
-     */
61
-    protected $_verified = false;
62
-
63
-    /**
64
-     * This will hold the current messenger object corresponding with the current EE_Message in the generation queue.
65
-     *
66
-     * @type EE_messenger
67
-     */
68
-    protected $_current_messenger;
69
-
70
-    /**
71
-     * This will hold the current message type object corresponding with the current EE_Message in the generation queue.
72
-     *
73
-     * @type EE_message_type
74
-     */
75
-    protected $_current_message_type;
76
-
77
-    /**
78
-     * @type EEH_Parse_Shortcodes
79
-     */
80
-    protected $_shortcode_parser;
81
-
82
-
83
-    /**
84
-     * @param EE_Messages_Queue                     $generation_queue
85
-     * @param \EE_Messages_Queue                    $ready_queue
86
-     * @param \EE_Messages_Data_Handler_Collection  $data_handler_collection
87
-     * @param \EE_Message_Template_Group_Collection $template_collection
88
-     * @param \EEH_Parse_Shortcodes                 $shortcode_parser
89
-     */
90
-    public function __construct(
91
-        EE_Messages_Queue $generation_queue,
92
-        EE_Messages_Queue $ready_queue,
93
-        EE_Messages_Data_Handler_Collection $data_handler_collection,
94
-        EE_Message_Template_Group_Collection $template_collection,
95
-        EEH_Parse_Shortcodes $shortcode_parser
96
-    ) {
97
-        $this->_generation_queue        = $generation_queue;
98
-        $this->_ready_queue             = $ready_queue;
99
-        $this->_data_handler_collection = $data_handler_collection;
100
-        $this->_template_collection     = $template_collection;
101
-        $this->_shortcode_parser        = $shortcode_parser;
102
-    }
103
-
104
-
105
-    /**
106
-     * @return EE_Messages_Queue
107
-     */
108
-    public function generation_queue()
109
-    {
110
-        return $this->_generation_queue;
111
-    }
112
-
113
-
114
-    /**
115
-     *  This iterates through the provided queue and generates the EE_Message objects.
116
-     *  When iterating through the queue, the queued item that served as the base for generating other EE_Message
117
-     *  objects gets removed and the new EE_Message objects get added to a NEW queue.  The NEW queue is then returned
118
-     *  for the caller to decide what to do with it.
119
-     *
120
-     * @param   bool $save Whether to save the EE_Message objects in the new queue or just return.
121
-     * @return EE_Messages_Queue  The new queue for holding generated EE_Message objects.
122
-     */
123
-    public function generate($save = true)
124
-    {
125
-        //iterate through the messages in the queue, generate, and add to new queue.
126
-        $this->_generation_queue->get_message_repository()->rewind();
127
-        while ($this->_generation_queue->get_message_repository()->valid()) {
128
-            //reset "current" properties
129
-            $this->_reset_current_properties();
130
-
131
-            /** @type EE_Message $msg */
132
-            $msg = $this->_generation_queue->get_message_repository()->current();
133
-
134
-            /**
135
-             * need to get the next object and capture it for setting manually after deletes.  The reason is that when
136
-             * an object is removed from the repo then valid for the next object will fail.
137
-             */
138
-            $this->_generation_queue->get_message_repository()->next();
139
-            $next_msg = $this->_generation_queue->get_message_repository()->current();
140
-            //restore pointer to current item
141
-            $this->_generation_queue->get_message_repository()->set_current($msg);
142
-
143
-            //skip and delete if the current $msg is NOT incomplete (queued for generation)
144
-            if ($msg->STS_ID() !== EEM_Message::status_incomplete) {
145
-                //we keep this item in the db just remove from the repo.
146
-                $this->_generation_queue->get_message_repository()->remove($msg);
147
-                //next item
148
-                $this->_generation_queue->get_message_repository()->set_current($next_msg);
149
-                continue;
150
-            }
151
-
152
-            if ($this->_verify()) {
153
-                //let's get generating!
154
-                $this->_generate();
155
-            }
156
-
157
-            //don't persist debug_only messages if the messages system is not in debug mode.
158
-            if (
159
-                $msg->STS_ID() === EEM_Message::status_debug_only
160
-                && ! EEM_Message::debug()
161
-            ) {
162
-                do_action('AHEE__EE_Messages_Generator__generate__before_debug_delete', $msg, $this->_error_msg,
163
-                    $this->_current_messenger, $this->_current_message_type, $this->_current_data_handler);
164
-                $this->_generation_queue->get_message_repository()->delete();
165
-                $this->_generation_queue->get_message_repository()->set_current($next_msg);
166
-                continue;
167
-            }
168
-
169
-            //if there are error messages then let's set the status and the error message.
170
-            if ($this->_error_msg) {
171
-                //if the status is already debug only, then let's leave it at that.
172
-                if ($msg->STS_ID() !== EEM_Message::status_debug_only) {
173
-                    $msg->set_STS_ID(EEM_Message::status_failed);
174
-                }
175
-                do_action('AHEE__EE_Messages_Generator__generate__processing_failed_message', $msg, $this->_error_msg,
176
-                    $this->_current_messenger, $this->_current_message_type, $this->_current_data_handler);
177
-                $msg->set_error_message(
178
-                    __('Message failed to generate for the following reasons: ')
179
-                    . "\n"
180
-                    . implode("\n", $this->_error_msg)
181
-                );
182
-                $msg->set_modified(time());
183
-            } else {
184
-                do_action('AHEE__EE_Messages_Generator__generate__before_successful_generated_message_delete', $msg,
185
-                    $this->_error_msg, $this->_current_messenger, $this->_current_message_type,
186
-                    $this->_current_data_handler);
187
-                //remove from db
188
-                $this->_generation_queue->get_message_repository()->delete();
189
-            }
190
-            //next item
191
-            $this->_generation_queue->get_message_repository()->set_current($next_msg);
192
-        }
193
-
194
-        //generation queue is ALWAYS saved to record any errors in the generation process.
195
-        $this->_generation_queue->save();
196
-
197
-        /**
198
-         * save _ready_queue if flag set.
199
-         * Note: The EE_Message objects have values set via the EE_Base_Class::set_field_or_extra_meta() method.  This
200
-         * means if a field was added that is not a valid database column.  The EE_Message was already saved to the db
201
-         * so a EE_Extra_Meta entry could be created and attached to the EE_Message.  In those cases the save flag is
202
-         * irrelevant.
203
-         */
204
-        if ($save) {
205
-            $this->_ready_queue->save();
206
-        }
207
-
208
-        //final reset of properties
209
-        $this->_reset_current_properties();
210
-
211
-        return $this->_ready_queue;
212
-    }
213
-
214
-
215
-    /**
216
-     * This resets all the properties used for holding "current" values corresponding to the current EE_Message object
217
-     * in the generation queue.
218
-     */
219
-    protected function _reset_current_properties()
220
-    {
221
-        $this->_verified = false;
222
-        //make sure any _data value in the current message type is reset
223
-        if ($this->_current_message_type instanceof EE_message_type) {
224
-            $this->_current_message_type->reset_data();
225
-        }
226
-        $this->_current_messenger = $this->_current_message_type = $this->_current_data_handler = null;
227
-    }
228
-
229
-
230
-    /**
231
-     * This proceeds with the actual generation of a message.  By the time this is called, there should already be a
232
-     * $_current_data_handler set and all incoming information should be validated for the current EE_Message in the
233
-     * _generating_queue.
234
-     *
235
-     * @return bool Whether the message was successfully generated or not.
236
-     */
237
-    protected function _generate()
238
-    {
239
-        //double check verification has run and that everything is ready to work with (saves us having to validate everything again).
240
-        if (! $this->_verified) {
241
-            return false; //get out because we don't have a valid setup to work with.
242
-        }
243
-
244
-
245
-        try {
246
-            $addressees = $this->_current_message_type->get_addressees(
247
-                $this->_current_data_handler,
248
-                $this->_generation_queue->get_message_repository()->current()->context()
249
-            );
250
-        } catch (EE_Error $e) {
251
-            $this->_error_msg[] = $e->getMessage();
252
-            return false;
253
-        }
254
-
255
-
256
-        //if no addressees then get out because there is nothing to generation (possible bad data).
257
-        if (! $this->_valid_addressees($addressees)) {
258
-            do_action('AHEE__EE_Messages_Generator___generate__invalid_addressees',
259
-                $this->_generation_queue->get_message_repository()->current(), $addressees, $this->_current_messenger,
260
-                $this->_current_message_type, $this->_current_data_handler);
261
-            $this->_generation_queue->get_message_repository()->current()->set_STS_ID(EEM_Message::status_debug_only);
262
-            $this->_error_msg[] = __('This is not a critical error but an informational notice. Unable to generate messages EE_Messages_Addressee objects.  There were no attendees prepared by the data handler.
17
+	/**
18
+	 * @type EE_Messages_Data_Handler_Collection
19
+	 */
20
+	protected $_data_handler_collection;
21
+
22
+	/**
23
+	 * @type  EE_Message_Template_Group_Collection
24
+	 */
25
+	protected $_template_collection;
26
+
27
+	/**
28
+	 * This will hold the data handler for the current EE_Message being generated.
29
+	 *
30
+	 * @type EE_Messages_incoming_data
31
+	 */
32
+	protected $_current_data_handler;
33
+
34
+	/**
35
+	 * This holds the EE_Messages_Queue that contains the messages to generate.
36
+	 *
37
+	 * @type EE_Messages_Queue
38
+	 */
39
+	protected $_generation_queue;
40
+
41
+	/**
42
+	 * This holds the EE_Messages_Queue that will store the generated EE_Message objects.
43
+	 *
44
+	 * @type EE_Messages_Queue
45
+	 */
46
+	protected $_ready_queue;
47
+
48
+	/**
49
+	 * This is a container for any error messages that get created through the generation
50
+	 * process.
51
+	 *
52
+	 * @type array
53
+	 */
54
+	protected $_error_msg = array();
55
+
56
+	/**
57
+	 * Flag used to set when the current EE_Message in the generation queue has been verified.
58
+	 *
59
+	 * @type bool
60
+	 */
61
+	protected $_verified = false;
62
+
63
+	/**
64
+	 * This will hold the current messenger object corresponding with the current EE_Message in the generation queue.
65
+	 *
66
+	 * @type EE_messenger
67
+	 */
68
+	protected $_current_messenger;
69
+
70
+	/**
71
+	 * This will hold the current message type object corresponding with the current EE_Message in the generation queue.
72
+	 *
73
+	 * @type EE_message_type
74
+	 */
75
+	protected $_current_message_type;
76
+
77
+	/**
78
+	 * @type EEH_Parse_Shortcodes
79
+	 */
80
+	protected $_shortcode_parser;
81
+
82
+
83
+	/**
84
+	 * @param EE_Messages_Queue                     $generation_queue
85
+	 * @param \EE_Messages_Queue                    $ready_queue
86
+	 * @param \EE_Messages_Data_Handler_Collection  $data_handler_collection
87
+	 * @param \EE_Message_Template_Group_Collection $template_collection
88
+	 * @param \EEH_Parse_Shortcodes                 $shortcode_parser
89
+	 */
90
+	public function __construct(
91
+		EE_Messages_Queue $generation_queue,
92
+		EE_Messages_Queue $ready_queue,
93
+		EE_Messages_Data_Handler_Collection $data_handler_collection,
94
+		EE_Message_Template_Group_Collection $template_collection,
95
+		EEH_Parse_Shortcodes $shortcode_parser
96
+	) {
97
+		$this->_generation_queue        = $generation_queue;
98
+		$this->_ready_queue             = $ready_queue;
99
+		$this->_data_handler_collection = $data_handler_collection;
100
+		$this->_template_collection     = $template_collection;
101
+		$this->_shortcode_parser        = $shortcode_parser;
102
+	}
103
+
104
+
105
+	/**
106
+	 * @return EE_Messages_Queue
107
+	 */
108
+	public function generation_queue()
109
+	{
110
+		return $this->_generation_queue;
111
+	}
112
+
113
+
114
+	/**
115
+	 *  This iterates through the provided queue and generates the EE_Message objects.
116
+	 *  When iterating through the queue, the queued item that served as the base for generating other EE_Message
117
+	 *  objects gets removed and the new EE_Message objects get added to a NEW queue.  The NEW queue is then returned
118
+	 *  for the caller to decide what to do with it.
119
+	 *
120
+	 * @param   bool $save Whether to save the EE_Message objects in the new queue or just return.
121
+	 * @return EE_Messages_Queue  The new queue for holding generated EE_Message objects.
122
+	 */
123
+	public function generate($save = true)
124
+	{
125
+		//iterate through the messages in the queue, generate, and add to new queue.
126
+		$this->_generation_queue->get_message_repository()->rewind();
127
+		while ($this->_generation_queue->get_message_repository()->valid()) {
128
+			//reset "current" properties
129
+			$this->_reset_current_properties();
130
+
131
+			/** @type EE_Message $msg */
132
+			$msg = $this->_generation_queue->get_message_repository()->current();
133
+
134
+			/**
135
+			 * need to get the next object and capture it for setting manually after deletes.  The reason is that when
136
+			 * an object is removed from the repo then valid for the next object will fail.
137
+			 */
138
+			$this->_generation_queue->get_message_repository()->next();
139
+			$next_msg = $this->_generation_queue->get_message_repository()->current();
140
+			//restore pointer to current item
141
+			$this->_generation_queue->get_message_repository()->set_current($msg);
142
+
143
+			//skip and delete if the current $msg is NOT incomplete (queued for generation)
144
+			if ($msg->STS_ID() !== EEM_Message::status_incomplete) {
145
+				//we keep this item in the db just remove from the repo.
146
+				$this->_generation_queue->get_message_repository()->remove($msg);
147
+				//next item
148
+				$this->_generation_queue->get_message_repository()->set_current($next_msg);
149
+				continue;
150
+			}
151
+
152
+			if ($this->_verify()) {
153
+				//let's get generating!
154
+				$this->_generate();
155
+			}
156
+
157
+			//don't persist debug_only messages if the messages system is not in debug mode.
158
+			if (
159
+				$msg->STS_ID() === EEM_Message::status_debug_only
160
+				&& ! EEM_Message::debug()
161
+			) {
162
+				do_action('AHEE__EE_Messages_Generator__generate__before_debug_delete', $msg, $this->_error_msg,
163
+					$this->_current_messenger, $this->_current_message_type, $this->_current_data_handler);
164
+				$this->_generation_queue->get_message_repository()->delete();
165
+				$this->_generation_queue->get_message_repository()->set_current($next_msg);
166
+				continue;
167
+			}
168
+
169
+			//if there are error messages then let's set the status and the error message.
170
+			if ($this->_error_msg) {
171
+				//if the status is already debug only, then let's leave it at that.
172
+				if ($msg->STS_ID() !== EEM_Message::status_debug_only) {
173
+					$msg->set_STS_ID(EEM_Message::status_failed);
174
+				}
175
+				do_action('AHEE__EE_Messages_Generator__generate__processing_failed_message', $msg, $this->_error_msg,
176
+					$this->_current_messenger, $this->_current_message_type, $this->_current_data_handler);
177
+				$msg->set_error_message(
178
+					__('Message failed to generate for the following reasons: ')
179
+					. "\n"
180
+					. implode("\n", $this->_error_msg)
181
+				);
182
+				$msg->set_modified(time());
183
+			} else {
184
+				do_action('AHEE__EE_Messages_Generator__generate__before_successful_generated_message_delete', $msg,
185
+					$this->_error_msg, $this->_current_messenger, $this->_current_message_type,
186
+					$this->_current_data_handler);
187
+				//remove from db
188
+				$this->_generation_queue->get_message_repository()->delete();
189
+			}
190
+			//next item
191
+			$this->_generation_queue->get_message_repository()->set_current($next_msg);
192
+		}
193
+
194
+		//generation queue is ALWAYS saved to record any errors in the generation process.
195
+		$this->_generation_queue->save();
196
+
197
+		/**
198
+		 * save _ready_queue if flag set.
199
+		 * Note: The EE_Message objects have values set via the EE_Base_Class::set_field_or_extra_meta() method.  This
200
+		 * means if a field was added that is not a valid database column.  The EE_Message was already saved to the db
201
+		 * so a EE_Extra_Meta entry could be created and attached to the EE_Message.  In those cases the save flag is
202
+		 * irrelevant.
203
+		 */
204
+		if ($save) {
205
+			$this->_ready_queue->save();
206
+		}
207
+
208
+		//final reset of properties
209
+		$this->_reset_current_properties();
210
+
211
+		return $this->_ready_queue;
212
+	}
213
+
214
+
215
+	/**
216
+	 * This resets all the properties used for holding "current" values corresponding to the current EE_Message object
217
+	 * in the generation queue.
218
+	 */
219
+	protected function _reset_current_properties()
220
+	{
221
+		$this->_verified = false;
222
+		//make sure any _data value in the current message type is reset
223
+		if ($this->_current_message_type instanceof EE_message_type) {
224
+			$this->_current_message_type->reset_data();
225
+		}
226
+		$this->_current_messenger = $this->_current_message_type = $this->_current_data_handler = null;
227
+	}
228
+
229
+
230
+	/**
231
+	 * This proceeds with the actual generation of a message.  By the time this is called, there should already be a
232
+	 * $_current_data_handler set and all incoming information should be validated for the current EE_Message in the
233
+	 * _generating_queue.
234
+	 *
235
+	 * @return bool Whether the message was successfully generated or not.
236
+	 */
237
+	protected function _generate()
238
+	{
239
+		//double check verification has run and that everything is ready to work with (saves us having to validate everything again).
240
+		if (! $this->_verified) {
241
+			return false; //get out because we don't have a valid setup to work with.
242
+		}
243
+
244
+
245
+		try {
246
+			$addressees = $this->_current_message_type->get_addressees(
247
+				$this->_current_data_handler,
248
+				$this->_generation_queue->get_message_repository()->current()->context()
249
+			);
250
+		} catch (EE_Error $e) {
251
+			$this->_error_msg[] = $e->getMessage();
252
+			return false;
253
+		}
254
+
255
+
256
+		//if no addressees then get out because there is nothing to generation (possible bad data).
257
+		if (! $this->_valid_addressees($addressees)) {
258
+			do_action('AHEE__EE_Messages_Generator___generate__invalid_addressees',
259
+				$this->_generation_queue->get_message_repository()->current(), $addressees, $this->_current_messenger,
260
+				$this->_current_message_type, $this->_current_data_handler);
261
+			$this->_generation_queue->get_message_repository()->current()->set_STS_ID(EEM_Message::status_debug_only);
262
+			$this->_error_msg[] = __('This is not a critical error but an informational notice. Unable to generate messages EE_Messages_Addressee objects.  There were no attendees prepared by the data handler.
263 263
 			  Sometimes this is because messages only get generated for certain registration statuses. For example, the ticket notice message type only goes to approved registrations.',
264
-                'event_espresso');
265
-            return false;
266
-        }
267
-
268
-        $message_template_group = $this->_get_message_template_group();
269
-
270
-        //in the unlikely event there is no EE_Message_Template_Group available, get out!
271
-        if (! $message_template_group instanceof EE_Message_Template_Group) {
272
-            $this->_error_msg[] = __('Unable to get the Message Templates for the Message being generated.  No message template group accessible.',
273
-                'event_espresso');
274
-            return false;
275
-        }
276
-
277
-        //get formatted templates for using to parse and setup EE_Message objects.
278
-        $templates = $this->_get_templates($message_template_group);
279
-
280
-
281
-        //setup new EE_Message objects (and add to _ready_queue)
282
-        return $this->_assemble_messages($addressees, $templates, $message_template_group);
283
-    }
284
-
285
-
286
-    /**
287
-     * Retrieves the message template group being used for generating messages.
288
-     * Note: this also utilizes the EE_Message_Template_Group_Collection to avoid having to hit the db multiple times.
289
-     *
290
-     * @return EE_Message_Template_Group | null
291
-     */
292
-    protected function _get_message_template_group()
293
-    {
294
-        //is there a GRP_ID already on the EE_Message object?  If there is, then a specific template has been requested
295
-        //so let's use that.
296
-        $GRP_ID = $this->_generation_queue->get_message_repository()->current()->GRP_ID();
297
-
298
-        if ($GRP_ID) {
299
-            //attempt to retrieve from repo first
300
-            $GRP = $this->_template_collection->get_by_ID($GRP_ID);
301
-            if ($GRP instanceof EE_Message_Template_Group) {
302
-                return $GRP;  //got it!
303
-            }
304
-
305
-            //nope don't have it yet.  Get from DB then add to repo if its not here, then that means the current GRP_ID
306
-            //is not valid, so we'll continue on in the code assuming there's NO GRP_ID.
307
-            $GRP = EEM_Message_Template_Group::instance()->get_one_by_ID($GRP_ID);
308
-            if ($GRP instanceof EE_Message_Template_Group) {
309
-                $this->_template_collection->add($GRP);
310
-                return $GRP;
311
-            }
312
-        }
313
-
314
-        //whatcha still doing here?  Oh, no Message Template Group yet I see.  Okay let's see if we can get it for you.
315
-
316
-        //defaults
317
-        $EVT_ID = 0;
318
-
319
-        $template_qa = array(
320
-            'MTP_is_active'    => true,
321
-            'MTP_messenger'    => $this->_current_messenger->name,
322
-            'MTP_message_type' => $this->_current_message_type->name,
323
-        );
324
-
325
-        //in vanilla EE we're assuming there's only one event.
326
-        //However, if there are multiple events then we'll just use the default templates instead of different
327
-        // templates per event (which could create problems).
328
-        if (count($this->_current_data_handler->events) === 1) {
329
-            foreach ($this->_current_data_handler->events as $event) {
330
-                $EVT_ID = $event['ID'];
331
-            }
332
-        }
333
-
334
-        //before going any further, let's see if its in the queue
335
-        $GRP = $this->_template_collection->get_by_key($this->_template_collection->get_key($this->_current_messenger->name,
336
-            $this->_current_message_type->name, $EVT_ID));
337
-
338
-        if ($GRP instanceof EE_Message_Template_Group) {
339
-            return $GRP;
340
-        }
341
-
342
-        //nope still no GRP?
343
-        //first we get the global template in case it has an override set.
344
-        $global_template_qa = array_merge(array('MTP_is_global' => true), $template_qa);
345
-        $global_GRP         = EEM_Message_Template_Group::instance()->get_one(array($global_template_qa));
346
-
347
-        //if this is an override, then we just return it.
348
-        if ($global_GRP instanceof EE_Message_Template_Group && $global_GRP->get('MTP_is_override')) {
349
-            $this->_template_collection->add($global_GRP, $EVT_ID);
350
-            return $global_GRP;
351
-        }
352
-
353
-        //STILL here? Okay that means we want to see if there is event specific group and if there is we return it,
354
-        //otherwise we return the global group we retrieved.
355
-        if ($EVT_ID) {
356
-            $template_qa['Event.EVT_ID'] = $EVT_ID;
357
-        }
358
-
359
-        $GRP = EEM_Message_Template_Group::instance()->get_one(array($template_qa));
360
-        $GRP = $GRP instanceof EE_Message_Template_Group ? $GRP : $global_GRP;
361
-
362
-        if ($GRP instanceof EE_Message_Template_Group) {
363
-            $this->_template_collection->add($GRP, $EVT_ID);
364
-            return $GRP;
365
-        }
366
-
367
-        //nothing, nada, there ain't no group from what you fed the machine. (Getting here is a very hard thing to do).
368
-        return null;
369
-    }
370
-
371
-
372
-    /**
373
-     *  Retrieves formatted array of template information for each context specific to the given
374
-     *  EE_Message_Template_Group
375
-     *
376
-     * @param   EE_Message_Template_Group
377
-     * @return  array   The returned array is in this structure:
378
-     *                          array(
379
-     *                          'field_name' => array(
380
-     *                          'context' => 'content'
381
-     *                          )
382
-     *                          )
383
-     */
384
-    protected function _get_templates(EE_Message_Template_Group $message_template_group)
385
-    {
386
-        $templates         = array();
387
-        $context_templates = $message_template_group->context_templates();
388
-        foreach ($context_templates as $context => $template_fields) {
389
-            foreach ($template_fields as $template_field => $template_obj) {
390
-                if (! $template_obj instanceof EE_Message_Template) {
391
-                    continue;
392
-                }
393
-                $templates[$template_field][$context] = $template_obj->get('MTP_content');
394
-            }
395
-        }
396
-        return $templates;
397
-    }
398
-
399
-
400
-    /**
401
-     * Assembles new fully generated EE_Message objects and adds to _ready_queue
402
-     *
403
-     * @param array                     $addressees Array of EE_Messages_Addressee objects indexed by message type
404
-     *                                              context.
405
-     * @param array                     $templates  formatted array of templates used for parsing data.
406
-     * @param EE_Message_Template_Group $message_template_group
407
-     * @return bool   true if message generation went a-ok.  false if some sort of exception occurred.  Note: The
408
-     *                method will attempt to generate ALL EE_Message objects and add to the _ready_queue.  Successfully
409
-     *                generated messages get added to the queue with EEM_Message::status_idle, unsuccessfully generated
410
-     *                messages will get added to the queue as EEM_Message::status_failed.  Very rarely should "false"
411
-     *                be returned from this method.
412
-     */
413
-    protected function _assemble_messages($addressees, $templates, EE_Message_Template_Group $message_template_group)
414
-    {
415
-
416
-        //if templates are empty then get out because we can't generate anything.
417
-        if (! $templates) {
418
-            $this->_error_msg[] = __('Unable to assemble messages because there are no templates retrieved for generating the messages with',
419
-                'event_espresso');
420
-            return false;
421
-        }
422
-
423
-        //We use this as the counter for generated messages because don't forget we may be executing this inside of a
424
-        //generation_queue.  So _ready_queue may have generated EE_Message objects already.
425
-        $generated_count = 0;
426
-        foreach ($addressees as $context => $recipients) {
427
-            foreach ($recipients as $recipient) {
428
-                $message = $this->_setup_message_object($context, $recipient, $templates, $message_template_group);
429
-                if ($message instanceof EE_Message) {
430
-                    $this->_ready_queue->add(
431
-                        $message,
432
-                        array(),
433
-                        $this->_generation_queue->get_message_repository()->is_preview(),
434
-                        $this->_generation_queue->get_message_repository()->is_test_send()
435
-                    );
436
-                    $generated_count++;
437
-                }
438
-
439
-                //if the current MSG being generated is for a test send then we'll only use ONE message in the generation.
440
-                if ($this->_generation_queue->get_message_repository()->is_test_send()) {
441
-                    break 2;
442
-                }
443
-            }
444
-        }
445
-
446
-        //if there are no generated messages then something else fatal went wrong.
447
-        return $generated_count > 0;
448
-    }
449
-
450
-
451
-    /**
452
-     * @param string                    $context   The context for the generated message.
453
-     * @param EE_Messages_Addressee     $recipient
454
-     * @param array                     $templates formatted array of templates used for parsing data.
455
-     * @param EE_Message_Template_Group $message_template_group
456
-     * @return EE_Message | bool  (false is used when no EE_Message is generated)
457
-     */
458
-    protected function _setup_message_object(
459
-        $context,
460
-        EE_Messages_Addressee $recipient,
461
-        $templates,
462
-        EE_Message_Template_Group $message_template_group
463
-    ) {
464
-        //stuff we already know
465
-        $transaction_id = $recipient->txn instanceof EE_Transaction ? $recipient->txn->ID() : 0;
466
-        $transaction_id = empty($transaction_id) && $this->_current_data_handler->txn instanceof EE_Transaction
467
-            ? $this->_current_data_handler->txn->ID()
468
-            : $transaction_id;
469
-        $message_fields = array(
470
-            'GRP_ID'           => $message_template_group->ID(),
471
-            'TXN_ID'           => $transaction_id,
472
-            'MSG_messenger'    => $this->_current_messenger->name,
473
-            'MSG_message_type' => $this->_current_message_type->name,
474
-            'MSG_context'      => $context,
475
-        );
476
-
477
-        //recipient id and type should be on the EE_Messages_Addressee object but if this is empty, let's try to grab the
478
-        //info from the att_obj found in the EE_Messages_Addressee object.
479
-        if (empty($recipient->recipient_id) || empty($recipient->recipient_type)) {
480
-            $message_fields['MSG_recipient_ID']   = $recipient->att_obj instanceof EE_Attendee
481
-                ? $recipient->att_obj->ID()
482
-                : 0;
483
-            $message_fields['MSG_recipient_type'] = 'Attendee';
484
-        } else {
485
-            $message_fields['MSG_recipient_ID']   = $recipient->recipient_id;
486
-            $message_fields['MSG_recipient_type'] = $recipient->recipient_type;
487
-        }
488
-        $message = EE_Message_Factory::create($message_fields);
489
-
490
-        //grab valid shortcodes for shortcode parser
491
-        $mt_shortcodes = $this->_current_message_type->get_valid_shortcodes();
492
-        $m_shortcodes  = $this->_current_messenger->get_valid_shortcodes();
493
-
494
-        //if the 'to' field is empty (messages will ALWAYS have a "to" field, then we get out because that means this
495
-        //context is turned off) EXCEPT if we're previewing
496
-        if (empty($templates['to'][$context])
497
-            && ! $this->_generation_queue->get_message_repository()->is_preview()
498
-            && ! $this->_current_messenger->allow_empty_to_field()
499
-        ) {
500
-            //we silently exit here and do NOT record a fail because the message is "turned off" by having no "to" field.
501
-            return false;
502
-        }
503
-        $error_msg = array();
504
-        foreach ($templates as $field => $field_context) {
505
-            $error_msg = array();
506
-            //let's setup the valid shortcodes for the incoming context.
507
-            $valid_shortcodes = $mt_shortcodes[$context];
508
-            //merge in valid shortcodes for the field.
509
-            $shortcodes = isset($m_shortcodes[$field]) ? $m_shortcodes[$field] : $valid_shortcodes;
510
-            if (isset($templates[$field][$context])) {
511
-                //prefix field.
512
-                $column_name = 'MSG_' . $field;
513
-                try {
514
-                    $content = $this->_shortcode_parser->parse_message_template(
515
-                        $templates[$field][$context],
516
-                        $recipient,
517
-                        $shortcodes,
518
-                        $this->_current_message_type,
519
-                        $this->_current_messenger,
520
-                        $message);
521
-                    $message->set_field_or_extra_meta($column_name, $content);
522
-                } catch (EE_Error $e) {
523
-                    $error_msg[] = sprintf(__('There was a problem generating the content for the field %s: %s',
524
-                        'event_espresso'), $field, $e->getMessage());
525
-                    $message->set_STS_ID(EEM_Message::status_failed);
526
-                }
527
-            }
528
-        }
529
-
530
-        if ($message->STS_ID() === EEM_Message::status_failed) {
531
-            $error_msg = __('There were problems generating this message:', 'event_espresso') . "\n" . implode("\n",
532
-                    $error_msg);
533
-            $message->set_error_message($error_msg);
534
-        } else {
535
-            $message->set_STS_ID(EEM_Message::status_idle);
536
-        }
537
-        return $message;
538
-    }
539
-
540
-
541
-    /**
542
-     * This verifies that the incoming array has a EE_messenger object and a EE_message_type object and sets appropriate
543
-     * error message if either is missing.
544
-     *
545
-     * @return bool         true means there were no errors, false means there were errors.
546
-     */
547
-    protected function _verify()
548
-    {
549
-        //reset error message to an empty array.
550
-        $this->_error_msg = array();
551
-        $valid            = true;
552
-        $valid            = $valid ? $this->_validate_messenger_and_message_type() : $valid;
553
-        $valid            = $valid ? $this->_validate_and_setup_data() : $valid;
554
-
555
-        //set the verified flag so we know everything has been validated.
556
-        $this->_verified = $valid;
557
-
558
-        return $valid;
559
-    }
560
-
561
-
562
-    /**
563
-     * This accepts an array and validates that it is an array indexed by context with each value being an array of
564
-     * EE_Messages_Addressee objects.
565
-     *
566
-     * @param array $addressees Keys correspond to contexts for the message type and values are EE_Messages_Addressee[]
567
-     * @return bool
568
-     */
569
-    protected function _valid_addressees($addressees)
570
-    {
571
-        if (! $addressees || ! is_array($addressees)) {
572
-            return false;
573
-        }
574
-
575
-        foreach ($addressees as $addressee_array) {
576
-            foreach ($addressee_array as $addressee) {
577
-                if (! $addressee instanceof EE_Messages_Addressee) {
578
-                    return false;
579
-                }
580
-            }
581
-        }
582
-        return true;
583
-    }
584
-
585
-
586
-    /**
587
-     * This validates the messenger, message type, and presences of generation data for the current EE_Message in the
588
-     * queue. This process sets error messages if something is wrong.
589
-     *
590
-     * @return bool   true is if there are no errors.  false is if there is.
591
-     */
592
-    protected function _validate_messenger_and_message_type()
593
-    {
594
-
595
-        //first are there any existing error messages?  If so then return.
596
-        if ($this->_error_msg) {
597
-            return false;
598
-        }
599
-        /** @type EE_Message $message */
600
-        $message = $this->_generation_queue->get_message_repository()->current();
601
-        try {
602
-            $this->_current_messenger = $message->valid_messenger(true) ? $message->messenger_object() : null;
603
-        } catch (Exception $e) {
604
-            $this->_error_msg[] = $e->getMessage();
605
-        }
606
-        try {
607
-            $this->_current_message_type = $message->valid_message_type(true) ? $message->message_type_object() : null;
608
-        } catch (Exception $e) {
609
-            $this->_error_msg[] = $e->getMessage();
610
-        }
611
-
612
-        /**
613
-         * Check if there is any generation data, but only if this is not for a preview.
614
-         */
615
-        if (! $this->_generation_queue->get_message_repository()->get_generation_data()
616
-            && (
617
-                ! $this->_generation_queue->get_message_repository()->is_preview()
618
-                && $this->_generation_queue->get_message_repository()->get_data_handler() !== 'EE_Messages_Preview_incoming_data')
619
-        ) {
620
-            $this->_error_msg[] = __('There is no generation data for this message. Unable to generate.');
621
-        }
622
-
623
-        return empty($this->_error_msg);
624
-    }
625
-
626
-
627
-    /**
628
-     * This method retrieves the expected data handler for the message type and validates the generation data for that
629
-     * data handler.
630
-     *
631
-     * @return bool true means there are no errors.  false means there were errors (and handler did not get setup).
632
-     */
633
-    protected function _validate_and_setup_data()
634
-    {
635
-
636
-        //First, are there any existing error messages?  If so, return because if there were errors elsewhere this can't
637
-        //be used anyways.
638
-        if ($this->_error_msg) {
639
-            return false;
640
-        }
641
-
642
-        $generation_data = $this->_generation_queue->get_message_repository()->get_generation_data();
643
-
644
-        /** @type EE_Messages_incoming_data $data_handler_class_name - well not really... just the class name actually */
645
-        $data_handler_class_name = $this->_generation_queue->get_message_repository()->get_data_handler()
646
-            ? $this->_generation_queue->get_message_repository()->get_data_handler()
647
-            : 'EE_Messages_' . $this->_current_message_type->get_data_handler($generation_data) . '_incoming_data';
648
-
649
-        //If this EE_Message is for a preview, then let's switch out to the preview data handler.
650
-        if ($this->_generation_queue->get_message_repository()->is_preview()) {
651
-            $data_handler_class_name = 'EE_Messages_Preview_incoming_data';
652
-        }
653
-
654
-        //First get the class name for the data handler (and also verifies it exists.
655
-        if (! class_exists($data_handler_class_name)) {
656
-            $this->_error_msg[] = sprintf(
657
-                __('The included data handler class name does not match any valid, accessible, "EE_Messages_incoming_data" classes.  Looking for %s.',
658
-                    'event_espresso'),
659
-                $data_handler_class_name
660
-            );
661
-            return false;
662
-        }
663
-
664
-        //convert generation_data for data_handler_instantiation.
665
-        $generation_data = $data_handler_class_name::convert_data_from_persistent_storage($generation_data);
666
-
667
-        //note, this may set error messages as well.
668
-        $this->_set_data_handler($generation_data, $data_handler_class_name);
669
-
670
-        return empty($this->_error_msg);
671
-    }
672
-
673
-
674
-    /**
675
-     * Sets the $_current_data_handler property that is used for generating the current EE_Message in the queue, and
676
-     * adds it to the _data repository.
677
-     *
678
-     * @param mixed  $generating_data           This is data expected by the instantiated data handler.
679
-     * @param string $data_handler_class_name   This is the reference string indicating what data handler is being
680
-     *                                          instantiated.
681
-     * @return void.
682
-     */
683
-    protected function _set_data_handler($generating_data, $data_handler_class_name)
684
-    {
685
-        //valid classname for the data handler.  Now let's setup the key for the data handler repository to see if there
686
-        //is already a ready data handler in the repository.
687
-        $this->_current_data_handler = $this->_data_handler_collection->get_by_key($this->_data_handler_collection->get_key($data_handler_class_name,
688
-            $generating_data));
689
-        if (! $this->_current_data_handler instanceof EE_Messages_incoming_data) {
690
-            //no saved data_handler in the repo so let's set one up and add it to the repo.
691
-            try {
692
-                $this->_current_data_handler = new $data_handler_class_name($generating_data);
693
-                $this->_data_handler_collection->add($this->_current_data_handler, $generating_data);
694
-            } catch (EE_Error $e) {
695
-                $this->_error_msg[] = $e->get_error();
696
-            }
697
-        }
698
-    }
699
-
700
-
701
-    /**
702
-     * The queued EE_Message for generation does not save the data used for generation as objects
703
-     * because serialization of those objects could be problematic if the data is saved to the db.
704
-     * So this method calls the static method on the associated data_handler for the given message_type
705
-     * and that preps the data for later instantiation when generating.
706
-     *
707
-     * @param EE_Message_To_Generate $message_to_generate
708
-     * @param bool                   $preview Indicate whether this is being used for a preview or not.
709
-     * @return mixed Prepped data for persisting to the queue.  false is returned if unable to prep data.
710
-     */
711
-    protected function _prepare_data_for_queue(EE_Message_To_Generate $message_to_generate, $preview)
712
-    {
713
-        /** @type EE_Messages_incoming_data $data_handler - well not really... just the class name actually */
714
-        $data_handler = $message_to_generate->get_data_handler_class_name($preview);
715
-        if (! $message_to_generate->valid()) {
716
-            return false; //unable to get the data because the info in the EE_Message_To_Generate class is invalid.
717
-        }
718
-        return $data_handler::convert_data_for_persistent_storage($message_to_generate->data());
719
-    }
720
-
721
-
722
-    /**
723
-     * This sets up a EEM_Message::status_incomplete EE_Message object and adds it to the generation queue.
724
-     *
725
-     * @param EE_Message_To_Generate $message_to_generate
726
-     * @param bool                   $test_send Whether this is just a test send or not.  Typically used for previews.
727
-     */
728
-    public function create_and_add_message_to_queue(EE_Message_To_Generate $message_to_generate, $test_send = false)
729
-    {
730
-        //prep data
731
-        $data = $this->_prepare_data_for_queue($message_to_generate, $message_to_generate->preview());
732
-
733
-        $message = $message_to_generate->get_EE_Message();
734
-
735
-        //is there a GRP_ID in the request?
736
-        if ($GRP_ID = EE_Registry::instance()->REQ->get('GRP_ID')) {
737
-            $message->set_GRP_ID($GRP_ID);
738
-        }
739
-
740
-        if ($data === false) {
741
-            $message->set_STS_ID(EEM_Message::status_failed);
742
-            $message->set_error_message(__('Unable to prepare data for persistence to the database.',
743
-                'event_espresso'));
744
-        } else {
745
-            //make sure that the data handler is cached on the message as well
746
-            $data['data_handler_class_name'] = $message_to_generate->get_data_handler_class_name();
747
-        }
748
-
749
-        $this->_generation_queue->add($message, $data, $message_to_generate->preview(), $test_send);
750
-    }
264
+				'event_espresso');
265
+			return false;
266
+		}
267
+
268
+		$message_template_group = $this->_get_message_template_group();
269
+
270
+		//in the unlikely event there is no EE_Message_Template_Group available, get out!
271
+		if (! $message_template_group instanceof EE_Message_Template_Group) {
272
+			$this->_error_msg[] = __('Unable to get the Message Templates for the Message being generated.  No message template group accessible.',
273
+				'event_espresso');
274
+			return false;
275
+		}
276
+
277
+		//get formatted templates for using to parse and setup EE_Message objects.
278
+		$templates = $this->_get_templates($message_template_group);
279
+
280
+
281
+		//setup new EE_Message objects (and add to _ready_queue)
282
+		return $this->_assemble_messages($addressees, $templates, $message_template_group);
283
+	}
284
+
285
+
286
+	/**
287
+	 * Retrieves the message template group being used for generating messages.
288
+	 * Note: this also utilizes the EE_Message_Template_Group_Collection to avoid having to hit the db multiple times.
289
+	 *
290
+	 * @return EE_Message_Template_Group | null
291
+	 */
292
+	protected function _get_message_template_group()
293
+	{
294
+		//is there a GRP_ID already on the EE_Message object?  If there is, then a specific template has been requested
295
+		//so let's use that.
296
+		$GRP_ID = $this->_generation_queue->get_message_repository()->current()->GRP_ID();
297
+
298
+		if ($GRP_ID) {
299
+			//attempt to retrieve from repo first
300
+			$GRP = $this->_template_collection->get_by_ID($GRP_ID);
301
+			if ($GRP instanceof EE_Message_Template_Group) {
302
+				return $GRP;  //got it!
303
+			}
304
+
305
+			//nope don't have it yet.  Get from DB then add to repo if its not here, then that means the current GRP_ID
306
+			//is not valid, so we'll continue on in the code assuming there's NO GRP_ID.
307
+			$GRP = EEM_Message_Template_Group::instance()->get_one_by_ID($GRP_ID);
308
+			if ($GRP instanceof EE_Message_Template_Group) {
309
+				$this->_template_collection->add($GRP);
310
+				return $GRP;
311
+			}
312
+		}
313
+
314
+		//whatcha still doing here?  Oh, no Message Template Group yet I see.  Okay let's see if we can get it for you.
315
+
316
+		//defaults
317
+		$EVT_ID = 0;
318
+
319
+		$template_qa = array(
320
+			'MTP_is_active'    => true,
321
+			'MTP_messenger'    => $this->_current_messenger->name,
322
+			'MTP_message_type' => $this->_current_message_type->name,
323
+		);
324
+
325
+		//in vanilla EE we're assuming there's only one event.
326
+		//However, if there are multiple events then we'll just use the default templates instead of different
327
+		// templates per event (which could create problems).
328
+		if (count($this->_current_data_handler->events) === 1) {
329
+			foreach ($this->_current_data_handler->events as $event) {
330
+				$EVT_ID = $event['ID'];
331
+			}
332
+		}
333
+
334
+		//before going any further, let's see if its in the queue
335
+		$GRP = $this->_template_collection->get_by_key($this->_template_collection->get_key($this->_current_messenger->name,
336
+			$this->_current_message_type->name, $EVT_ID));
337
+
338
+		if ($GRP instanceof EE_Message_Template_Group) {
339
+			return $GRP;
340
+		}
341
+
342
+		//nope still no GRP?
343
+		//first we get the global template in case it has an override set.
344
+		$global_template_qa = array_merge(array('MTP_is_global' => true), $template_qa);
345
+		$global_GRP         = EEM_Message_Template_Group::instance()->get_one(array($global_template_qa));
346
+
347
+		//if this is an override, then we just return it.
348
+		if ($global_GRP instanceof EE_Message_Template_Group && $global_GRP->get('MTP_is_override')) {
349
+			$this->_template_collection->add($global_GRP, $EVT_ID);
350
+			return $global_GRP;
351
+		}
352
+
353
+		//STILL here? Okay that means we want to see if there is event specific group and if there is we return it,
354
+		//otherwise we return the global group we retrieved.
355
+		if ($EVT_ID) {
356
+			$template_qa['Event.EVT_ID'] = $EVT_ID;
357
+		}
358
+
359
+		$GRP = EEM_Message_Template_Group::instance()->get_one(array($template_qa));
360
+		$GRP = $GRP instanceof EE_Message_Template_Group ? $GRP : $global_GRP;
361
+
362
+		if ($GRP instanceof EE_Message_Template_Group) {
363
+			$this->_template_collection->add($GRP, $EVT_ID);
364
+			return $GRP;
365
+		}
366
+
367
+		//nothing, nada, there ain't no group from what you fed the machine. (Getting here is a very hard thing to do).
368
+		return null;
369
+	}
370
+
371
+
372
+	/**
373
+	 *  Retrieves formatted array of template information for each context specific to the given
374
+	 *  EE_Message_Template_Group
375
+	 *
376
+	 * @param   EE_Message_Template_Group
377
+	 * @return  array   The returned array is in this structure:
378
+	 *                          array(
379
+	 *                          'field_name' => array(
380
+	 *                          'context' => 'content'
381
+	 *                          )
382
+	 *                          )
383
+	 */
384
+	protected function _get_templates(EE_Message_Template_Group $message_template_group)
385
+	{
386
+		$templates         = array();
387
+		$context_templates = $message_template_group->context_templates();
388
+		foreach ($context_templates as $context => $template_fields) {
389
+			foreach ($template_fields as $template_field => $template_obj) {
390
+				if (! $template_obj instanceof EE_Message_Template) {
391
+					continue;
392
+				}
393
+				$templates[$template_field][$context] = $template_obj->get('MTP_content');
394
+			}
395
+		}
396
+		return $templates;
397
+	}
398
+
399
+
400
+	/**
401
+	 * Assembles new fully generated EE_Message objects and adds to _ready_queue
402
+	 *
403
+	 * @param array                     $addressees Array of EE_Messages_Addressee objects indexed by message type
404
+	 *                                              context.
405
+	 * @param array                     $templates  formatted array of templates used for parsing data.
406
+	 * @param EE_Message_Template_Group $message_template_group
407
+	 * @return bool   true if message generation went a-ok.  false if some sort of exception occurred.  Note: The
408
+	 *                method will attempt to generate ALL EE_Message objects and add to the _ready_queue.  Successfully
409
+	 *                generated messages get added to the queue with EEM_Message::status_idle, unsuccessfully generated
410
+	 *                messages will get added to the queue as EEM_Message::status_failed.  Very rarely should "false"
411
+	 *                be returned from this method.
412
+	 */
413
+	protected function _assemble_messages($addressees, $templates, EE_Message_Template_Group $message_template_group)
414
+	{
415
+
416
+		//if templates are empty then get out because we can't generate anything.
417
+		if (! $templates) {
418
+			$this->_error_msg[] = __('Unable to assemble messages because there are no templates retrieved for generating the messages with',
419
+				'event_espresso');
420
+			return false;
421
+		}
422
+
423
+		//We use this as the counter for generated messages because don't forget we may be executing this inside of a
424
+		//generation_queue.  So _ready_queue may have generated EE_Message objects already.
425
+		$generated_count = 0;
426
+		foreach ($addressees as $context => $recipients) {
427
+			foreach ($recipients as $recipient) {
428
+				$message = $this->_setup_message_object($context, $recipient, $templates, $message_template_group);
429
+				if ($message instanceof EE_Message) {
430
+					$this->_ready_queue->add(
431
+						$message,
432
+						array(),
433
+						$this->_generation_queue->get_message_repository()->is_preview(),
434
+						$this->_generation_queue->get_message_repository()->is_test_send()
435
+					);
436
+					$generated_count++;
437
+				}
438
+
439
+				//if the current MSG being generated is for a test send then we'll only use ONE message in the generation.
440
+				if ($this->_generation_queue->get_message_repository()->is_test_send()) {
441
+					break 2;
442
+				}
443
+			}
444
+		}
445
+
446
+		//if there are no generated messages then something else fatal went wrong.
447
+		return $generated_count > 0;
448
+	}
449
+
450
+
451
+	/**
452
+	 * @param string                    $context   The context for the generated message.
453
+	 * @param EE_Messages_Addressee     $recipient
454
+	 * @param array                     $templates formatted array of templates used for parsing data.
455
+	 * @param EE_Message_Template_Group $message_template_group
456
+	 * @return EE_Message | bool  (false is used when no EE_Message is generated)
457
+	 */
458
+	protected function _setup_message_object(
459
+		$context,
460
+		EE_Messages_Addressee $recipient,
461
+		$templates,
462
+		EE_Message_Template_Group $message_template_group
463
+	) {
464
+		//stuff we already know
465
+		$transaction_id = $recipient->txn instanceof EE_Transaction ? $recipient->txn->ID() : 0;
466
+		$transaction_id = empty($transaction_id) && $this->_current_data_handler->txn instanceof EE_Transaction
467
+			? $this->_current_data_handler->txn->ID()
468
+			: $transaction_id;
469
+		$message_fields = array(
470
+			'GRP_ID'           => $message_template_group->ID(),
471
+			'TXN_ID'           => $transaction_id,
472
+			'MSG_messenger'    => $this->_current_messenger->name,
473
+			'MSG_message_type' => $this->_current_message_type->name,
474
+			'MSG_context'      => $context,
475
+		);
476
+
477
+		//recipient id and type should be on the EE_Messages_Addressee object but if this is empty, let's try to grab the
478
+		//info from the att_obj found in the EE_Messages_Addressee object.
479
+		if (empty($recipient->recipient_id) || empty($recipient->recipient_type)) {
480
+			$message_fields['MSG_recipient_ID']   = $recipient->att_obj instanceof EE_Attendee
481
+				? $recipient->att_obj->ID()
482
+				: 0;
483
+			$message_fields['MSG_recipient_type'] = 'Attendee';
484
+		} else {
485
+			$message_fields['MSG_recipient_ID']   = $recipient->recipient_id;
486
+			$message_fields['MSG_recipient_type'] = $recipient->recipient_type;
487
+		}
488
+		$message = EE_Message_Factory::create($message_fields);
489
+
490
+		//grab valid shortcodes for shortcode parser
491
+		$mt_shortcodes = $this->_current_message_type->get_valid_shortcodes();
492
+		$m_shortcodes  = $this->_current_messenger->get_valid_shortcodes();
493
+
494
+		//if the 'to' field is empty (messages will ALWAYS have a "to" field, then we get out because that means this
495
+		//context is turned off) EXCEPT if we're previewing
496
+		if (empty($templates['to'][$context])
497
+			&& ! $this->_generation_queue->get_message_repository()->is_preview()
498
+			&& ! $this->_current_messenger->allow_empty_to_field()
499
+		) {
500
+			//we silently exit here and do NOT record a fail because the message is "turned off" by having no "to" field.
501
+			return false;
502
+		}
503
+		$error_msg = array();
504
+		foreach ($templates as $field => $field_context) {
505
+			$error_msg = array();
506
+			//let's setup the valid shortcodes for the incoming context.
507
+			$valid_shortcodes = $mt_shortcodes[$context];
508
+			//merge in valid shortcodes for the field.
509
+			$shortcodes = isset($m_shortcodes[$field]) ? $m_shortcodes[$field] : $valid_shortcodes;
510
+			if (isset($templates[$field][$context])) {
511
+				//prefix field.
512
+				$column_name = 'MSG_' . $field;
513
+				try {
514
+					$content = $this->_shortcode_parser->parse_message_template(
515
+						$templates[$field][$context],
516
+						$recipient,
517
+						$shortcodes,
518
+						$this->_current_message_type,
519
+						$this->_current_messenger,
520
+						$message);
521
+					$message->set_field_or_extra_meta($column_name, $content);
522
+				} catch (EE_Error $e) {
523
+					$error_msg[] = sprintf(__('There was a problem generating the content for the field %s: %s',
524
+						'event_espresso'), $field, $e->getMessage());
525
+					$message->set_STS_ID(EEM_Message::status_failed);
526
+				}
527
+			}
528
+		}
529
+
530
+		if ($message->STS_ID() === EEM_Message::status_failed) {
531
+			$error_msg = __('There were problems generating this message:', 'event_espresso') . "\n" . implode("\n",
532
+					$error_msg);
533
+			$message->set_error_message($error_msg);
534
+		} else {
535
+			$message->set_STS_ID(EEM_Message::status_idle);
536
+		}
537
+		return $message;
538
+	}
539
+
540
+
541
+	/**
542
+	 * This verifies that the incoming array has a EE_messenger object and a EE_message_type object and sets appropriate
543
+	 * error message if either is missing.
544
+	 *
545
+	 * @return bool         true means there were no errors, false means there were errors.
546
+	 */
547
+	protected function _verify()
548
+	{
549
+		//reset error message to an empty array.
550
+		$this->_error_msg = array();
551
+		$valid            = true;
552
+		$valid            = $valid ? $this->_validate_messenger_and_message_type() : $valid;
553
+		$valid            = $valid ? $this->_validate_and_setup_data() : $valid;
554
+
555
+		//set the verified flag so we know everything has been validated.
556
+		$this->_verified = $valid;
557
+
558
+		return $valid;
559
+	}
560
+
561
+
562
+	/**
563
+	 * This accepts an array and validates that it is an array indexed by context with each value being an array of
564
+	 * EE_Messages_Addressee objects.
565
+	 *
566
+	 * @param array $addressees Keys correspond to contexts for the message type and values are EE_Messages_Addressee[]
567
+	 * @return bool
568
+	 */
569
+	protected function _valid_addressees($addressees)
570
+	{
571
+		if (! $addressees || ! is_array($addressees)) {
572
+			return false;
573
+		}
574
+
575
+		foreach ($addressees as $addressee_array) {
576
+			foreach ($addressee_array as $addressee) {
577
+				if (! $addressee instanceof EE_Messages_Addressee) {
578
+					return false;
579
+				}
580
+			}
581
+		}
582
+		return true;
583
+	}
584
+
585
+
586
+	/**
587
+	 * This validates the messenger, message type, and presences of generation data for the current EE_Message in the
588
+	 * queue. This process sets error messages if something is wrong.
589
+	 *
590
+	 * @return bool   true is if there are no errors.  false is if there is.
591
+	 */
592
+	protected function _validate_messenger_and_message_type()
593
+	{
594
+
595
+		//first are there any existing error messages?  If so then return.
596
+		if ($this->_error_msg) {
597
+			return false;
598
+		}
599
+		/** @type EE_Message $message */
600
+		$message = $this->_generation_queue->get_message_repository()->current();
601
+		try {
602
+			$this->_current_messenger = $message->valid_messenger(true) ? $message->messenger_object() : null;
603
+		} catch (Exception $e) {
604
+			$this->_error_msg[] = $e->getMessage();
605
+		}
606
+		try {
607
+			$this->_current_message_type = $message->valid_message_type(true) ? $message->message_type_object() : null;
608
+		} catch (Exception $e) {
609
+			$this->_error_msg[] = $e->getMessage();
610
+		}
611
+
612
+		/**
613
+		 * Check if there is any generation data, but only if this is not for a preview.
614
+		 */
615
+		if (! $this->_generation_queue->get_message_repository()->get_generation_data()
616
+			&& (
617
+				! $this->_generation_queue->get_message_repository()->is_preview()
618
+				&& $this->_generation_queue->get_message_repository()->get_data_handler() !== 'EE_Messages_Preview_incoming_data')
619
+		) {
620
+			$this->_error_msg[] = __('There is no generation data for this message. Unable to generate.');
621
+		}
622
+
623
+		return empty($this->_error_msg);
624
+	}
625
+
626
+
627
+	/**
628
+	 * This method retrieves the expected data handler for the message type and validates the generation data for that
629
+	 * data handler.
630
+	 *
631
+	 * @return bool true means there are no errors.  false means there were errors (and handler did not get setup).
632
+	 */
633
+	protected function _validate_and_setup_data()
634
+	{
635
+
636
+		//First, are there any existing error messages?  If so, return because if there were errors elsewhere this can't
637
+		//be used anyways.
638
+		if ($this->_error_msg) {
639
+			return false;
640
+		}
641
+
642
+		$generation_data = $this->_generation_queue->get_message_repository()->get_generation_data();
643
+
644
+		/** @type EE_Messages_incoming_data $data_handler_class_name - well not really... just the class name actually */
645
+		$data_handler_class_name = $this->_generation_queue->get_message_repository()->get_data_handler()
646
+			? $this->_generation_queue->get_message_repository()->get_data_handler()
647
+			: 'EE_Messages_' . $this->_current_message_type->get_data_handler($generation_data) . '_incoming_data';
648
+
649
+		//If this EE_Message is for a preview, then let's switch out to the preview data handler.
650
+		if ($this->_generation_queue->get_message_repository()->is_preview()) {
651
+			$data_handler_class_name = 'EE_Messages_Preview_incoming_data';
652
+		}
653
+
654
+		//First get the class name for the data handler (and also verifies it exists.
655
+		if (! class_exists($data_handler_class_name)) {
656
+			$this->_error_msg[] = sprintf(
657
+				__('The included data handler class name does not match any valid, accessible, "EE_Messages_incoming_data" classes.  Looking for %s.',
658
+					'event_espresso'),
659
+				$data_handler_class_name
660
+			);
661
+			return false;
662
+		}
663
+
664
+		//convert generation_data for data_handler_instantiation.
665
+		$generation_data = $data_handler_class_name::convert_data_from_persistent_storage($generation_data);
666
+
667
+		//note, this may set error messages as well.
668
+		$this->_set_data_handler($generation_data, $data_handler_class_name);
669
+
670
+		return empty($this->_error_msg);
671
+	}
672
+
673
+
674
+	/**
675
+	 * Sets the $_current_data_handler property that is used for generating the current EE_Message in the queue, and
676
+	 * adds it to the _data repository.
677
+	 *
678
+	 * @param mixed  $generating_data           This is data expected by the instantiated data handler.
679
+	 * @param string $data_handler_class_name   This is the reference string indicating what data handler is being
680
+	 *                                          instantiated.
681
+	 * @return void.
682
+	 */
683
+	protected function _set_data_handler($generating_data, $data_handler_class_name)
684
+	{
685
+		//valid classname for the data handler.  Now let's setup the key for the data handler repository to see if there
686
+		//is already a ready data handler in the repository.
687
+		$this->_current_data_handler = $this->_data_handler_collection->get_by_key($this->_data_handler_collection->get_key($data_handler_class_name,
688
+			$generating_data));
689
+		if (! $this->_current_data_handler instanceof EE_Messages_incoming_data) {
690
+			//no saved data_handler in the repo so let's set one up and add it to the repo.
691
+			try {
692
+				$this->_current_data_handler = new $data_handler_class_name($generating_data);
693
+				$this->_data_handler_collection->add($this->_current_data_handler, $generating_data);
694
+			} catch (EE_Error $e) {
695
+				$this->_error_msg[] = $e->get_error();
696
+			}
697
+		}
698
+	}
699
+
700
+
701
+	/**
702
+	 * The queued EE_Message for generation does not save the data used for generation as objects
703
+	 * because serialization of those objects could be problematic if the data is saved to the db.
704
+	 * So this method calls the static method on the associated data_handler for the given message_type
705
+	 * and that preps the data for later instantiation when generating.
706
+	 *
707
+	 * @param EE_Message_To_Generate $message_to_generate
708
+	 * @param bool                   $preview Indicate whether this is being used for a preview or not.
709
+	 * @return mixed Prepped data for persisting to the queue.  false is returned if unable to prep data.
710
+	 */
711
+	protected function _prepare_data_for_queue(EE_Message_To_Generate $message_to_generate, $preview)
712
+	{
713
+		/** @type EE_Messages_incoming_data $data_handler - well not really... just the class name actually */
714
+		$data_handler = $message_to_generate->get_data_handler_class_name($preview);
715
+		if (! $message_to_generate->valid()) {
716
+			return false; //unable to get the data because the info in the EE_Message_To_Generate class is invalid.
717
+		}
718
+		return $data_handler::convert_data_for_persistent_storage($message_to_generate->data());
719
+	}
720
+
721
+
722
+	/**
723
+	 * This sets up a EEM_Message::status_incomplete EE_Message object and adds it to the generation queue.
724
+	 *
725
+	 * @param EE_Message_To_Generate $message_to_generate
726
+	 * @param bool                   $test_send Whether this is just a test send or not.  Typically used for previews.
727
+	 */
728
+	public function create_and_add_message_to_queue(EE_Message_To_Generate $message_to_generate, $test_send = false)
729
+	{
730
+		//prep data
731
+		$data = $this->_prepare_data_for_queue($message_to_generate, $message_to_generate->preview());
732
+
733
+		$message = $message_to_generate->get_EE_Message();
734
+
735
+		//is there a GRP_ID in the request?
736
+		if ($GRP_ID = EE_Registry::instance()->REQ->get('GRP_ID')) {
737
+			$message->set_GRP_ID($GRP_ID);
738
+		}
739
+
740
+		if ($data === false) {
741
+			$message->set_STS_ID(EEM_Message::status_failed);
742
+			$message->set_error_message(__('Unable to prepare data for persistence to the database.',
743
+				'event_espresso'));
744
+		} else {
745
+			//make sure that the data handler is cached on the message as well
746
+			$data['data_handler_class_name'] = $message_to_generate->get_data_handler_class_name();
747
+		}
748
+
749
+		$this->_generation_queue->add($message, $data, $message_to_generate->preview(), $test_send);
750
+	}
751 751
 
752 752
 
753 753
 } //end EE_Messages_Generator
754 754
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -1,4 +1,4 @@  discard block
 block discarded – undo
1
-<?php if (! defined('EVENT_ESPRESSO_VERSION')) {
1
+<?php if ( ! defined('EVENT_ESPRESSO_VERSION')) {
2 2
     exit('No direct script access allowed');
3 3
 }
4 4
 
@@ -237,7 +237,7 @@  discard block
 block discarded – undo
237 237
     protected function _generate()
238 238
     {
239 239
         //double check verification has run and that everything is ready to work with (saves us having to validate everything again).
240
-        if (! $this->_verified) {
240
+        if ( ! $this->_verified) {
241 241
             return false; //get out because we don't have a valid setup to work with.
242 242
         }
243 243
 
@@ -254,7 +254,7 @@  discard block
 block discarded – undo
254 254
 
255 255
 
256 256
         //if no addressees then get out because there is nothing to generation (possible bad data).
257
-        if (! $this->_valid_addressees($addressees)) {
257
+        if ( ! $this->_valid_addressees($addressees)) {
258 258
             do_action('AHEE__EE_Messages_Generator___generate__invalid_addressees',
259 259
                 $this->_generation_queue->get_message_repository()->current(), $addressees, $this->_current_messenger,
260 260
                 $this->_current_message_type, $this->_current_data_handler);
@@ -268,7 +268,7 @@  discard block
 block discarded – undo
268 268
         $message_template_group = $this->_get_message_template_group();
269 269
 
270 270
         //in the unlikely event there is no EE_Message_Template_Group available, get out!
271
-        if (! $message_template_group instanceof EE_Message_Template_Group) {
271
+        if ( ! $message_template_group instanceof EE_Message_Template_Group) {
272 272
             $this->_error_msg[] = __('Unable to get the Message Templates for the Message being generated.  No message template group accessible.',
273 273
                 'event_espresso');
274 274
             return false;
@@ -299,7 +299,7 @@  discard block
 block discarded – undo
299 299
             //attempt to retrieve from repo first
300 300
             $GRP = $this->_template_collection->get_by_ID($GRP_ID);
301 301
             if ($GRP instanceof EE_Message_Template_Group) {
302
-                return $GRP;  //got it!
302
+                return $GRP; //got it!
303 303
             }
304 304
 
305 305
             //nope don't have it yet.  Get from DB then add to repo if its not here, then that means the current GRP_ID
@@ -387,7 +387,7 @@  discard block
 block discarded – undo
387 387
         $context_templates = $message_template_group->context_templates();
388 388
         foreach ($context_templates as $context => $template_fields) {
389 389
             foreach ($template_fields as $template_field => $template_obj) {
390
-                if (! $template_obj instanceof EE_Message_Template) {
390
+                if ( ! $template_obj instanceof EE_Message_Template) {
391 391
                     continue;
392 392
                 }
393 393
                 $templates[$template_field][$context] = $template_obj->get('MTP_content');
@@ -414,7 +414,7 @@  discard block
 block discarded – undo
414 414
     {
415 415
 
416 416
         //if templates are empty then get out because we can't generate anything.
417
-        if (! $templates) {
417
+        if ( ! $templates) {
418 418
             $this->_error_msg[] = __('Unable to assemble messages because there are no templates retrieved for generating the messages with',
419 419
                 'event_espresso');
420 420
             return false;
@@ -509,7 +509,7 @@  discard block
 block discarded – undo
509 509
             $shortcodes = isset($m_shortcodes[$field]) ? $m_shortcodes[$field] : $valid_shortcodes;
510 510
             if (isset($templates[$field][$context])) {
511 511
                 //prefix field.
512
-                $column_name = 'MSG_' . $field;
512
+                $column_name = 'MSG_'.$field;
513 513
                 try {
514 514
                     $content = $this->_shortcode_parser->parse_message_template(
515 515
                         $templates[$field][$context],
@@ -528,7 +528,7 @@  discard block
 block discarded – undo
528 528
         }
529 529
 
530 530
         if ($message->STS_ID() === EEM_Message::status_failed) {
531
-            $error_msg = __('There were problems generating this message:', 'event_espresso') . "\n" . implode("\n",
531
+            $error_msg = __('There were problems generating this message:', 'event_espresso')."\n".implode("\n",
532 532
                     $error_msg);
533 533
             $message->set_error_message($error_msg);
534 534
         } else {
@@ -568,13 +568,13 @@  discard block
 block discarded – undo
568 568
      */
569 569
     protected function _valid_addressees($addressees)
570 570
     {
571
-        if (! $addressees || ! is_array($addressees)) {
571
+        if ( ! $addressees || ! is_array($addressees)) {
572 572
             return false;
573 573
         }
574 574
 
575 575
         foreach ($addressees as $addressee_array) {
576 576
             foreach ($addressee_array as $addressee) {
577
-                if (! $addressee instanceof EE_Messages_Addressee) {
577
+                if ( ! $addressee instanceof EE_Messages_Addressee) {
578 578
                     return false;
579 579
                 }
580 580
             }
@@ -612,7 +612,7 @@  discard block
 block discarded – undo
612 612
         /**
613 613
          * Check if there is any generation data, but only if this is not for a preview.
614 614
          */
615
-        if (! $this->_generation_queue->get_message_repository()->get_generation_data()
615
+        if ( ! $this->_generation_queue->get_message_repository()->get_generation_data()
616 616
             && (
617 617
                 ! $this->_generation_queue->get_message_repository()->is_preview()
618 618
                 && $this->_generation_queue->get_message_repository()->get_data_handler() !== 'EE_Messages_Preview_incoming_data')
@@ -644,7 +644,7 @@  discard block
 block discarded – undo
644 644
         /** @type EE_Messages_incoming_data $data_handler_class_name - well not really... just the class name actually */
645 645
         $data_handler_class_name = $this->_generation_queue->get_message_repository()->get_data_handler()
646 646
             ? $this->_generation_queue->get_message_repository()->get_data_handler()
647
-            : 'EE_Messages_' . $this->_current_message_type->get_data_handler($generation_data) . '_incoming_data';
647
+            : 'EE_Messages_'.$this->_current_message_type->get_data_handler($generation_data).'_incoming_data';
648 648
 
649 649
         //If this EE_Message is for a preview, then let's switch out to the preview data handler.
650 650
         if ($this->_generation_queue->get_message_repository()->is_preview()) {
@@ -652,7 +652,7 @@  discard block
 block discarded – undo
652 652
         }
653 653
 
654 654
         //First get the class name for the data handler (and also verifies it exists.
655
-        if (! class_exists($data_handler_class_name)) {
655
+        if ( ! class_exists($data_handler_class_name)) {
656 656
             $this->_error_msg[] = sprintf(
657 657
                 __('The included data handler class name does not match any valid, accessible, "EE_Messages_incoming_data" classes.  Looking for %s.',
658 658
                     'event_espresso'),
@@ -686,7 +686,7 @@  discard block
 block discarded – undo
686 686
         //is already a ready data handler in the repository.
687 687
         $this->_current_data_handler = $this->_data_handler_collection->get_by_key($this->_data_handler_collection->get_key($data_handler_class_name,
688 688
             $generating_data));
689
-        if (! $this->_current_data_handler instanceof EE_Messages_incoming_data) {
689
+        if ( ! $this->_current_data_handler instanceof EE_Messages_incoming_data) {
690 690
             //no saved data_handler in the repo so let's set one up and add it to the repo.
691 691
             try {
692 692
                 $this->_current_data_handler = new $data_handler_class_name($generating_data);
@@ -712,7 +712,7 @@  discard block
 block discarded – undo
712 712
     {
713 713
         /** @type EE_Messages_incoming_data $data_handler - well not really... just the class name actually */
714 714
         $data_handler = $message_to_generate->get_data_handler_class_name($preview);
715
-        if (! $message_to_generate->valid()) {
715
+        if ( ! $message_to_generate->valid()) {
716 716
             return false; //unable to get the data because the info in the EE_Message_To_Generate class is invalid.
717 717
         }
718 718
         return $data_handler::convert_data_for_persistent_storage($message_to_generate->data());
Please login to merge, or discard this patch.
core/libraries/messages/EE_Message_Template_Group_Collection.lib.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -47,7 +47,7 @@
 block discarded – undo
47 47
     /**
48 48
      * This retrieves any EE_Message_Template_Group in the repo by its ID.
49 49
      *
50
-     * @param $GRP_ID
50
+     * @param integer $GRP_ID
51 51
      * @return EE_Message_Template_Group | null
52 52
      */
53 53
     public function get_by_ID($GRP_ID)
Please login to merge, or discard this patch.
Indentation   +77 added lines, -77 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 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
 
6 6
 
@@ -16,89 +16,89 @@  discard block
 block discarded – undo
16 16
 {
17 17
 
18 18
 
19
-    public function __construct()
20
-    {
21
-        $this->interface = 'EE_Message_Template_Group';
22
-    }
19
+	public function __construct()
20
+	{
21
+		$this->interface = 'EE_Message_Template_Group';
22
+	}
23 23
 
24 24
 
25
-    /**
26
-     * Adds the Message Template Group object to the repository.
27
-     *
28
-     * @param     $message_template_group
29
-     * @param int $EVT_ID    Some templates are specific to EVT, so this is provided as a way of
30
-     *                       indexing the template by key.
31
-     * @return bool
32
-     */
33
-    public function add($message_template_group, $EVT_ID = null)
34
-    {
35
-        if ($message_template_group instanceof $this->interface) {
36
-            $data['key'] = $this->get_key(
37
-                $message_template_group->messenger(),
38
-                $message_template_group->message_type(),
39
-                $EVT_ID
40
-            );
41
-            return parent::add($message_template_group, $data);
42
-        }
43
-        return false;
44
-    }
25
+	/**
26
+	 * Adds the Message Template Group object to the repository.
27
+	 *
28
+	 * @param     $message_template_group
29
+	 * @param int $EVT_ID    Some templates are specific to EVT, so this is provided as a way of
30
+	 *                       indexing the template by key.
31
+	 * @return bool
32
+	 */
33
+	public function add($message_template_group, $EVT_ID = null)
34
+	{
35
+		if ($message_template_group instanceof $this->interface) {
36
+			$data['key'] = $this->get_key(
37
+				$message_template_group->messenger(),
38
+				$message_template_group->message_type(),
39
+				$EVT_ID
40
+			);
41
+			return parent::add($message_template_group, $data);
42
+		}
43
+		return false;
44
+	}
45 45
 
46 46
 
47
-    /**
48
-     * This retrieves any EE_Message_Template_Group in the repo by its ID.
49
-     *
50
-     * @param $GRP_ID
51
-     * @return EE_Message_Template_Group | null
52
-     */
53
-    public function get_by_ID($GRP_ID)
54
-    {
55
-        $this->rewind();
56
-        while ($this->valid()) {
57
-            if ($this->current()->ID() === $GRP_ID) {
58
-                $grp = $this->current();
59
-                $this->rewind();
60
-                return $grp;
61
-            }
62
-            $this->next();
63
-        }
64
-        return null;
65
-    }
47
+	/**
48
+	 * This retrieves any EE_Message_Template_Group in the repo by its ID.
49
+	 *
50
+	 * @param $GRP_ID
51
+	 * @return EE_Message_Template_Group | null
52
+	 */
53
+	public function get_by_ID($GRP_ID)
54
+	{
55
+		$this->rewind();
56
+		while ($this->valid()) {
57
+			if ($this->current()->ID() === $GRP_ID) {
58
+				$grp = $this->current();
59
+				$this->rewind();
60
+				return $grp;
61
+			}
62
+			$this->next();
63
+		}
64
+		return null;
65
+	}
66 66
 
67 67
 
68
-    /**
69
-     * Generates a hash used to identify a given Message Template Group.
70
-     *
71
-     * @param string $messenger    The EE_messenger->name
72
-     * @param string $message_type The EE_message_type->name
73
-     * @param int    $EVT_ID       Optional.  If the template is for a specific EVT then that should be included.
74
-     * @return string
75
-     */
76
-    public function get_key($messenger, $message_type, $EVT_ID = 0)
77
-    {
78
-        return md5($messenger . $message_type . $EVT_ID);
79
-    }
68
+	/**
69
+	 * Generates a hash used to identify a given Message Template Group.
70
+	 *
71
+	 * @param string $messenger    The EE_messenger->name
72
+	 * @param string $message_type The EE_message_type->name
73
+	 * @param int    $EVT_ID       Optional.  If the template is for a specific EVT then that should be included.
74
+	 * @return string
75
+	 */
76
+	public function get_key($messenger, $message_type, $EVT_ID = 0)
77
+	{
78
+		return md5($messenger . $message_type . $EVT_ID);
79
+	}
80 80
 
81 81
 
82
-    /**
83
-     * This returns a saved EE_Message_Template_Group object if there is one in the repository indexed by a key matching
84
-     * the given string.
85
-     *
86
-     * @param string $key @see EE_Message_Template_Group::get_key() to setup a key formatted for searching.
87
-     * @return null|EE_Message_Template_Group
88
-     */
89
-    public function get_by_key($key)
90
-    {
91
-        $this->rewind();
92
-        while ($this->valid()) {
93
-            $data = $this->getInfo();
94
-            if (isset($data['key']) && $data['key'] === $key) {
95
-                $handler = $this->current();
96
-                $this->rewind();
97
-                return $handler;
98
-            }
99
-            $this->next();
100
-        }
101
-        return null;
102
-    }
82
+	/**
83
+	 * This returns a saved EE_Message_Template_Group object if there is one in the repository indexed by a key matching
84
+	 * the given string.
85
+	 *
86
+	 * @param string $key @see EE_Message_Template_Group::get_key() to setup a key formatted for searching.
87
+	 * @return null|EE_Message_Template_Group
88
+	 */
89
+	public function get_by_key($key)
90
+	{
91
+		$this->rewind();
92
+		while ($this->valid()) {
93
+			$data = $this->getInfo();
94
+			if (isset($data['key']) && $data['key'] === $key) {
95
+				$handler = $this->current();
96
+				$this->rewind();
97
+				return $handler;
98
+			}
99
+			$this->next();
100
+		}
101
+		return null;
102
+	}
103 103
 
104 104
 } //end EE_Message_Template_Group_Collection
105 105
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 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
 
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
      */
76 76
     public function get_key($messenger, $message_type, $EVT_ID = 0)
77 77
     {
78
-        return md5($messenger . $message_type . $EVT_ID);
78
+        return md5($messenger.$message_type.$EVT_ID);
79 79
     }
80 80
 
81 81
 
Please login to merge, or discard this patch.
core/EE_Session.core.php 1 patch
Spacing   +148 added lines, -148 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 use EventEspresso\core\exceptions\InvalidSessionDataException;
3 3
 use EventEspresso\core\services\cache\CacheStorageInterface;
4 4
 
5
-if (!defined( 'EVENT_ESPRESSO_VERSION')) {exit('No direct script access allowed');}
5
+if ( ! defined('EVENT_ESPRESSO_VERSION')) {exit('No direct script access allowed'); }
6 6
 /**
7 7
  *
8 8
  * EE_Session class
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
 	  * array for defining default session vars
109 109
 	  * @var array
110 110
 	  */
111
-	 private $_default_session_vars = array (
111
+	 private $_default_session_vars = array(
112 112
         'id'            => null,
113 113
         'user_id'       => null,
114 114
         'ip_address'    => null,
@@ -136,8 +136,8 @@  discard block
 block discarded – undo
136 136
 		// check if class object is instantiated
137 137
 		// session loading is turned ON by default, but prior to the init hook, can be turned back OFF via:
138 138
 		// add_filter( 'FHEE_load_EE_Session', '__return_false' );
139
-		if ( ! self::$_instance instanceof EE_Session && apply_filters( 'FHEE_load_EE_Session', true ) ) {
140
-			self::$_instance = new self($cache_storage, $encryption );
139
+		if ( ! self::$_instance instanceof EE_Session && apply_filters('FHEE_load_EE_Session', true)) {
140
+			self::$_instance = new self($cache_storage, $encryption);
141 141
 		}
142 142
 		return self::$_instance;
143 143
 	}
@@ -152,15 +152,15 @@  discard block
 block discarded – undo
152 152
 	  * @throws \EE_Error
153 153
 	  * @throws \EventEspresso\core\exceptions\InvalidSessionDataException
154 154
 	  */
155
-	 protected function __construct(CacheStorageInterface $cache_storage, EE_Encryption $encryption = null ) {
155
+	 protected function __construct(CacheStorageInterface $cache_storage, EE_Encryption $encryption = null) {
156 156
 
157 157
 		// session loading is turned ON by default, but prior to the init hook, can be turned back OFF via: add_filter( 'FHEE_load_EE_Session', '__return_false' );
158
-		if ( ! apply_filters( 'FHEE_load_EE_Session', true ) ) {
158
+		if ( ! apply_filters('FHEE_load_EE_Session', true)) {
159 159
 			return;
160 160
 		}
161
-		do_action( 'AHEE_log', __FILE__, __FUNCTION__, '' );
162
-		if ( ! defined( 'ESPRESSO_SESSION' ) ) {
163
-			define( 'ESPRESSO_SESSION', true );
161
+		do_action('AHEE_log', __FILE__, __FUNCTION__, '');
162
+		if ( ! defined('ESPRESSO_SESSION')) {
163
+			define('ESPRESSO_SESSION', true);
164 164
 		}
165 165
 		// default session lifespan in seconds
166 166
 		$this->_lifespan = apply_filters(
@@ -174,12 +174,12 @@  discard block
 block discarded – undo
174 174
 		 * 		}
175 175
 		 */
176 176
 		// retrieve session options from db
177
-		$session_settings = (array) get_option( 'ee_session_settings', array() );
178
-		if ( ! empty( $session_settings )) {
177
+		$session_settings = (array) get_option('ee_session_settings', array());
178
+		if ( ! empty($session_settings)) {
179 179
 			// cycle though existing session options
180
-			foreach ( $session_settings as $var_name => $session_setting ) {
180
+			foreach ($session_settings as $var_name => $session_setting) {
181 181
 				// set values for class properties
182
-				$var_name = '_' . $var_name;
182
+				$var_name = '_'.$var_name;
183 183
 				$this->{$var_name} = $session_setting;
184 184
 			}
185 185
 		}
@@ -190,15 +190,15 @@  discard block
 block discarded – undo
190 190
         // encrypt data via: $this->encryption->encrypt();
191 191
         $this->encryption = $encryption;
192 192
 		// filter hook allows outside functions/classes/plugins to change default empty cart
193
-		$extra_default_session_vars = apply_filters( 'FHEE__EE_Session__construct__extra_default_session_vars', array() );
194
-		array_merge( $this->_default_session_vars, $extra_default_session_vars );
193
+		$extra_default_session_vars = apply_filters('FHEE__EE_Session__construct__extra_default_session_vars', array());
194
+		array_merge($this->_default_session_vars, $extra_default_session_vars);
195 195
 		// apply default session vars
196 196
 		$this->_set_defaults();
197 197
          add_action('AHEE__EE_System__initialize', array($this, 'open_session'));
198 198
          // check request for 'clear_session' param
199
-		add_action( 'AHEE__EE_Request_Handler__construct__complete', array( $this, 'wp_loaded' ));
199
+		add_action('AHEE__EE_Request_Handler__construct__complete', array($this, 'wp_loaded'));
200 200
 		// once everything is all said and done,
201
-		add_action( 'shutdown', array( $this, 'update' ), 100 );
201
+		add_action('shutdown', array($this, 'update'), 100);
202 202
          $this->configure_garbage_collection_filters();
203 203
 	}
204 204
 
@@ -286,11 +286,11 @@  discard block
 block discarded – undo
286 286
 	 */
287 287
 	private function _set_defaults() {
288 288
 		// set some defaults
289
-		foreach ( $this->_default_session_vars as $key => $default_var ) {
290
-			if ( is_array( $default_var )) {
291
-				$this->_session_data[ $key ] = array();
289
+		foreach ($this->_default_session_vars as $key => $default_var) {
290
+			if (is_array($default_var)) {
291
+				$this->_session_data[$key] = array();
292 292
 			} else {
293
-				$this->_session_data[ $key ] = '';
293
+				$this->_session_data[$key] = '';
294 294
 			}
295 295
 		}
296 296
 	}
@@ -345,7 +345,7 @@  discard block
 block discarded – undo
345 345
 	  * @param \EE_Checkout $checkout
346 346
 	  * @return bool
347 347
 	  */
348
-	 public function set_checkout( EE_Checkout $checkout ) {
348
+	 public function set_checkout(EE_Checkout $checkout) {
349 349
 		 $this->_session_data['checkout'] = $checkout;
350 350
 		 return TRUE;
351 351
 	 }
@@ -378,9 +378,9 @@  discard block
 block discarded – undo
378 378
 	  * @return bool
379 379
 	  * @throws \EE_Error
380 380
 	  */
381
-	 public function set_transaction( EE_Transaction $transaction ) {
381
+	 public function set_transaction(EE_Transaction $transaction) {
382 382
 		 // first remove the session from the transaction before we save the transaction in the session
383
-		 $transaction->set_txn_session_data( NULL );
383
+		 $transaction->set_txn_session_data(NULL);
384 384
 		 $this->_session_data['transaction'] = $transaction;
385 385
 		 return TRUE;
386 386
 	 }
@@ -416,15 +416,15 @@  discard block
 block discarded – undo
416 416
 	  * @param bool $reset_cache
417 417
 	  * @return    array
418 418
 	  */
419
-	public function get_session_data( $key = NULL, $reset_cache = FALSE ) {
420
-		if ( $reset_cache ) {
419
+	public function get_session_data($key = NULL, $reset_cache = FALSE) {
420
+		if ($reset_cache) {
421 421
 			$this->reset_cart();
422 422
 			$this->reset_checkout();
423 423
 			$this->reset_transaction();
424 424
 		}
425
-		 if ( ! empty( $key ))  {
426
-			return  isset( $this->_session_data[ $key ] ) ? $this->_session_data[ $key ] : NULL;
427
-		}  else  {
425
+		 if ( ! empty($key)) {
426
+			return  isset($this->_session_data[$key]) ? $this->_session_data[$key] : NULL;
427
+		} else {
428 428
 			return $this->_session_data;
429 429
 		}
430 430
 	}
@@ -437,20 +437,20 @@  discard block
 block discarded – undo
437 437
 	  * @param 	array $data
438 438
 	  * @return 	TRUE on success, FALSE on fail
439 439
 	  */
440
-	public function set_session_data( $data ) {
440
+	public function set_session_data($data) {
441 441
 
442 442
 		// nothing ??? bad data ??? go home!
443
-		if ( empty( $data ) || ! is_array( $data )) {
444
-			EE_Error::add_error( __( 'No session data or invalid session data was provided.', 'event_espresso' ), __FILE__, __FUNCTION__, __LINE__ );
443
+		if (empty($data) || ! is_array($data)) {
444
+			EE_Error::add_error(__('No session data or invalid session data was provided.', 'event_espresso'), __FILE__, __FUNCTION__, __LINE__);
445 445
 			return FALSE;
446 446
 		}
447 447
 
448
-		foreach ( $data as $key =>$value ) {
449
-			if ( isset( $this->_default_session_vars[ $key ] )) {
450
-				EE_Error::add_error( sprintf( __( 'Sorry! %s is a default session datum and can not be reset.', 'event_espresso' ), $key ), __FILE__, __FUNCTION__, __LINE__ );
448
+		foreach ($data as $key =>$value) {
449
+			if (isset($this->_default_session_vars[$key])) {
450
+				EE_Error::add_error(sprintf(__('Sorry! %s is a default session datum and can not be reset.', 'event_espresso'), $key), __FILE__, __FUNCTION__, __LINE__);
451 451
 				return FALSE;
452 452
 			} else {
453
-				$this->_session_data[ $key ] = $value;
453
+				$this->_session_data[$key] = $value;
454 454
 			}
455 455
 		}
456 456
 
@@ -468,9 +468,9 @@  discard block
 block discarded – undo
468 468
 	  * @throws \EE_Error
469 469
 	  */
470 470
 	private function _espresso_session() {
471
-		do_action( 'AHEE_log', __FILE__, __FUNCTION__, '' );
471
+		do_action('AHEE_log', __FILE__, __FUNCTION__, '');
472 472
 		// check that session has started
473
-		if ( session_id() === '' ) {
473
+		if (session_id() === '') {
474 474
 			//starts a new session if one doesn't already exist, or re-initiates an existing one
475 475
 			session_start();
476 476
 		}
@@ -479,39 +479,39 @@  discard block
 block discarded – undo
479 479
 		// and the visitors IP
480 480
 		$this->_ip_address = $this->_visitor_ip();
481 481
 		// set the "user agent"
482
-		$this->_user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? esc_attr( $_SERVER['HTTP_USER_AGENT'] ) : FALSE;
482
+		$this->_user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? esc_attr($_SERVER['HTTP_USER_AGENT']) : FALSE;
483 483
 		// now let's retrieve what's in the db
484 484
         $session_data = $this->_retrieve_session_data();
485
-        if (! empty($session_data)) {
485
+        if ( ! empty($session_data)) {
486 486
             // get the current time in UTC
487
-			$this->_time = isset( $this->_time ) ? $this->_time : time();
487
+			$this->_time = isset($this->_time) ? $this->_time : time();
488 488
 			// and reset the session expiration
489
-			$this->_expiration = isset( $session_data['expiration'] )
489
+			$this->_expiration = isset($session_data['expiration'])
490 490
 				? $session_data['expiration']
491 491
 				: $this->_time + $this->_lifespan;
492 492
 		} else {
493 493
             // set initial site access time and the session expiration
494 494
 			$this->_set_init_access_and_expiration();
495 495
 			// set referer
496
-			$this->_session_data[ 'pages_visited' ][ $this->_session_data['init_access'] ] = isset( $_SERVER['HTTP_REFERER'] )
497
-				? esc_attr( $_SERVER['HTTP_REFERER'] )
496
+			$this->_session_data['pages_visited'][$this->_session_data['init_access']] = isset($_SERVER['HTTP_REFERER'])
497
+				? esc_attr($_SERVER['HTTP_REFERER'])
498 498
 				: '';
499 499
 			// no previous session = go back and create one (on top of the data above)
500 500
 			return FALSE;
501 501
 		}
502 502
         // now the user agent
503
-		if ( $session_data['user_agent'] !== $this->_user_agent ) {
503
+		if ($session_data['user_agent'] !== $this->_user_agent) {
504 504
 			return FALSE;
505 505
 		}
506 506
 		// wait a minute... how old are you?
507
-		if ( $this->_time > $this->_expiration ) {
507
+		if ($this->_time > $this->_expiration) {
508 508
 			// yer too old fer me!
509 509
             $this->_expired = true;
510 510
 			// wipe out everything that isn't a default session datum
511
-			$this->clear_session( __CLASS__, __FUNCTION__ );
511
+			$this->clear_session(__CLASS__, __FUNCTION__);
512 512
 		}
513 513
 		// make event espresso session data available to plugin
514
-		$this->_session_data = array_merge( $this->_session_data, $session_data );
514
+		$this->_session_data = array_merge($this->_session_data, $session_data);
515 515
 		return TRUE;
516 516
 
517 517
 	}
@@ -527,7 +527,7 @@  discard block
 block discarded – undo
527 527
       */
528 528
      protected function _retrieve_session_data()
529 529
      {
530
-         $ssn_key = EE_Session::session_id_prefix . $this->_sid;
530
+         $ssn_key = EE_Session::session_id_prefix.$this->_sid;
531 531
          try {
532 532
              // we're using WP's Transient API to store session data using the PHP session ID as the option name
533 533
              $session_data = $this->cache_storage->get($ssn_key, false);
@@ -536,7 +536,7 @@  discard block
 block discarded – undo
536 536
              }
537 537
              if (apply_filters('FHEE__EE_Session___perform_session_id_hash_check', WP_DEBUG)) {
538 538
                  $hash_check = $this->cache_storage->get(
539
-                     EE_Session::hash_check_prefix . $this->_sid,
539
+                     EE_Session::hash_check_prefix.$this->_sid,
540 540
                      false
541 541
                  );
542 542
                  if ($hash_check && $hash_check !== md5($session_data)) {
@@ -546,7 +546,7 @@  discard block
 block discarded – undo
546 546
                                  'The stored data for session %1$s failed to pass a hash check and therefore appears to be invalid.',
547 547
                                  'event_espresso'
548 548
                              ),
549
-                             EE_Session::session_id_prefix . $this->_sid
549
+                             EE_Session::session_id_prefix.$this->_sid
550 550
                          ),
551 551
                          __FILE__, __FUNCTION__, __LINE__
552 552
                      );
@@ -558,17 +558,17 @@  discard block
 block discarded – undo
558 558
              $row = $wpdb->get_row(
559 559
                  $wpdb->prepare(
560 560
                      "SELECT option_value FROM {$wpdb->options} WHERE option_name = %s LIMIT 1",
561
-                     '_transient_' . $ssn_key
561
+                     '_transient_'.$ssn_key
562 562
                  )
563 563
              );
564 564
              $session_data = is_object($row) ? $row->option_value : null;
565 565
              if ($session_data) {
566 566
                  $session_data = preg_replace_callback(
567 567
                      '!s:(d+):"(.*?)";!',
568
-                     function ($match) {
568
+                     function($match) {
569 569
                          return $match[1] === strlen($match[2])
570 570
                              ? $match[0]
571
-                             : 's:' . strlen($match[2]) . ':"' . $match[2] . '";';
571
+                             : 's:'.strlen($match[2]).':"'.$match[2].'";';
572 572
                      },
573 573
                      $session_data
574 574
                  );
@@ -589,7 +589,7 @@  discard block
 block discarded – undo
589 589
                      'event_espresso'
590 590
                  );
591 591
                  $msg .= WP_DEBUG
592
-                     ? '<br><pre>' . print_r($session_data, true) . '</pre><br>' . $this->find_serialize_error($session_data)
592
+                     ? '<br><pre>'.print_r($session_data, true).'</pre><br>'.$this->find_serialize_error($session_data)
593 593
                      : '';
594 594
                  throw new InvalidSessionDataException($msg, 0, $e);
595 595
              }
@@ -602,11 +602,11 @@  discard block
 block discarded – undo
602 602
                  'event_espresso'
603 603
              );
604 604
              $msg .= WP_DEBUG
605
-                 ? '<br><pre>' . print_r($session_data, true) . '</pre><br>' . $this->find_serialize_error($session_data)
605
+                 ? '<br><pre>'.print_r($session_data, true).'</pre><br>'.$this->find_serialize_error($session_data)
606 606
                  : '';
607 607
 	         throw new InvalidSessionDataException($msg);
608 608
          }
609
-	     if ( isset($session_data['transaction'] ) && absint($session_data['transaction'] ) !== 0 ) {
609
+	     if (isset($session_data['transaction']) && absint($session_data['transaction']) !== 0) {
610 610
              $session_data['transaction'] = EEM_Transaction::instance()->get_one_by_ID(
611 611
                  $session_data['transaction']
612 612
 	         );
@@ -627,12 +627,12 @@  discard block
 block discarded – undo
627 627
 	  */
628 628
 	protected function _generate_session_id() {
629 629
 		// check if the SID was passed explicitly, otherwise get from session, then add salt and hash it to reduce length
630
-		if ( isset( $_REQUEST[ 'EESID' ] ) ) {
631
-			$session_id = sanitize_text_field( $_REQUEST[ 'EESID' ] );
630
+		if (isset($_REQUEST['EESID'])) {
631
+			$session_id = sanitize_text_field($_REQUEST['EESID']);
632 632
 		} else {
633
-			$session_id = md5( session_id() . get_current_blog_id() . $this->_get_sid_salt() );
633
+			$session_id = md5(session_id().get_current_blog_id().$this->_get_sid_salt());
634 634
 		}
635
-		return apply_filters( 'FHEE__EE_Session___generate_session_id__session_id', $session_id );
635
+		return apply_filters('FHEE__EE_Session___generate_session_id__session_id', $session_id);
636 636
 	}
637 637
 
638 638
 
@@ -644,20 +644,20 @@  discard block
 block discarded – undo
644 644
 	  */
645 645
 	protected function _get_sid_salt() {
646 646
 		// was session id salt already saved to db ?
647
-		if ( empty( $this->_sid_salt ) ) {
647
+		if (empty($this->_sid_salt)) {
648 648
 			// no?  then maybe use WP defined constant
649
-			if ( defined( 'AUTH_SALT' ) ) {
649
+			if (defined('AUTH_SALT')) {
650 650
 				$this->_sid_salt = AUTH_SALT;
651 651
 			}
652 652
 			// if salt doesn't exist or is too short
653
-			if ( strlen( $this->_sid_salt ) < 32 ) {
653
+			if (strlen($this->_sid_salt) < 32) {
654 654
 				// create a new one
655
-				$this->_sid_salt = wp_generate_password( 64 );
655
+				$this->_sid_salt = wp_generate_password(64);
656 656
 			}
657 657
 			// and save it as a permanent session setting
658
-			$session_settings = get_option( 'ee_session_settings' );
659
-			$session_settings[ 'sid_salt' ] = $this->_sid_salt;
660
-			update_option( 'ee_session_settings', $session_settings );
658
+			$session_settings = get_option('ee_session_settings');
659
+			$session_settings['sid_salt'] = $this->_sid_salt;
660
+			update_option('ee_session_settings', $session_settings);
661 661
 		}
662 662
 		return $this->_sid_salt;
663 663
 	}
@@ -686,19 +686,19 @@  discard block
 block discarded – undo
686 686
       * @return TRUE on success, FALSE on fail
687 687
       * @throws \EE_Error
688 688
       */
689
-	public function update( $new_session = FALSE ) {
690
-		$this->_session_data = isset( $this->_session_data )
691
-			&& is_array( $this->_session_data )
692
-			&& isset( $this->_session_data['id'])
689
+	public function update($new_session = FALSE) {
690
+		$this->_session_data = isset($this->_session_data)
691
+			&& is_array($this->_session_data)
692
+			&& isset($this->_session_data['id'])
693 693
 			? $this->_session_data
694 694
 			: array();
695
-		if ( empty( $this->_session_data )) {
695
+		if (empty($this->_session_data)) {
696 696
 			$this->_set_defaults();
697 697
 		}
698 698
 		$session_data = array();
699
-		foreach ( $this->_session_data as $key => $value ) {
699
+		foreach ($this->_session_data as $key => $value) {
700 700
 
701
-			switch( $key ) {
701
+			switch ($key) {
702 702
 
703 703
 				case 'id' :
704 704
 					// session ID
@@ -716,7 +716,7 @@  discard block
 block discarded – undo
716 716
 				break;
717 717
 
718 718
 				case 'init_access' :
719
-					$session_data['init_access'] = absint( $value );
719
+					$session_data['init_access'] = absint($value);
720 720
 				break;
721 721
 
722 722
 				case 'last_access' :
@@ -726,7 +726,7 @@  discard block
 block discarded – undo
726 726
 
727 727
 				case 'expiration' :
728 728
 					// when the session expires
729
-					$session_data['expiration'] = ! empty( $this->_expiration )
729
+					$session_data['expiration'] = ! empty($this->_expiration)
730 730
 						? $this->_expiration
731 731
 						: $session_data['init_access'] + $this->_lifespan;
732 732
 				break;
@@ -738,11 +738,11 @@  discard block
 block discarded – undo
738 738
 
739 739
 				case 'pages_visited' :
740 740
 					$page_visit = $this->_get_page_visit();
741
-					if ( $page_visit ) {
741
+					if ($page_visit) {
742 742
 						// set pages visited where the first will be the http referrer
743
-						$this->_session_data[ 'pages_visited' ][ $this->_time ] = $page_visit;
743
+						$this->_session_data['pages_visited'][$this->_time] = $page_visit;
744 744
 						// we'll only save the last 10 page visits.
745
-						$session_data[ 'pages_visited' ] = array_slice( $this->_session_data['pages_visited'], -10 );
745
+						$session_data['pages_visited'] = array_slice($this->_session_data['pages_visited'], -10);
746 746
 					}
747 747
 				break;
748 748
 
@@ -756,9 +756,9 @@  discard block
 block discarded – undo
756 756
 
757 757
 		$this->_session_data = $session_data;
758 758
 		// creating a new session does not require saving to the db just yet
759
-		if ( ! $new_session ) {
759
+		if ( ! $new_session) {
760 760
 			// ready? let's save
761
-			if ( $this->_save_session_to_db() ) {
761
+			if ($this->_save_session_to_db()) {
762 762
 				return TRUE;
763 763
 			} else {
764 764
 				return FALSE;
@@ -778,9 +778,9 @@  discard block
 block discarded – undo
778 778
       * @throws \EE_Error
779 779
       */
780 780
 	private function _create_espresso_session( ) {
781
-		do_action( 'AHEE_log', __CLASS__, __FUNCTION__, '' );
781
+		do_action('AHEE_log', __CLASS__, __FUNCTION__, '');
782 782
 		// use the update function for now with $new_session arg set to TRUE
783
-		return  $this->update( TRUE ) ? TRUE : FALSE;
783
+		return  $this->update(TRUE) ? TRUE : FALSE;
784 784
 	}
785 785
 
786 786
 
@@ -800,7 +800,7 @@  discard block
 block discarded – undo
800 800
                 EE_Registry::instance()->REQ->front_ajax
801 801
                 || (
802 802
                     // OR an admin request that is NOT AJAX
803
-					! ( defined( 'DOING_AJAX' ) && DOING_AJAX )
803
+					! (defined('DOING_AJAX') && DOING_AJAX)
804 804
                     && is_admin()
805 805
 				)
806 806
                 || (
@@ -813,8 +813,8 @@  discard block
 block discarded – undo
813 813
 			return false;
814 814
 		}
815 815
 		$transaction = $this->transaction();
816
-		if ( $transaction instanceof EE_Transaction ) {
817
-			if ( ! $transaction->ID() ) {
816
+		if ($transaction instanceof EE_Transaction) {
817
+			if ( ! $transaction->ID()) {
818 818
 				$transaction->save();
819 819
 			}
820 820
 			$this->_session_data['transaction'] = $transaction->ID();
@@ -823,19 +823,19 @@  discard block
 block discarded – undo
823 823
 		$session_data = serialize($this->_session_data);
824 824
 		// do we need to also encode it to avoid corrupted data when saved to the db?
825 825
 		$session_data = $this->_use_encryption
826
-            ? $this->encryption->base64_string_encode( $session_data )
826
+            ? $this->encryption->base64_string_encode($session_data)
827 827
             : $session_data;
828 828
 		// maybe save hash check
829
-		if ( apply_filters( 'FHEE__EE_Session___perform_session_id_hash_check', WP_DEBUG ) ) {
829
+		if (apply_filters('FHEE__EE_Session___perform_session_id_hash_check', WP_DEBUG)) {
830 830
             $this->cache_storage->add(
831
-                EE_Session::hash_check_prefix . $this->_sid,
831
+                EE_Session::hash_check_prefix.$this->_sid,
832 832
                 md5($session_data),
833 833
                 $this->_lifespan
834 834
             );
835 835
         }
836 836
         // we're using the Transient API for storing session data,
837 837
         return $this->cache_storage->add(
838
-            EE_Session::session_id_prefix . $this->_sid,
838
+            EE_Session::session_id_prefix.$this->_sid,
839 839
             $session_data,
840 840
             $this->_lifespan
841 841
         );
@@ -864,10 +864,10 @@  discard block
 block discarded – undo
864 864
 			'HTTP_FORWARDED',
865 865
 			'REMOTE_ADDR'
866 866
 		);
867
-		foreach ( $server_keys as $key ){
868
-			if ( isset( $_SERVER[ $key ] )) {
869
-				foreach ( array_map( 'trim', explode( ',', $_SERVER[ $key ] )) as $ip ) {
870
-					if ( $ip === '127.0.0.1' || filter_var( $ip, FILTER_VALIDATE_IP ) !== FALSE ) {
867
+		foreach ($server_keys as $key) {
868
+			if (isset($_SERVER[$key])) {
869
+				foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip) {
870
+					if ($ip === '127.0.0.1' || filter_var($ip, FILTER_VALIDATE_IP) !== FALSE) {
871 871
 						$visitor_ip = $ip;
872 872
 					}
873 873
 				}
@@ -886,32 +886,32 @@  discard block
 block discarded – undo
886 886
 	 *			@return string
887 887
 	 */
888 888
 	public function _get_page_visit() {
889
-		$page_visit = home_url('/') . 'wp-admin/admin-ajax.php';
889
+		$page_visit = home_url('/').'wp-admin/admin-ajax.php';
890 890
 		// check for request url
891
-		if ( isset( $_SERVER['REQUEST_URI'] )) {
891
+		if (isset($_SERVER['REQUEST_URI'])) {
892 892
 			$http_host = '';
893 893
 			$page_id = '?';
894 894
 			$e_reg = '';
895
-			$request_uri = esc_url( $_SERVER['REQUEST_URI'] );
896
-			$ru_bits = explode( '?', $request_uri );
895
+			$request_uri = esc_url($_SERVER['REQUEST_URI']);
896
+			$ru_bits = explode('?', $request_uri);
897 897
 			$request_uri = $ru_bits[0];
898 898
 			// check for and grab host as well
899
-			if ( isset( $_SERVER['HTTP_HOST'] )) {
900
-				$http_host = esc_url( $_SERVER['HTTP_HOST'] );
899
+			if (isset($_SERVER['HTTP_HOST'])) {
900
+				$http_host = esc_url($_SERVER['HTTP_HOST']);
901 901
 			}
902 902
 			// check for page_id in SERVER REQUEST
903
-			if ( isset( $_REQUEST['page_id'] )) {
903
+			if (isset($_REQUEST['page_id'])) {
904 904
 				// rebuild $e_reg without any of the extra parameters
905
-				$page_id = '?page_id=' . esc_attr( $_REQUEST['page_id'] ) . '&amp;';
905
+				$page_id = '?page_id='.esc_attr($_REQUEST['page_id']).'&amp;';
906 906
 			}
907 907
 			// check for $e_reg in SERVER REQUEST
908
-			if ( isset( $_REQUEST['ee'] )) {
908
+			if (isset($_REQUEST['ee'])) {
909 909
 				// rebuild $e_reg without any of the extra parameters
910
-				$e_reg = 'ee=' . esc_attr( $_REQUEST['ee'] );
910
+				$e_reg = 'ee='.esc_attr($_REQUEST['ee']);
911 911
 			}
912
-			$page_visit = rtrim( $http_host . $request_uri . $page_id . $e_reg, '?' );
912
+			$page_visit = rtrim($http_host.$request_uri.$page_id.$e_reg, '?');
913 913
 		}
914
-		return $page_visit !== home_url( '/wp-admin/admin-ajax.php' ) ? $page_visit : '';
914
+		return $page_visit !== home_url('/wp-admin/admin-ajax.php') ? $page_visit : '';
915 915
 
916 916
 	}
917 917
 
@@ -941,14 +941,14 @@  discard block
 block discarded – undo
941 941
       * @return void
942 942
       * @throws \EE_Error
943 943
       */
944
-	public function clear_session( $class = '', $function = '' ) {
944
+	public function clear_session($class = '', $function = '') {
945 945
 		//echo '<h3 style="color:#999;line-height:.9em;"><span style="color:#2EA2CC">' . __CLASS__ . '</span>::<span style="color:#E76700">' . __FUNCTION__ . '( ' . $class . '::' . $function . '() )</span><br/><span style="font-size:9px;font-weight:normal;">' . __FILE__ . '</span>    <b style="font-size:10px;">  ' . __LINE__ . ' </b></h3>';
946
-        do_action( 'AHEE_log', __FILE__, __FUNCTION__, 'session cleared by : ' . $class . '::' .  $function . '()' );
946
+        do_action('AHEE_log', __FILE__, __FUNCTION__, 'session cleared by : '.$class.'::'.$function.'()');
947 947
 		$this->reset_cart();
948 948
 		$this->reset_checkout();
949 949
 		$this->reset_transaction();
950 950
 		// wipe out everything that isn't a default session datum
951
-		$this->reset_data( array_keys( $this->_session_data ));
951
+		$this->reset_data(array_keys($this->_session_data));
952 952
 		// reset initial site access time and the session expiration
953 953
 		$this->_set_init_access_and_expiration();
954 954
 		$this->_save_session_to_db();
@@ -963,42 +963,42 @@  discard block
 block discarded – undo
963 963
 	  * @param bool  $show_all_notices
964 964
 	  * @return TRUE on success, FALSE on fail
965 965
 	  */
966
-	public function reset_data( $data_to_reset = array(), $show_all_notices = FALSE ) {
966
+	public function reset_data($data_to_reset = array(), $show_all_notices = FALSE) {
967 967
 		// if $data_to_reset is not in an array, then put it in one
968
-		if ( ! is_array( $data_to_reset ) ) {
969
-			$data_to_reset = array ( $data_to_reset );
968
+		if ( ! is_array($data_to_reset)) {
969
+			$data_to_reset = array($data_to_reset);
970 970
 		}
971 971
 		// nothing ??? go home!
972
-		if ( empty( $data_to_reset )) {
973
-			EE_Error::add_error( __( 'No session data could be reset, because no session var name was provided.', 'event_espresso' ), __FILE__, __FUNCTION__, __LINE__ );
972
+		if (empty($data_to_reset)) {
973
+			EE_Error::add_error(__('No session data could be reset, because no session var name was provided.', 'event_espresso'), __FILE__, __FUNCTION__, __LINE__);
974 974
 			return FALSE;
975 975
 		}
976 976
 		$return_value = TRUE;
977 977
 		// since $data_to_reset is an array, cycle through the values
978
-		foreach ( $data_to_reset as $reset ) {
978
+		foreach ($data_to_reset as $reset) {
979 979
 
980 980
 			// first check to make sure it is a valid session var
981
-			if ( isset( $this->_session_data[ $reset ] )) {
981
+			if (isset($this->_session_data[$reset])) {
982 982
 				// then check to make sure it is not a default var
983
-				if ( ! array_key_exists( $reset, $this->_default_session_vars )) {
983
+				if ( ! array_key_exists($reset, $this->_default_session_vars)) {
984 984
 					// remove session var
985
-					unset( $this->_session_data[ $reset ] );
986
-					if ( $show_all_notices ) {
987
-						EE_Error::add_success( sprintf( __( 'The session variable %s was removed.', 'event_espresso' ), $reset ), __FILE__, __FUNCTION__, __LINE__ );
985
+					unset($this->_session_data[$reset]);
986
+					if ($show_all_notices) {
987
+						EE_Error::add_success(sprintf(__('The session variable %s was removed.', 'event_espresso'), $reset), __FILE__, __FUNCTION__, __LINE__);
988 988
 					}
989
-					$return_value = !isset($return_value) ? TRUE : $return_value;
989
+					$return_value = ! isset($return_value) ? TRUE : $return_value;
990 990
 
991 991
 				} else {
992 992
 					// yeeeeeeeeerrrrrrrrrrr OUT !!!!
993
-					if ( $show_all_notices ) {
994
-						EE_Error::add_error( sprintf( __( 'Sorry! %s is a default session datum and can not be reset.', 'event_espresso' ), $reset ), __FILE__, __FUNCTION__, __LINE__ );
993
+					if ($show_all_notices) {
994
+						EE_Error::add_error(sprintf(__('Sorry! %s is a default session datum and can not be reset.', 'event_espresso'), $reset), __FILE__, __FUNCTION__, __LINE__);
995 995
 					}
996 996
 					$return_value = FALSE;
997 997
 				}
998 998
 
999
-			} else if ( $show_all_notices ) {
999
+			} else if ($show_all_notices) {
1000 1000
 				// oops! that session var does not exist!
1001
-				EE_Error::add_error( sprintf( __( 'The session item provided, %s, is invalid or does not exist.', 'event_espresso' ), $reset ), __FILE__, __FUNCTION__, __LINE__ );
1001
+				EE_Error::add_error(sprintf(__('The session item provided, %s, is invalid or does not exist.', 'event_espresso'), $reset), __FILE__, __FUNCTION__, __LINE__);
1002 1002
 				$return_value = FALSE;
1003 1003
 			}
1004 1004
 
@@ -1017,8 +1017,8 @@  discard block
 block discarded – undo
1017 1017
       * @throws \EE_Error
1018 1018
       */
1019 1019
 	public function wp_loaded() {
1020
-		if ( isset(  EE_Registry::instance()->REQ ) && EE_Registry::instance()->REQ->is_set( 'clear_session' )) {
1021
-			$this->clear_session( __CLASS__, __FUNCTION__ );
1020
+		if (isset(EE_Registry::instance()->REQ) && EE_Registry::instance()->REQ->is_set('clear_session')) {
1021
+			$this->clear_session(__CLASS__, __FUNCTION__);
1022 1022
 		}
1023 1023
 	}
1024 1024
 
@@ -1054,7 +1054,7 @@  discard block
 block discarded – undo
1054 1054
              // or use that for the new transient cleanup query limit
1055 1055
              add_filter(
1056 1056
                  'FHEE__TransientCacheStorage__clearExpiredTransients__limit',
1057
-                 function () use ($expired_session_transient_delete_query_limit) {
1057
+                 function() use ($expired_session_transient_delete_query_limit) {
1058 1058
                      return $expired_session_transient_delete_query_limit;
1059 1059
                  }
1060 1060
              );
@@ -1068,34 +1068,34 @@  discard block
 block discarded – undo
1068 1068
 	  * @param $data1
1069 1069
 	  * @return string
1070 1070
 	  */
1071
-	 private function find_serialize_error( $data1 ) {
1071
+	 private function find_serialize_error($data1) {
1072 1072
 		$error = '<pre>';
1073 1073
 		 $data2 = preg_replace_callback(
1074 1074
 			 '!s:(\d+):"(.*?)";!',
1075
-			 function ( $match ) {
1076
-				 return ( $match[1] === strlen( $match[2] ) )
1075
+			 function($match) {
1076
+				 return ($match[1] === strlen($match[2]))
1077 1077
 					 ? $match[0]
1078 1078
 					 : 's:'
1079
-					   . strlen( $match[2] )
1079
+					   . strlen($match[2])
1080 1080
 					   . ':"'
1081 1081
 					   . $match[2]
1082 1082
 					   . '";';
1083 1083
 			 },
1084 1084
 			 $data1
1085 1085
 		 );
1086
-		$max = ( strlen( $data1 ) > strlen( $data2 ) ) ? strlen( $data1 ) : strlen( $data2 );
1087
-		$error .= $data1 . PHP_EOL;
1088
-		$error .= $data2 . PHP_EOL;
1089
-		for ( $i = 0; $i < $max; $i++ ) {
1090
-			if ( @$data1[ $i ] !== @$data2[ $i ] ) {
1091
-				$error .= 'Difference ' . @$data1[ $i ] . ' != ' . @$data2[ $i ] . PHP_EOL;
1092
-				$error .= "\t-> ORD number " . ord( @$data1[ $i ] ) . ' != ' . ord( @$data2[ $i ] ) . PHP_EOL;
1093
-				$error .= "\t-> Line Number = $i" . PHP_EOL;
1094
-				$start = ( $i - 20 );
1095
-				$start = ( $start < 0 ) ? 0 : $start;
1086
+		$max = (strlen($data1) > strlen($data2)) ? strlen($data1) : strlen($data2);
1087
+		$error .= $data1.PHP_EOL;
1088
+		$error .= $data2.PHP_EOL;
1089
+		for ($i = 0; $i < $max; $i++) {
1090
+			if (@$data1[$i] !== @$data2[$i]) {
1091
+				$error .= 'Difference '.@$data1[$i].' != '.@$data2[$i].PHP_EOL;
1092
+				$error .= "\t-> ORD number ".ord(@$data1[$i]).' != '.ord(@$data2[$i]).PHP_EOL;
1093
+				$error .= "\t-> Line Number = $i".PHP_EOL;
1094
+				$start = ($i - 20);
1095
+				$start = ($start < 0) ? 0 : $start;
1096 1096
 				$length = 40;
1097 1097
 				$point = $max - $i;
1098
-				if ( $point < 20 ) {
1098
+				if ($point < 20) {
1099 1099
 					$rlength = 1;
1100 1100
 					$rpoint = -$point;
1101 1101
 				} else {
@@ -1104,16 +1104,16 @@  discard block
 block discarded – undo
1104 1104
 				}
1105 1105
 				$error .= "\t-> Section Data1  = ";
1106 1106
 				$error .= substr_replace(
1107
-					substr( $data1, $start, $length ),
1108
-					"<b style=\"color:green\">{$data1[ $i ]}</b>",
1107
+					substr($data1, $start, $length),
1108
+					"<b style=\"color:green\">{$data1[$i]}</b>",
1109 1109
 					$rpoint,
1110 1110
 					$rlength
1111 1111
 				);
1112 1112
 				$error .= PHP_EOL;
1113 1113
 				$error .= "\t-> Section Data2  = ";
1114 1114
 				$error .= substr_replace(
1115
-					substr( $data2, $start, $length ),
1116
-					"<b style=\"color:red\">{$data2[ $i ]}</b>",
1115
+					substr($data2, $start, $length),
1116
+					"<b style=\"color:red\">{$data2[$i]}</b>",
1117 1117
 					$rpoint,
1118 1118
 					$rlength
1119 1119
 				);
Please login to merge, or discard this patch.