Completed
Branch ENH/PUE-stat-clean-up (2bcac3)
by
unknown
16:59 queued 08:24
created
acceptance_tests/Page/CountrySettingsAdmin.php 1 patch
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -14,51 +14,51 @@
 block discarded – undo
14 14
 {
15 15
 
16 16
 
17
-    const COUNTRY_SETTINGS_SAVE_BUTTON = '#country_settings_save_2';
17
+	const COUNTRY_SETTINGS_SAVE_BUTTON = '#country_settings_save_2';
18 18
 
19 19
 
20 20
 
21
-    /**
22
-     * Return the url for the country settings admin page.
23
-     * @param string $additional_params
24
-     * @return string
25
-     */
26
-    public static function url($additional_params = '')
27
-    {
28
-        return self::adminUrl('espresso_general_settings', 'country_settings', $additional_params);
29
-    }
21
+	/**
22
+	 * Return the url for the country settings admin page.
23
+	 * @param string $additional_params
24
+	 * @return string
25
+	 */
26
+	public static function url($additional_params = '')
27
+	{
28
+		return self::adminUrl('espresso_general_settings', 'country_settings', $additional_params);
29
+	}
30 30
 
31 31
 
32
-    /**
33
-     * Return the decimal places (precision) radio field locator for selection.
34
-     * @param int    $decimal_place_value
35
-     * @param string $country_code
36
-     * @return string
37
-     */
38
-    public static function currencyDecimalPlacesRadioField($decimal_place_value = 2, $country_code = 'US')
39
-    {
40
-        return "//input[@id='CNT_cur_dec_plc-$country_code-$decimal_place_value']";
41
-    }
32
+	/**
33
+	 * Return the decimal places (precision) radio field locator for selection.
34
+	 * @param int    $decimal_place_value
35
+	 * @param string $country_code
36
+	 * @return string
37
+	 */
38
+	public static function currencyDecimalPlacesRadioField($decimal_place_value = 2, $country_code = 'US')
39
+	{
40
+		return "//input[@id='CNT_cur_dec_plc-$country_code-$decimal_place_value']";
41
+	}
42 42
 
43 43
 
44
-    /**
45
-     * Return the currency decimal mark field locator for selection.
46
-     * @param string $decimal_mark
47
-     * @return string
48
-     */
49
-    public static function currencyDecimalMarkRadioField($decimal_mark = '.')
50
-    {
51
-        return "//input[@class='CNT_cur_dec_mrk' and @value='$decimal_mark']";
52
-    }
44
+	/**
45
+	 * Return the currency decimal mark field locator for selection.
46
+	 * @param string $decimal_mark
47
+	 * @return string
48
+	 */
49
+	public static function currencyDecimalMarkRadioField($decimal_mark = '.')
50
+	{
51
+		return "//input[@class='CNT_cur_dec_mrk' and @value='$decimal_mark']";
52
+	}
53 53
 
54 54
 
55
-    /**
56
-     * Return the currency thousands separator field locator for selection.
57
-     * @param string $thousands_separator
58
-     * @return string
59
-     */
60
-    public static function currencyThousandsSeparatorField($thousands_separator = ',')
61
-    {
62
-        return "//input[@class='CNT_cur_thsnds' and @value='$thousands_separator']";
63
-    }
55
+	/**
56
+	 * Return the currency thousands separator field locator for selection.
57
+	 * @param string $thousands_separator
58
+	 * @return string
59
+	 */
60
+	public static function currencyThousandsSeparatorField($thousands_separator = ',')
61
+	{
62
+		return "//input[@class='CNT_cur_thsnds' and @value='$thousands_separator']";
63
+	}
64 64
 }
65 65
\ No newline at end of file
Please login to merge, or discard this patch.
core/db_models/fields/EE_Email_Field.php 1 patch
Indentation   +31 added lines, -31 removed lines patch added patch discarded remove patch
@@ -16,38 +16,38 @@
 block discarded – undo
16 16
 {
17 17
 
18 18
 
19
-    /**
20
-     * @param string $table_column
21
-     * @param string $nice_name
22
-     * @param bool   $nullable
23
-     * @param null   $default_value
24
-     * @throws InvalidArgumentException
25
-     */
26
-    public function __construct($table_column, $nice_name, $nullable, $default_value = null)
27
-    {
28
-        parent::__construct($table_column, $nice_name, $nullable, $default_value);
29
-        $this->setSchemaFormat('email');
30
-    }
19
+	/**
20
+	 * @param string $table_column
21
+	 * @param string $nice_name
22
+	 * @param bool   $nullable
23
+	 * @param null   $default_value
24
+	 * @throws InvalidArgumentException
25
+	 */
26
+	public function __construct($table_column, $nice_name, $nullable, $default_value = null)
27
+	{
28
+		parent::__construct($table_column, $nice_name, $nullable, $default_value);
29
+		$this->setSchemaFormat('email');
30
+	}
31 31
 
32 32
 
33 33
 
34
-    /**
35
-     * In form inputs, we should have called htmlentities and addslashes() on form inputs,
36
-     * so we need to undo that on setting of these fields
37
-     *
38
-     * @param string $email_address
39
-     * @return string
40
-     * @throws InvalidArgumentException
41
-     * @throws InvalidInterfaceException
42
-     * @throws InvalidDataTypeException
43
-     */
44
-    public function prepare_for_set($email_address)
45
-    {
46
-        try {
47
-            $email_address = EmailAddressFactory::create($email_address);
48
-            return $email_address->get();
49
-        } catch (EmailValidationException $e) {
50
-            return '';
51
-        }
52
-    }
34
+	/**
35
+	 * In form inputs, we should have called htmlentities and addslashes() on form inputs,
36
+	 * so we need to undo that on setting of these fields
37
+	 *
38
+	 * @param string $email_address
39
+	 * @return string
40
+	 * @throws InvalidArgumentException
41
+	 * @throws InvalidInterfaceException
42
+	 * @throws InvalidDataTypeException
43
+	 */
44
+	public function prepare_for_set($email_address)
45
+	{
46
+		try {
47
+			$email_address = EmailAddressFactory::create($email_address);
48
+			return $email_address->get();
49
+		} catch (EmailValidationException $e) {
50
+			return '';
51
+		}
52
+	}
53 53
 }
Please login to merge, or discard this patch.
core/domain/services/validation/email/strategies/InternationalDNS.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -34,7 +34,7 @@  discard block
 block discarded – undo
34 34
             $email_address,
35 35
             $this->getAtIndex($email_address)
36 36
         );
37
-        if (! checkdnsrr($domain, 'MX')) {
37
+        if ( ! checkdnsrr($domain, 'MX')) {
38 38
             // domain not found in MX records
39 39
             throw new EmailValidationException(
40 40
                 __(
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
                 )
46 46
             );
47 47
         }
48
-        if (! checkdnsrr($domain, 'A')) {
48
+        if ( ! checkdnsrr($domain, 'A')) {
49 49
             // domain not found in A records
50 50
             throw new EmailValidationException(
51 51
                 __(
Please login to merge, or discard this patch.
Indentation   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -15,43 +15,43 @@
 block discarded – undo
15 15
 class InternationalDNS extends International
16 16
 {
17 17
 
18
-    /**
19
-     * Validates the email in teh same way as the parent, but also
20
-     * verifies the domain exists.
21
-     *
22
-     * @param string $email_address
23
-     * @return bool
24
-     * @throws EmailValidationException
25
-     */
26
-    public function validate($email_address)
27
-    {
28
-        parent::validate($email_address);
29
-        $domain = $this->getDomainPartOfEmail(
30
-            $email_address,
31
-            $this->getAtIndex($email_address)
32
-        );
33
-        if (! checkdnsrr($domain, 'MX')) {
34
-            // domain not found in MX records
35
-            throw new EmailValidationException(
36
-                __(
37
-                // @codingStandardsIgnoreStart
38
-                    '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.',
39
-                    // @codingStandardsIgnoreEnd
40
-                    'event_espresso'
41
-                )
42
-            );
43
-        }
44
-        if (! checkdnsrr($domain, 'A')) {
45
-            // domain not found in A records
46
-            throw new EmailValidationException(
47
-                __(
48
-                // @codingStandardsIgnoreStart
49
-                    '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.',
50
-                    // @codingStandardsIgnoreEnd
51
-                    'event_espresso'
52
-                )
53
-            );
54
-        }
55
-        return true;
56
-    }
18
+	/**
19
+	 * Validates the email in teh same way as the parent, but also
20
+	 * verifies the domain exists.
21
+	 *
22
+	 * @param string $email_address
23
+	 * @return bool
24
+	 * @throws EmailValidationException
25
+	 */
26
+	public function validate($email_address)
27
+	{
28
+		parent::validate($email_address);
29
+		$domain = $this->getDomainPartOfEmail(
30
+			$email_address,
31
+			$this->getAtIndex($email_address)
32
+		);
33
+		if (! checkdnsrr($domain, 'MX')) {
34
+			// domain not found in MX records
35
+			throw new EmailValidationException(
36
+				__(
37
+				// @codingStandardsIgnoreStart
38
+					'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.',
39
+					// @codingStandardsIgnoreEnd
40
+					'event_espresso'
41
+				)
42
+			);
43
+		}
44
+		if (! checkdnsrr($domain, 'A')) {
45
+			// domain not found in A records
46
+			throw new EmailValidationException(
47
+				__(
48
+				// @codingStandardsIgnoreStart
49
+					'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.',
50
+					// @codingStandardsIgnoreEnd
51
+					'event_espresso'
52
+				)
53
+			);
54
+		}
55
+		return true;
56
+	}
57 57
 }
Please login to merge, or discard this patch.
core/domain/services/validation/email/EmailValidatorInterface.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -18,14 +18,14 @@
 block discarded – undo
18 18
 interface EmailValidatorInterface
19 19
 {
20 20
 
21
-    /**
22
-     * Validates the supplied email address. If it is invalid, throws EmailValidationException
23
-     *
24
-     * @param string $email_address
25
-     * @return boolean
26
-     * @throws EmailValidationException
27
-     */
28
-    public function validate($email_address);
21
+	/**
22
+	 * Validates the supplied email address. If it is invalid, throws EmailValidationException
23
+	 *
24
+	 * @param string $email_address
25
+	 * @return boolean
26
+	 * @throws EmailValidationException
27
+	 */
28
+	public function validate($email_address);
29 29
 
30 30
 
31 31
 }
Please login to merge, or discard this patch.
strategies/validation/EE_Email_Validation_Strategy.strategy.php 2 patches
Indentation   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -18,72 +18,72 @@
 block discarded – undo
18 18
 {
19 19
 
20 20
 
21
-    /**
22
-     * @param string               $validation_error_message
23
-     */
24
-    public function __construct($validation_error_message = '')
25
-    {
26
-        if (! $validation_error_message) {
27
-            $validation_error_message = esc_html__('Please enter a valid email address.', 'event_espresso');
28
-        }
29
-        parent::__construct($validation_error_message);
30
-    }
21
+	/**
22
+	 * @param string               $validation_error_message
23
+	 */
24
+	public function __construct($validation_error_message = '')
25
+	{
26
+		if (! $validation_error_message) {
27
+			$validation_error_message = esc_html__('Please enter a valid email address.', 'event_espresso');
28
+		}
29
+		parent::__construct($validation_error_message);
30
+	}
31 31
 
32 32
 
33 33
 
34
-    /**
35
-     * just checks the field isn't blank
36
-     *
37
-     * @param $normalized_value
38
-     * @return bool
39
-     * @throws InvalidArgumentException
40
-     * @throws InvalidInterfaceException
41
-     * @throws InvalidDataTypeException
42
-     * @throws EE_Validation_Error
43
-     */
44
-    public function validate($normalized_value)
45
-    {
46
-        if ($normalized_value && ! $this->_validate_email($normalized_value)) {
47
-            throw new EE_Validation_Error($this->get_validation_error_message(), 'required');
48
-        }
49
-        return true;
50
-    }
34
+	/**
35
+	 * just checks the field isn't blank
36
+	 *
37
+	 * @param $normalized_value
38
+	 * @return bool
39
+	 * @throws InvalidArgumentException
40
+	 * @throws InvalidInterfaceException
41
+	 * @throws InvalidDataTypeException
42
+	 * @throws EE_Validation_Error
43
+	 */
44
+	public function validate($normalized_value)
45
+	{
46
+		if ($normalized_value && ! $this->_validate_email($normalized_value)) {
47
+			throw new EE_Validation_Error($this->get_validation_error_message(), 'required');
48
+		}
49
+		return true;
50
+	}
51 51
 
52 52
 
53 53
 
54
-    /**
55
-     * @return array
56
-     */
57
-    public function get_jquery_validation_rule_array()
58
-    {
59
-        return array('email' => true, 'messages' => array('email' => $this->get_validation_error_message()));
60
-    }
54
+	/**
55
+	 * @return array
56
+	 */
57
+	public function get_jquery_validation_rule_array()
58
+	{
59
+		return array('email' => true, 'messages' => array('email' => $this->get_validation_error_message()));
60
+	}
61 61
 
62 62
 
63 63
 
64
-    /**
65
-     * Validate an email address.
66
-     * Provide email address (raw input)
67
-     *
68
-     * @param $email
69
-     * @return bool of whether the email is valid or not
70
-     * @throws InvalidArgumentException
71
-     * @throws InvalidInterfaceException
72
-     * @throws InvalidDataTypeException
73
-     * @throws EE_Validation_Error
74
-     */
75
-    private function _validate_email($email)
76
-    {
77
-        try {
78
-            EmailAddressFactory::create($email);
79
-        } catch (EmailValidationException $e) {
80
-            throw new EE_Validation_Error(
81
-                $e->getMessage(),
82
-                'invalid_email',
83
-                $this->_input,
84
-                $e
85
-            );
86
-        }
87
-        return true;
88
-    }
64
+	/**
65
+	 * Validate an email address.
66
+	 * Provide email address (raw input)
67
+	 *
68
+	 * @param $email
69
+	 * @return bool of whether the email is valid or not
70
+	 * @throws InvalidArgumentException
71
+	 * @throws InvalidInterfaceException
72
+	 * @throws InvalidDataTypeException
73
+	 * @throws EE_Validation_Error
74
+	 */
75
+	private function _validate_email($email)
76
+	{
77
+		try {
78
+			EmailAddressFactory::create($email);
79
+		} catch (EmailValidationException $e) {
80
+			throw new EE_Validation_Error(
81
+				$e->getMessage(),
82
+				'invalid_email',
83
+				$this->_input,
84
+				$e
85
+			);
86
+		}
87
+		return true;
88
+	}
89 89
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -23,7 +23,7 @@
 block discarded – undo
23 23
      */
24 24
     public function __construct($validation_error_message = '')
25 25
     {
26
-        if (! $validation_error_message) {
26
+        if ( ! $validation_error_message) {
27 27
             $validation_error_message = esc_html__('Please enter a valid email address.', 'event_espresso');
28 28
         }
29 29
         parent::__construct($validation_error_message);
Please login to merge, or discard this patch.
core/db_models/EEM_Attendee.model.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -351,7 +351,7 @@
 block discarded – undo
351 351
      * retrieve  a single attendee from db via their ID
352 352
      *
353 353
      * @param $ATT_ID
354
-     * @return mixed array on success, FALSE on fail
354
+     * @return EE_Base_Class|null array on success, FALSE on fail
355 355
      * @deprecated
356 356
      */
357 357
     public function get_attendee_by_ID($ATT_ID = false)
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -284,8 +284,8 @@  discard block
 block discarded – undo
284 284
      */
285 285
     public function get_attendee_field_for_system_question($system_question_string)
286 286
     {
287
-        return isset($this->_system_question_to_attendee_field_name[ $system_question_string ])
288
-            ? $this->_system_question_to_attendee_field_name[ $system_question_string ]
287
+        return isset($this->_system_question_to_attendee_field_name[$system_question_string])
288
+            ? $this->_system_question_to_attendee_field_name[$system_question_string]
289 289
             : null;
290 290
     }
291 291
 
@@ -353,7 +353,7 @@  discard block
 block discarded – undo
353 353
             return false;
354 354
         }
355 355
         $attendee = $this->get_all(array($where_cols_n_values));
356
-        if (! empty($attendee)) {
356
+        if ( ! empty($attendee)) {
357 357
             return array_shift($attendee);
358 358
         }
359 359
         return false;
Please login to merge, or discard this patch.
Indentation   +418 added lines, -418 removed lines patch added patch discarded remove patch
@@ -12,430 +12,430 @@
 block discarded – undo
12 12
 class EEM_Attendee extends EEM_CPT_Base
13 13
 {
14 14
 
15
-    // private instance of the Attendee object
16
-    protected static $_instance = null;
15
+	// private instance of the Attendee object
16
+	protected static $_instance = null;
17 17
 
18
-    /**
19
-     * QST_system for questions are strings not integers now,
20
-     * so these constants are deprecated.
21
-     * Please instead use the EEM_Attendee::system_question_* constants
22
-     *
23
-     * @deprecated
24
-     */
25
-    const fname_question_id = 1;
18
+	/**
19
+	 * QST_system for questions are strings not integers now,
20
+	 * so these constants are deprecated.
21
+	 * Please instead use the EEM_Attendee::system_question_* constants
22
+	 *
23
+	 * @deprecated
24
+	 */
25
+	const fname_question_id = 1;
26 26
 
27
-    /**
28
-     * @deprecated
29
-     */
30
-    const lname_question_id = 2;
27
+	/**
28
+	 * @deprecated
29
+	 */
30
+	const lname_question_id = 2;
31 31
 
32 32
 
33
-    /**
34
-     * @deprecated
35
-     */
36
-    const email_question_id = 3;
33
+	/**
34
+	 * @deprecated
35
+	 */
36
+	const email_question_id = 3;
37 37
 
38 38
 
39
-    /**
40
-     * @deprecated
41
-     */
42
-    const address_question_id = 4;
39
+	/**
40
+	 * @deprecated
41
+	 */
42
+	const address_question_id = 4;
43 43
 
44 44
 
45
-    /**
46
-     * @deprecated
47
-     */
48
-    const address2_question_id = 5;
49
-
50
-
51
-    /**
52
-     * @deprecated
53
-     */
54
-    const city_question_id = 6;
55
-
56
-
57
-    /**
58
-     * @deprecated
59
-     */
60
-    const state_question_id = 7;
61
-
62
-
63
-    /**
64
-     * @deprecated
65
-     */
66
-    const country_question_id = 8;
67
-
68
-
69
-    /**
70
-     * @deprecated
71
-     */
72
-    const zip_question_id = 9;
73
-
74
-
75
-    /**
76
-     * @deprecated
77
-     */
78
-    const phone_question_id = 10;
79
-
80
-    /**
81
-     * When looking for questions that correspond to attendee fields,
82
-     * look for the question with this QST_system value.
83
-     * These replace the old constants like EEM_Attendee::*_question_id
84
-     */
85
-    const system_question_fname = 'fname';
86
-
87
-    const system_question_lname = 'lname';
88
-
89
-    const system_question_email = 'email';
90
-
91
-    const system_question_address = 'address';
92
-
93
-    const system_question_address2 = 'address2';
94
-
95
-    const system_question_city = 'city';
96
-
97
-    const system_question_state = 'state';
98
-
99
-    const system_question_country = 'country';
100
-
101
-    const system_question_zip = 'zip';
102
-
103
-    const system_question_phone = 'phone';
104
-
105
-    /**
106
-     * Keys are all the EEM_Attendee::system_question_* constants, which are
107
-     * also all the values of QST_system in the questions table, and values
108
-     * are their corresponding Attendee field names
109
-     *
110
-     * @var array
111
-     */
112
-    protected $_system_question_to_attendee_field_name = array(
113
-        EEM_Attendee::system_question_fname    => 'ATT_fname',
114
-        EEM_Attendee::system_question_lname    => 'ATT_lname',
115
-        EEM_Attendee::system_question_email    => 'ATT_email',
116
-        EEM_Attendee::system_question_address  => 'ATT_address',
117
-        EEM_Attendee::system_question_address2 => 'ATT_address2',
118
-        EEM_Attendee::system_question_city     => 'ATT_city',
119
-        EEM_Attendee::system_question_state    => 'STA_ID',
120
-        EEM_Attendee::system_question_country  => 'CNT_ISO',
121
-        EEM_Attendee::system_question_zip      => 'ATT_zip',
122
-        EEM_Attendee::system_question_phone    => 'ATT_phone',
123
-    );
124
-
125
-
126
-
127
-    /**
128
-     * EEM_Attendee constructor.
129
-     *
130
-     * @param null              $timezone
131
-     * @param ModelFieldFactory $model_field_factory
132
-     * @throws EE_Error
133
-     * @throws InvalidArgumentException
134
-     */
135
-    protected function __construct($timezone = null, ModelFieldFactory $model_field_factory)
136
-    {
137
-        $this->singular_item = esc_html__('Attendee', 'event_espresso');
138
-        $this->plural_item = esc_html__('Attendees', 'event_espresso');
139
-        $this->_tables = array(
140
-            'Attendee_CPT'  => new EE_Primary_Table('posts', 'ID'),
141
-            'Attendee_Meta' => new EE_Secondary_Table(
142
-                'esp_attendee_meta',
143
-                'ATTM_ID',
144
-                'ATT_ID'
145
-            ),
146
-        );
147
-        $this->_fields = array(
148
-            'Attendee_CPT'  => array(
149
-                'ATT_ID'        => $model_field_factory->createPrimaryKeyIntField(
150
-                    'ID',
151
-                    esc_html__('Attendee ID', 'event_espresso')
152
-                ),
153
-                'ATT_full_name' => $model_field_factory->createPlainTextField(
154
-                    'post_title',
155
-                    esc_html__('Attendee Full Name', 'event_espresso'),
156
-                    false,
157
-                    esc_html__('Unknown', 'event_espresso')
158
-                ),
159
-                'ATT_bio'       => $model_field_factory->createPostContentField(
160
-                    'post_content',
161
-                    esc_html__('Attendee Biography', 'event_espresso'),
162
-                    false,
163
-                    esc_html__('No Biography Provided', 'event_espresso')
164
-                ),
165
-                'ATT_slug'      => $model_field_factory->createSlugField(
166
-                    'post_name',
167
-                    esc_html__('Attendee URL Slug', 'event_espresso')
168
-                ),
169
-                'ATT_created'   => $model_field_factory->createDatetimeField(
170
-                    'post_date',
171
-                    esc_html__('Time Attendee Created', 'event_espresso')
172
-                ),
173
-                'ATT_short_bio' => $model_field_factory->createSimpleHtmlField(
174
-                    'post_excerpt',
175
-                    esc_html__('Attendee Short Biography', 'event_espresso'),
176
-                    true,
177
-                    esc_html__('No Biography Provided', 'event_espresso')
178
-                ),
179
-                'ATT_modified'  => $model_field_factory->createDatetimeField(
180
-                    'post_modified',
181
-                    esc_html__('Time Attendee Last Modified', 'event_espresso')
182
-                ),
183
-                'ATT_author'    => $model_field_factory->createWpUserField(
184
-                    'post_author',
185
-                    esc_html__('Creator ID of the first Event attended', 'event_espresso'),
186
-                    false
187
-                ),
188
-                'ATT_parent'    => $model_field_factory->createDbOnlyIntField(
189
-                    'post_parent',
190
-                    esc_html__('Parent Attendee (unused)', 'event_espresso'),
191
-                    false,
192
-                    0
193
-                ),
194
-                'post_type'     => $model_field_factory->createWpPostTypeField('espresso_attendees'),
195
-                'status'        => $model_field_factory->createWpPostStatusField(
196
-                    'post_status',
197
-                    esc_html__('Attendee Status', 'event_espresso'),
198
-                    false,
199
-                    'publish'
200
-                ),
201
-                'password' => new EE_Password_Field(
202
-                    'post_password',
203
-                    __('Password', 'event_espresso'),
204
-                    false,
205
-                    '',
206
-                    array(
207
-                        'ATT_bio',
208
-                        'ATT_short_bio',
209
-                        'ATT_address',
210
-                        'ATT_address2',
211
-                        'ATT_city',
212
-                        'STA_ID',
213
-                        'CNT_ISO',
214
-                        'ATT_zip',
215
-                        'ATT_email',
216
-                        'ATT_phone'
217
-                    )
218
-                )
219
-            ),
220
-            'Attendee_Meta' => array(
221
-                'ATTM_ID'      => $model_field_factory->createDbOnlyIntField(
222
-                    'ATTM_ID',
223
-                    esc_html__('Attendee Meta Row ID', 'event_espresso'),
224
-                    false
225
-                ),
226
-                'ATT_ID_fk'    => $model_field_factory->createDbOnlyIntField(
227
-                    'ATT_ID',
228
-                    esc_html__('Foreign Key to Attendee in Post Table', 'event_espresso'),
229
-                    false
230
-                ),
231
-                'ATT_fname'    => $model_field_factory->createPlainTextField(
232
-                    'ATT_fname',
233
-                    esc_html__('First Name', 'event_espresso')
234
-                ),
235
-                'ATT_lname'    => $model_field_factory->createPlainTextField(
236
-                    'ATT_lname',
237
-                    esc_html__('Last Name', 'event_espresso')
238
-                ),
239
-                'ATT_address'  => $model_field_factory->createPlainTextField(
240
-                    'ATT_address',
241
-                    esc_html__('Address Part 1', 'event_espresso')
242
-                ),
243
-                'ATT_address2' => $model_field_factory->createPlainTextField(
244
-                    'ATT_address2',
245
-                    esc_html__('Address Part 2', 'event_espresso')
246
-                ),
247
-                'ATT_city'     => $model_field_factory->createPlainTextField(
248
-                    'ATT_city',
249
-                    esc_html__('City', 'event_espresso')
250
-                ),
251
-                'STA_ID'       => $model_field_factory->createForeignKeyIntField(
252
-                    'STA_ID',
253
-                    esc_html__('State', 'event_espresso'),
254
-                    true,
255
-                    0,
256
-                    'State'
257
-                ),
258
-                'CNT_ISO'      => $model_field_factory->createForeignKeyStringField(
259
-                    'CNT_ISO',
260
-                    esc_html__('Country', 'event_espresso'),
261
-                    true,
262
-                    '',
263
-                    'Country'
264
-                ),
265
-                'ATT_zip'      => $model_field_factory->createPlainTextField(
266
-                    'ATT_zip',
267
-                    esc_html__('ZIP/Postal Code', 'event_espresso')
268
-                ),
269
-                'ATT_email'    => $model_field_factory->createEmailField(
270
-                    'ATT_email',
271
-                    esc_html__('Email Address', 'event_espresso')
272
-                ),
273
-                'ATT_phone'    => $model_field_factory->createPlainTextField(
274
-                    'ATT_phone',
275
-                    esc_html__('Phone', 'event_espresso')
276
-                ),
277
-            ),
278
-        );
279
-        $this->_model_relations = array(
280
-            'Registration'      => new EE_Has_Many_Relation(),
281
-            'State'             => new EE_Belongs_To_Relation(),
282
-            'Country'           => new EE_Belongs_To_Relation(),
283
-            'Event'             => new EE_HABTM_Relation('Registration', false),
284
-            'WP_User'           => new EE_Belongs_To_Relation(),
285
-            'Message'           => new EE_Has_Many_Any_Relation(false),
286
-            // allow deletion of attendees even if they have messages in the queue for them.
287
-            'Term_Relationship' => new EE_Has_Many_Relation(),
288
-            'Term_Taxonomy'     => new EE_HABTM_Relation('Term_Relationship'),
289
-        );
290
-        $this->_caps_slug = 'contacts';
291
-        $this->model_chain_to_password = '';
292
-        parent::__construct($timezone);
293
-    }
294
-
295
-
296
-
297
-    /**
298
-     * Gets the name of the field on the attendee model corresponding to the system question string
299
-     * which should be one of the keys from EEM_Attendee::_system_question_to_attendee_field_name
300
-     *
301
-     * @param string $system_question_string
302
-     * @return string|null if not found
303
-     */
304
-    public function get_attendee_field_for_system_question($system_question_string)
305
-    {
306
-        return isset($this->_system_question_to_attendee_field_name[ $system_question_string ])
307
-            ? $this->_system_question_to_attendee_field_name[ $system_question_string ]
308
-            : null;
309
-    }
310
-
311
-
312
-
313
-    /**
314
-     * Gets mapping from esp_question.QST_system values to their corresponding attendee field names
315
-     *
316
-     * @return array
317
-     */
318
-    public function system_question_to_attendee_field_mapping()
319
-    {
320
-        return $this->_system_question_to_attendee_field_name;
321
-    }
322
-
323
-
324
-
325
-    /**
326
-     * Gets all the attendees for a transaction (by using the esp_registration as a join table)
327
-     *
328
-     * @param EE_Transaction /int $transaction_id_or_obj EE_Transaction or its ID
329
-     * @return EE_Attendee[]|EE_Base_Class[]
330
-     * @throws EE_Error
331
-     */
332
-    public function get_attendees_for_transaction($transaction_id_or_obj)
333
-    {
334
-        return $this->get_all(
335
-            array(
336
-                array(
337
-                    'Registration.Transaction.TXN_ID' => $transaction_id_or_obj instanceof EE_Transaction
338
-                        ? $transaction_id_or_obj->ID()
339
-                        : $transaction_id_or_obj,
340
-                ),
341
-            )
342
-        );
343
-    }
344
-
345
-
346
-
347
-    /**
348
-     * retrieve  a single attendee from db via their ID
349
-     *
350
-     * @param $ATT_ID
351
-     * @return mixed array on success, FALSE on fail
352
-     * @deprecated
353
-     */
354
-    public function get_attendee_by_ID($ATT_ID = false)
355
-    {
356
-        // retrieve a particular EE_Attendee
357
-        return $this->get_one_by_ID($ATT_ID);
358
-    }
359
-
360
-
361
-
362
-    /**
363
-     * retrieve  a single attendee from db via their ID
364
-     *
365
-     * @param array $where_cols_n_values
366
-     * @return mixed array on success, FALSE on fail
367
-     * @throws EE_Error
368
-     */
369
-    public function get_attendee($where_cols_n_values = array())
370
-    {
371
-        if (empty($where_cols_n_values)) {
372
-            return false;
373
-        }
374
-        $attendee = $this->get_all(array($where_cols_n_values));
375
-        if (! empty($attendee)) {
376
-            return array_shift($attendee);
377
-        }
378
-        return false;
379
-    }
380
-
381
-
382
-
383
-    /**
384
-     * Search for an existing Attendee record in the DB
385
-     *
386
-     * @param array $where_cols_n_values
387
-     * @return bool|mixed
388
-     * @throws EE_Error
389
-     */
390
-    public function find_existing_attendee($where_cols_n_values = null)
391
-    {
392
-        // search by combo of first and last names plus the email address
393
-        $attendee_data_keys = array(
394
-            'ATT_fname' => $this->_ATT_fname,
395
-            'ATT_lname' => $this->_ATT_lname,
396
-            'ATT_email' => $this->_ATT_email,
397
-        );
398
-        // no search params means attendee object already exists.
399
-        $where_cols_n_values = is_array($where_cols_n_values) && ! empty($where_cols_n_values)
400
-            ? $where_cols_n_values
401
-            : $attendee_data_keys;
402
-        $valid_data = true;
403
-        // check for required values
404
-        $valid_data = isset($where_cols_n_values['ATT_fname']) && ! empty($where_cols_n_values['ATT_fname'])
405
-            ? $valid_data
406
-            : false;
407
-        $valid_data = isset($where_cols_n_values['ATT_lname']) && ! empty($where_cols_n_values['ATT_lname'])
408
-            ? $valid_data
409
-            : false;
410
-        $valid_data = isset($where_cols_n_values['ATT_email']) && ! empty($where_cols_n_values['ATT_email'])
411
-            ? $valid_data
412
-            : false;
413
-        if ($valid_data) {
414
-            $attendee = $this->get_attendee($where_cols_n_values);
415
-            if ($attendee instanceof EE_Attendee) {
416
-                return $attendee;
417
-            }
418
-        }
419
-        return false;
420
-    }
421
-
422
-
423
-
424
-    /**
425
-     * Takes an incoming array of EE_Registration ids
426
-     * and sends back a list of corresponding non duplicate EE_Attendee objects.
427
-     *
428
-     * @since  4.3.0
429
-     * @param  array $ids array of EE_Registration ids
430
-     * @return EE_Attendee[]|EE_Base_Class[]
431
-     * @throws EE_Error
432
-     */
433
-    public function get_array_of_contacts_from_reg_ids($ids)
434
-    {
435
-        $ids = (array) $ids;
436
-        $_where = array(
437
-            'Registration.REG_ID' => array('in', $ids),
438
-        );
439
-        return $this->get_all(array($_where));
440
-    }
45
+	/**
46
+	 * @deprecated
47
+	 */
48
+	const address2_question_id = 5;
49
+
50
+
51
+	/**
52
+	 * @deprecated
53
+	 */
54
+	const city_question_id = 6;
55
+
56
+
57
+	/**
58
+	 * @deprecated
59
+	 */
60
+	const state_question_id = 7;
61
+
62
+
63
+	/**
64
+	 * @deprecated
65
+	 */
66
+	const country_question_id = 8;
67
+
68
+
69
+	/**
70
+	 * @deprecated
71
+	 */
72
+	const zip_question_id = 9;
73
+
74
+
75
+	/**
76
+	 * @deprecated
77
+	 */
78
+	const phone_question_id = 10;
79
+
80
+	/**
81
+	 * When looking for questions that correspond to attendee fields,
82
+	 * look for the question with this QST_system value.
83
+	 * These replace the old constants like EEM_Attendee::*_question_id
84
+	 */
85
+	const system_question_fname = 'fname';
86
+
87
+	const system_question_lname = 'lname';
88
+
89
+	const system_question_email = 'email';
90
+
91
+	const system_question_address = 'address';
92
+
93
+	const system_question_address2 = 'address2';
94
+
95
+	const system_question_city = 'city';
96
+
97
+	const system_question_state = 'state';
98
+
99
+	const system_question_country = 'country';
100
+
101
+	const system_question_zip = 'zip';
102
+
103
+	const system_question_phone = 'phone';
104
+
105
+	/**
106
+	 * Keys are all the EEM_Attendee::system_question_* constants, which are
107
+	 * also all the values of QST_system in the questions table, and values
108
+	 * are their corresponding Attendee field names
109
+	 *
110
+	 * @var array
111
+	 */
112
+	protected $_system_question_to_attendee_field_name = array(
113
+		EEM_Attendee::system_question_fname    => 'ATT_fname',
114
+		EEM_Attendee::system_question_lname    => 'ATT_lname',
115
+		EEM_Attendee::system_question_email    => 'ATT_email',
116
+		EEM_Attendee::system_question_address  => 'ATT_address',
117
+		EEM_Attendee::system_question_address2 => 'ATT_address2',
118
+		EEM_Attendee::system_question_city     => 'ATT_city',
119
+		EEM_Attendee::system_question_state    => 'STA_ID',
120
+		EEM_Attendee::system_question_country  => 'CNT_ISO',
121
+		EEM_Attendee::system_question_zip      => 'ATT_zip',
122
+		EEM_Attendee::system_question_phone    => 'ATT_phone',
123
+	);
124
+
125
+
126
+
127
+	/**
128
+	 * EEM_Attendee constructor.
129
+	 *
130
+	 * @param null              $timezone
131
+	 * @param ModelFieldFactory $model_field_factory
132
+	 * @throws EE_Error
133
+	 * @throws InvalidArgumentException
134
+	 */
135
+	protected function __construct($timezone = null, ModelFieldFactory $model_field_factory)
136
+	{
137
+		$this->singular_item = esc_html__('Attendee', 'event_espresso');
138
+		$this->plural_item = esc_html__('Attendees', 'event_espresso');
139
+		$this->_tables = array(
140
+			'Attendee_CPT'  => new EE_Primary_Table('posts', 'ID'),
141
+			'Attendee_Meta' => new EE_Secondary_Table(
142
+				'esp_attendee_meta',
143
+				'ATTM_ID',
144
+				'ATT_ID'
145
+			),
146
+		);
147
+		$this->_fields = array(
148
+			'Attendee_CPT'  => array(
149
+				'ATT_ID'        => $model_field_factory->createPrimaryKeyIntField(
150
+					'ID',
151
+					esc_html__('Attendee ID', 'event_espresso')
152
+				),
153
+				'ATT_full_name' => $model_field_factory->createPlainTextField(
154
+					'post_title',
155
+					esc_html__('Attendee Full Name', 'event_espresso'),
156
+					false,
157
+					esc_html__('Unknown', 'event_espresso')
158
+				),
159
+				'ATT_bio'       => $model_field_factory->createPostContentField(
160
+					'post_content',
161
+					esc_html__('Attendee Biography', 'event_espresso'),
162
+					false,
163
+					esc_html__('No Biography Provided', 'event_espresso')
164
+				),
165
+				'ATT_slug'      => $model_field_factory->createSlugField(
166
+					'post_name',
167
+					esc_html__('Attendee URL Slug', 'event_espresso')
168
+				),
169
+				'ATT_created'   => $model_field_factory->createDatetimeField(
170
+					'post_date',
171
+					esc_html__('Time Attendee Created', 'event_espresso')
172
+				),
173
+				'ATT_short_bio' => $model_field_factory->createSimpleHtmlField(
174
+					'post_excerpt',
175
+					esc_html__('Attendee Short Biography', 'event_espresso'),
176
+					true,
177
+					esc_html__('No Biography Provided', 'event_espresso')
178
+				),
179
+				'ATT_modified'  => $model_field_factory->createDatetimeField(
180
+					'post_modified',
181
+					esc_html__('Time Attendee Last Modified', 'event_espresso')
182
+				),
183
+				'ATT_author'    => $model_field_factory->createWpUserField(
184
+					'post_author',
185
+					esc_html__('Creator ID of the first Event attended', 'event_espresso'),
186
+					false
187
+				),
188
+				'ATT_parent'    => $model_field_factory->createDbOnlyIntField(
189
+					'post_parent',
190
+					esc_html__('Parent Attendee (unused)', 'event_espresso'),
191
+					false,
192
+					0
193
+				),
194
+				'post_type'     => $model_field_factory->createWpPostTypeField('espresso_attendees'),
195
+				'status'        => $model_field_factory->createWpPostStatusField(
196
+					'post_status',
197
+					esc_html__('Attendee Status', 'event_espresso'),
198
+					false,
199
+					'publish'
200
+				),
201
+				'password' => new EE_Password_Field(
202
+					'post_password',
203
+					__('Password', 'event_espresso'),
204
+					false,
205
+					'',
206
+					array(
207
+						'ATT_bio',
208
+						'ATT_short_bio',
209
+						'ATT_address',
210
+						'ATT_address2',
211
+						'ATT_city',
212
+						'STA_ID',
213
+						'CNT_ISO',
214
+						'ATT_zip',
215
+						'ATT_email',
216
+						'ATT_phone'
217
+					)
218
+				)
219
+			),
220
+			'Attendee_Meta' => array(
221
+				'ATTM_ID'      => $model_field_factory->createDbOnlyIntField(
222
+					'ATTM_ID',
223
+					esc_html__('Attendee Meta Row ID', 'event_espresso'),
224
+					false
225
+				),
226
+				'ATT_ID_fk'    => $model_field_factory->createDbOnlyIntField(
227
+					'ATT_ID',
228
+					esc_html__('Foreign Key to Attendee in Post Table', 'event_espresso'),
229
+					false
230
+				),
231
+				'ATT_fname'    => $model_field_factory->createPlainTextField(
232
+					'ATT_fname',
233
+					esc_html__('First Name', 'event_espresso')
234
+				),
235
+				'ATT_lname'    => $model_field_factory->createPlainTextField(
236
+					'ATT_lname',
237
+					esc_html__('Last Name', 'event_espresso')
238
+				),
239
+				'ATT_address'  => $model_field_factory->createPlainTextField(
240
+					'ATT_address',
241
+					esc_html__('Address Part 1', 'event_espresso')
242
+				),
243
+				'ATT_address2' => $model_field_factory->createPlainTextField(
244
+					'ATT_address2',
245
+					esc_html__('Address Part 2', 'event_espresso')
246
+				),
247
+				'ATT_city'     => $model_field_factory->createPlainTextField(
248
+					'ATT_city',
249
+					esc_html__('City', 'event_espresso')
250
+				),
251
+				'STA_ID'       => $model_field_factory->createForeignKeyIntField(
252
+					'STA_ID',
253
+					esc_html__('State', 'event_espresso'),
254
+					true,
255
+					0,
256
+					'State'
257
+				),
258
+				'CNT_ISO'      => $model_field_factory->createForeignKeyStringField(
259
+					'CNT_ISO',
260
+					esc_html__('Country', 'event_espresso'),
261
+					true,
262
+					'',
263
+					'Country'
264
+				),
265
+				'ATT_zip'      => $model_field_factory->createPlainTextField(
266
+					'ATT_zip',
267
+					esc_html__('ZIP/Postal Code', 'event_espresso')
268
+				),
269
+				'ATT_email'    => $model_field_factory->createEmailField(
270
+					'ATT_email',
271
+					esc_html__('Email Address', 'event_espresso')
272
+				),
273
+				'ATT_phone'    => $model_field_factory->createPlainTextField(
274
+					'ATT_phone',
275
+					esc_html__('Phone', 'event_espresso')
276
+				),
277
+			),
278
+		);
279
+		$this->_model_relations = array(
280
+			'Registration'      => new EE_Has_Many_Relation(),
281
+			'State'             => new EE_Belongs_To_Relation(),
282
+			'Country'           => new EE_Belongs_To_Relation(),
283
+			'Event'             => new EE_HABTM_Relation('Registration', false),
284
+			'WP_User'           => new EE_Belongs_To_Relation(),
285
+			'Message'           => new EE_Has_Many_Any_Relation(false),
286
+			// allow deletion of attendees even if they have messages in the queue for them.
287
+			'Term_Relationship' => new EE_Has_Many_Relation(),
288
+			'Term_Taxonomy'     => new EE_HABTM_Relation('Term_Relationship'),
289
+		);
290
+		$this->_caps_slug = 'contacts';
291
+		$this->model_chain_to_password = '';
292
+		parent::__construct($timezone);
293
+	}
294
+
295
+
296
+
297
+	/**
298
+	 * Gets the name of the field on the attendee model corresponding to the system question string
299
+	 * which should be one of the keys from EEM_Attendee::_system_question_to_attendee_field_name
300
+	 *
301
+	 * @param string $system_question_string
302
+	 * @return string|null if not found
303
+	 */
304
+	public function get_attendee_field_for_system_question($system_question_string)
305
+	{
306
+		return isset($this->_system_question_to_attendee_field_name[ $system_question_string ])
307
+			? $this->_system_question_to_attendee_field_name[ $system_question_string ]
308
+			: null;
309
+	}
310
+
311
+
312
+
313
+	/**
314
+	 * Gets mapping from esp_question.QST_system values to their corresponding attendee field names
315
+	 *
316
+	 * @return array
317
+	 */
318
+	public function system_question_to_attendee_field_mapping()
319
+	{
320
+		return $this->_system_question_to_attendee_field_name;
321
+	}
322
+
323
+
324
+
325
+	/**
326
+	 * Gets all the attendees for a transaction (by using the esp_registration as a join table)
327
+	 *
328
+	 * @param EE_Transaction /int $transaction_id_or_obj EE_Transaction or its ID
329
+	 * @return EE_Attendee[]|EE_Base_Class[]
330
+	 * @throws EE_Error
331
+	 */
332
+	public function get_attendees_for_transaction($transaction_id_or_obj)
333
+	{
334
+		return $this->get_all(
335
+			array(
336
+				array(
337
+					'Registration.Transaction.TXN_ID' => $transaction_id_or_obj instanceof EE_Transaction
338
+						? $transaction_id_or_obj->ID()
339
+						: $transaction_id_or_obj,
340
+				),
341
+			)
342
+		);
343
+	}
344
+
345
+
346
+
347
+	/**
348
+	 * retrieve  a single attendee from db via their ID
349
+	 *
350
+	 * @param $ATT_ID
351
+	 * @return mixed array on success, FALSE on fail
352
+	 * @deprecated
353
+	 */
354
+	public function get_attendee_by_ID($ATT_ID = false)
355
+	{
356
+		// retrieve a particular EE_Attendee
357
+		return $this->get_one_by_ID($ATT_ID);
358
+	}
359
+
360
+
361
+
362
+	/**
363
+	 * retrieve  a single attendee from db via their ID
364
+	 *
365
+	 * @param array $where_cols_n_values
366
+	 * @return mixed array on success, FALSE on fail
367
+	 * @throws EE_Error
368
+	 */
369
+	public function get_attendee($where_cols_n_values = array())
370
+	{
371
+		if (empty($where_cols_n_values)) {
372
+			return false;
373
+		}
374
+		$attendee = $this->get_all(array($where_cols_n_values));
375
+		if (! empty($attendee)) {
376
+			return array_shift($attendee);
377
+		}
378
+		return false;
379
+	}
380
+
381
+
382
+
383
+	/**
384
+	 * Search for an existing Attendee record in the DB
385
+	 *
386
+	 * @param array $where_cols_n_values
387
+	 * @return bool|mixed
388
+	 * @throws EE_Error
389
+	 */
390
+	public function find_existing_attendee($where_cols_n_values = null)
391
+	{
392
+		// search by combo of first and last names plus the email address
393
+		$attendee_data_keys = array(
394
+			'ATT_fname' => $this->_ATT_fname,
395
+			'ATT_lname' => $this->_ATT_lname,
396
+			'ATT_email' => $this->_ATT_email,
397
+		);
398
+		// no search params means attendee object already exists.
399
+		$where_cols_n_values = is_array($where_cols_n_values) && ! empty($where_cols_n_values)
400
+			? $where_cols_n_values
401
+			: $attendee_data_keys;
402
+		$valid_data = true;
403
+		// check for required values
404
+		$valid_data = isset($where_cols_n_values['ATT_fname']) && ! empty($where_cols_n_values['ATT_fname'])
405
+			? $valid_data
406
+			: false;
407
+		$valid_data = isset($where_cols_n_values['ATT_lname']) && ! empty($where_cols_n_values['ATT_lname'])
408
+			? $valid_data
409
+			: false;
410
+		$valid_data = isset($where_cols_n_values['ATT_email']) && ! empty($where_cols_n_values['ATT_email'])
411
+			? $valid_data
412
+			: false;
413
+		if ($valid_data) {
414
+			$attendee = $this->get_attendee($where_cols_n_values);
415
+			if ($attendee instanceof EE_Attendee) {
416
+				return $attendee;
417
+			}
418
+		}
419
+		return false;
420
+	}
421
+
422
+
423
+
424
+	/**
425
+	 * Takes an incoming array of EE_Registration ids
426
+	 * and sends back a list of corresponding non duplicate EE_Attendee objects.
427
+	 *
428
+	 * @since  4.3.0
429
+	 * @param  array $ids array of EE_Registration ids
430
+	 * @return EE_Attendee[]|EE_Base_Class[]
431
+	 * @throws EE_Error
432
+	 */
433
+	public function get_array_of_contacts_from_reg_ids($ids)
434
+	{
435
+		$ids = (array) $ids;
436
+		$_where = array(
437
+			'Registration.REG_ID' => array('in', $ids),
438
+		);
439
+		return $this->get_all(array($_where));
440
+	}
441 441
 }
Please login to merge, or discard this patch.
public/template_tags.php 2 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -206,7 +206,7 @@
 block discarded – undo
206 206
 	function espresso_ticket_selector( $event = NULL ) {
207 207
 		if (  ! apply_filters( 'FHEE_disable_espresso_ticket_selector', FALSE ) ) {
208 208
 			espresso_load_ticket_selector();
209
-            \EED_Ticket_Selector::set_definitions();
209
+			\EED_Ticket_Selector::set_definitions();
210 210
 			echo EED_Ticket_Selector::display_ticket_selector( $event );
211 211
 		}
212 212
 	}
Please login to merge, or discard this patch.
Spacing   +291 added lines, -291 removed lines patch added patch discarded remove patch
@@ -14,12 +14,12 @@  discard block
 block discarded – undo
14 14
  * @param int | \EE_Event $event
15 15
  * @return bool
16 16
  */
17
-function is_espresso_event( $event = NULL ) {
18
-	if ( can_use_espresso_conditionals( __FUNCTION__ )) {
17
+function is_espresso_event($event = NULL) {
18
+	if (can_use_espresso_conditionals(__FUNCTION__)) {
19 19
 		// extract EE_Event object from passed param regardless of what it is (within reason of course)
20
-		$event = EEH_Event_View::get_event( $event );
20
+		$event = EEH_Event_View::get_event($event);
21 21
 		// do we have a valid event ?
22
-		return $event instanceof EE_Event  ? TRUE : FALSE;
22
+		return $event instanceof EE_Event ? TRUE : FALSE;
23 23
 	}
24 24
 	return FALSE;
25 25
 }
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
  * @return bool
32 32
  */
33 33
 function is_espresso_event_single() {
34
-	if ( can_use_espresso_conditionals( __FUNCTION__ )) {
34
+	if (can_use_espresso_conditionals(__FUNCTION__)) {
35 35
 		global $wp_query;
36 36
 		// return conditionals set by CPTs
37 37
 		return $wp_query instanceof WP_Query ? $wp_query->is_espresso_event_single : FALSE;
@@ -46,7 +46,7 @@  discard block
 block discarded – undo
46 46
  * @return bool
47 47
  */
48 48
 function is_espresso_event_archive() {
49
-	if ( can_use_espresso_conditionals( __FUNCTION__ )) {
49
+	if (can_use_espresso_conditionals(__FUNCTION__)) {
50 50
 		global $wp_query;
51 51
 		return $wp_query instanceof WP_Query ? $wp_query->is_espresso_event_archive : FALSE;
52 52
 	}
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
  * @return bool
61 61
  */
62 62
 function is_espresso_event_taxonomy() {
63
-	if ( can_use_espresso_conditionals( __FUNCTION__ )) {
63
+	if (can_use_espresso_conditionals(__FUNCTION__)) {
64 64
 		global $wp_query;
65 65
 		return $wp_query instanceof WP_Query ? $wp_query->is_espresso_event_taxonomy : FALSE;
66 66
 	}
@@ -74,10 +74,10 @@  discard block
 block discarded – undo
74 74
  * @param int | \EE_Venue $venue
75 75
  * @return bool
76 76
  */
77
-function is_espresso_venue( $venue = NULL ) {
78
-	if ( can_use_espresso_conditionals( __FUNCTION__ )) {
77
+function is_espresso_venue($venue = NULL) {
78
+	if (can_use_espresso_conditionals(__FUNCTION__)) {
79 79
 		// extract EE_Venue object from passed param regardless of what it is (within reason of course)
80
-		$venue = EEH_Venue_View::get_venue( $venue, FALSE );
80
+		$venue = EEH_Venue_View::get_venue($venue, FALSE);
81 81
 		// do we have a valid event ?
82 82
 		return $venue instanceof EE_Venue ? TRUE : FALSE;
83 83
 	}
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
  * @return bool
92 92
  */
93 93
 function is_espresso_venue_single() {
94
-	if ( can_use_espresso_conditionals( __FUNCTION__ )) {
94
+	if (can_use_espresso_conditionals(__FUNCTION__)) {
95 95
 		global $wp_query;
96 96
 		return $wp_query instanceof WP_Query ? $wp_query->is_espresso_venue_single : FALSE;
97 97
 	}
@@ -105,7 +105,7 @@  discard block
 block discarded – undo
105 105
  * @return bool
106 106
  */
107 107
 function is_espresso_venue_archive() {
108
-	if ( can_use_espresso_conditionals( __FUNCTION__ )) {
108
+	if (can_use_espresso_conditionals(__FUNCTION__)) {
109 109
 		global $wp_query;
110 110
 		return $wp_query instanceof WP_Query ? $wp_query->is_espresso_venue_archive : FALSE;
111 111
 	}
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
  * @return bool
120 120
  */
121 121
 function is_espresso_venue_taxonomy() {
122
-	if ( can_use_espresso_conditionals( __FUNCTION__ )) {
122
+	if (can_use_espresso_conditionals(__FUNCTION__)) {
123 123
 		global $wp_query;
124 124
 		return $wp_query instanceof WP_Query ? $wp_query->is_espresso_venue_taxonomy : FALSE;
125 125
 	}
@@ -133,12 +133,12 @@  discard block
 block discarded – undo
133 133
  * @param $conditional_tag
134 134
  * @return bool
135 135
  */
136
-function can_use_espresso_conditionals( $conditional_tag ) {
137
-	if ( ! did_action( 'AHEE__EE_System__initialize' )) {
136
+function can_use_espresso_conditionals($conditional_tag) {
137
+	if ( ! did_action('AHEE__EE_System__initialize')) {
138 138
 		EE_Error::doing_it_wrong(
139 139
 			__FUNCTION__,
140 140
 			sprintf(
141
-				esc_html__( 'The "%s" conditional tag can not be used until after the "init" hook has run, but works best when used within a theme\'s template files.','event_espresso'),
141
+				esc_html__('The "%s" conditional tag can not be used until after the "init" hook has run, but works best when used within a theme\'s template files.', 'event_espresso'),
142 142
 				$conditional_tag
143 143
 			),
144 144
 			'4.4.0'
@@ -153,13 +153,13 @@  discard block
 block discarded – undo
153 153
 
154 154
 /*************************** Event Queries ***************************/
155 155
 
156
-if ( ! function_exists( 'espresso_get_events' )) {
156
+if ( ! function_exists('espresso_get_events')) {
157 157
 	/**
158 158
 	 * 	espresso_get_events
159 159
 	 * @param array $params
160 160
 	 * @return array
161 161
 	 */
162
-	function espresso_get_events( $params = array() ) {
162
+	function espresso_get_events($params = array()) {
163 163
 		//set default params
164 164
 		$default_espresso_events_params = array(
165 165
 			'limit' => 10,
@@ -170,18 +170,18 @@  discard block
 block discarded – undo
170 170
 			'sort' => 'ASC'
171 171
 		);
172 172
 		// allow the defaults to be filtered
173
-		$default_espresso_events_params = apply_filters( 'espresso_get_events__default_espresso_events_params', $default_espresso_events_params );
173
+		$default_espresso_events_params = apply_filters('espresso_get_events__default_espresso_events_params', $default_espresso_events_params);
174 174
 		// grab params and merge with defaults, then extract
175
-		$params = array_merge( $default_espresso_events_params, $params );
175
+		$params = array_merge($default_espresso_events_params, $params);
176 176
 		// run the query
177
-		$events_query = new EventEspresso\core\domain\services\wp_queries\EventListQuery( $params );
177
+		$events_query = new EventEspresso\core\domain\services\wp_queries\EventListQuery($params);
178 178
 		// assign results to a variable so we can return it
179 179
 		$events = $events_query->have_posts() ? $events_query->posts : array();
180 180
 		// but first reset the query and postdata
181 181
 		wp_reset_query();
182 182
 		wp_reset_postdata();
183 183
 		EED_Events_Archive::remove_all_events_archive_filters();
184
-		unset( $events_query );
184
+		unset($events_query);
185 185
 		return $events;
186 186
 	}
187 187
 }
@@ -195,33 +195,33 @@  discard block
 block discarded – undo
195 195
  * espresso_load_ticket_selector
196 196
  */
197 197
 function espresso_load_ticket_selector() {
198
-	EE_Registry::instance()->load_file( EE_MODULES . 'ticket_selector', 'EED_Ticket_Selector', 'module' );
198
+	EE_Registry::instance()->load_file(EE_MODULES.'ticket_selector', 'EED_Ticket_Selector', 'module');
199 199
 }
200 200
 
201
-if ( ! function_exists( 'espresso_ticket_selector' )) {
201
+if ( ! function_exists('espresso_ticket_selector')) {
202 202
 	/**
203 203
 	 * espresso_ticket_selector
204 204
 	 * @param null $event
205 205
 	 */
206
-	function espresso_ticket_selector( $event = NULL ) {
207
-		if (  ! apply_filters( 'FHEE_disable_espresso_ticket_selector', FALSE ) ) {
206
+	function espresso_ticket_selector($event = NULL) {
207
+		if ( ! apply_filters('FHEE_disable_espresso_ticket_selector', FALSE)) {
208 208
 			espresso_load_ticket_selector();
209 209
             \EED_Ticket_Selector::set_definitions();
210
-			echo EED_Ticket_Selector::display_ticket_selector( $event );
210
+			echo EED_Ticket_Selector::display_ticket_selector($event);
211 211
 		}
212 212
 	}
213 213
 }
214 214
 
215 215
 
216
-	if ( ! function_exists( 'espresso_view_details_btn' )) {
216
+	if ( ! function_exists('espresso_view_details_btn')) {
217 217
 	/**
218 218
 	 * espresso_view_details_btn
219 219
 	 * @param null $event
220 220
 	 */
221
-	function espresso_view_details_btn( $event = NULL ) {
222
-		if (  ! apply_filters( 'FHEE_disable_espresso_view_details_btn', FALSE ) ) {
221
+	function espresso_view_details_btn($event = NULL) {
222
+		if ( ! apply_filters('FHEE_disable_espresso_view_details_btn', FALSE)) {
223 223
 			espresso_load_ticket_selector();
224
-			echo EED_Ticket_Selector::display_ticket_selector( $event, TRUE );
224
+			echo EED_Ticket_Selector::display_ticket_selector($event, TRUE);
225 225
 		}
226 226
 	}
227 227
 }
@@ -231,7 +231,7 @@  discard block
 block discarded – undo
231 231
 
232 232
 /*************************** EEH_Event_View ***************************/
233 233
 
234
-if ( ! function_exists( 'espresso_load_event_list_assets' )) {
234
+if ( ! function_exists('espresso_load_event_list_assets')) {
235 235
 	/**
236 236
 	 * espresso_load_event_list_assets
237 237
 	 * ensures that event list styles and scripts are loaded
@@ -240,13 +240,13 @@  discard block
 block discarded – undo
240 240
 	 */
241 241
 	function espresso_load_event_list_assets() {
242 242
 		$event_list = EED_Events_Archive::instance();
243
-		add_action( 'AHEE__EE_System__initialize_last', array( $event_list, 'load_event_list_assets' ), 10 );
244
-		add_filter( 'FHEE_enable_default_espresso_css', '__return_true' );
243
+		add_action('AHEE__EE_System__initialize_last', array($event_list, 'load_event_list_assets'), 10);
244
+		add_filter('FHEE_enable_default_espresso_css', '__return_true');
245 245
 	}
246 246
 }
247 247
 
248 248
 
249
-if ( ! function_exists( 'espresso_event_reg_button' )) {
249
+if ( ! function_exists('espresso_event_reg_button')) {
250 250
 	/**
251 251
 	 * espresso_event_reg_button
252 252
 	 * returns the "Register Now" button if event is active,
@@ -258,13 +258,13 @@  discard block
 block discarded – undo
258 258
 	 * @param bool $EVT_ID
259 259
 	 * @return string
260 260
 	 */
261
-	function espresso_event_reg_button( $btn_text_if_active = NULL, $btn_text_if_inactive = FALSE, $EVT_ID = FALSE ) {
262
-		$event = EEH_Event_View::get_event( $EVT_ID );
263
-		if ( ! $event instanceof EE_Event ) {
261
+	function espresso_event_reg_button($btn_text_if_active = NULL, $btn_text_if_inactive = FALSE, $EVT_ID = FALSE) {
262
+		$event = EEH_Event_View::get_event($EVT_ID);
263
+		if ( ! $event instanceof EE_Event) {
264 264
 			return;
265 265
 		}
266 266
 		$event_status = $event->get_active_status();
267
-		switch ( $event_status ) {
267
+		switch ($event_status) {
268 268
 			case EE_Datetime::sold_out :
269 269
 				$btn_text = esc_html__('Sold Out', 'event_espresso');
270 270
 				$class = 'ee-pink';
@@ -284,15 +284,15 @@  discard block
 block discarded – undo
284 284
 			case EE_Datetime::upcoming :
285 285
 			case EE_Datetime::active :
286 286
 			default :
287
-				$btn_text =! empty( $btn_text_if_active ) ? $btn_text_if_active : esc_html__( 'Register Now', 'event_espresso' );
287
+				$btn_text = ! empty($btn_text_if_active) ? $btn_text_if_active : esc_html__('Register Now', 'event_espresso');
288 288
 				$class = 'ee-green';
289 289
 		}
290
-		if ( $event_status < 1 && ! empty( $btn_text_if_inactive )) {
290
+		if ($event_status < 1 && ! empty($btn_text_if_inactive)) {
291 291
 			$btn_text = $btn_text_if_inactive;
292 292
 			$class = 'ee-grey';
293 293
 		}
294 294
 		?>
295
-		<a class="ee-button ee-register-button <?php echo $class; ?>" href="<?php espresso_event_link_url( $EVT_ID ); ?>"<?php echo \EED_Events_Archive::link_target(); ?>>
295
+		<a class="ee-button ee-register-button <?php echo $class; ?>" href="<?php espresso_event_link_url($EVT_ID); ?>"<?php echo \EED_Events_Archive::link_target(); ?>>
296 296
 			<?php echo $btn_text; ?>
297 297
 		</a>
298 298
 	<?php
@@ -301,7 +301,7 @@  discard block
 block discarded – undo
301 301
 
302 302
 
303 303
 
304
-if ( ! function_exists( 'espresso_display_ticket_selector' )) {
304
+if ( ! function_exists('espresso_display_ticket_selector')) {
305 305
 	/**
306 306
 	 * espresso_display_ticket_selector
307 307
 	 * whether or not to display the Ticket Selector for an event
@@ -309,14 +309,14 @@  discard block
 block discarded – undo
309 309
 	 * @param bool $EVT_ID
310 310
 	 * @return boolean
311 311
 	 */
312
-	function espresso_display_ticket_selector( $EVT_ID = FALSE ) {
313
-		return EEH_Event_View::display_ticket_selector( $EVT_ID );
312
+	function espresso_display_ticket_selector($EVT_ID = FALSE) {
313
+		return EEH_Event_View::display_ticket_selector($EVT_ID);
314 314
 	}
315 315
 }
316 316
 
317 317
 
318 318
 
319
-if ( ! function_exists( 'espresso_event_status_banner' )) {
319
+if ( ! function_exists('espresso_event_status_banner')) {
320 320
 	/**
321 321
 	 * espresso_event_status
322 322
 	 * returns a banner showing the event status if it is sold out, expired, or inactive
@@ -324,13 +324,13 @@  discard block
 block discarded – undo
324 324
 	 * @param bool $EVT_ID
325 325
 	 * @return string
326 326
 	 */
327
-	function espresso_event_status_banner( $EVT_ID = FALSE ) {
328
-		return EEH_Event_View::event_status( $EVT_ID );
327
+	function espresso_event_status_banner($EVT_ID = FALSE) {
328
+		return EEH_Event_View::event_status($EVT_ID);
329 329
 	}
330 330
 }
331 331
 
332 332
 
333
-if ( ! function_exists( 'espresso_event_status' )) {
333
+if ( ! function_exists('espresso_event_status')) {
334 334
 	/**
335 335
 	 * espresso_event_status
336 336
 	 * returns the event status if it is sold out, expired, or inactive
@@ -339,13 +339,13 @@  discard block
 block discarded – undo
339 339
 	 * @param bool $echo
340 340
 	 * @return string
341 341
 	 */
342
-	function espresso_event_status( $EVT_ID = 0, $echo = TRUE ) {
343
-		return EEH_Event_View::event_active_status( $EVT_ID, $echo );
342
+	function espresso_event_status($EVT_ID = 0, $echo = TRUE) {
343
+		return EEH_Event_View::event_active_status($EVT_ID, $echo);
344 344
 	}
345 345
 }
346 346
 
347 347
 
348
-if ( ! function_exists( 'espresso_event_categories' )) {
348
+if ( ! function_exists('espresso_event_categories')) {
349 349
 	/**
350 350
 	 * espresso_event_categories
351 351
 	 * returns the terms associated with an event
@@ -355,17 +355,17 @@  discard block
 block discarded – undo
355 355
 	 * @param bool $echo
356 356
 	 * @return string
357 357
 	 */
358
-	function espresso_event_categories( $EVT_ID = 0, $hide_uncategorized = TRUE, $echo = TRUE ) {
359
-		if ( $echo ) {
360
-			echo EEH_Event_View::event_categories( $EVT_ID, $hide_uncategorized );
358
+	function espresso_event_categories($EVT_ID = 0, $hide_uncategorized = TRUE, $echo = TRUE) {
359
+		if ($echo) {
360
+			echo EEH_Event_View::event_categories($EVT_ID, $hide_uncategorized);
361 361
 			return '';
362 362
 		}
363
-		return EEH_Event_View::event_categories( $EVT_ID, $hide_uncategorized );
363
+		return EEH_Event_View::event_categories($EVT_ID, $hide_uncategorized);
364 364
 	}
365 365
 }
366 366
 
367 367
 
368
-if ( ! function_exists( 'espresso_event_tickets_available' )) {
368
+if ( ! function_exists('espresso_event_tickets_available')) {
369 369
 	/**
370 370
 	 * espresso_event_tickets_available
371 371
 	 * returns the ticket types available for purchase for an event
@@ -375,26 +375,26 @@  discard block
 block discarded – undo
375 375
 	 * @param bool $format
376 376
 	 * @return string
377 377
 	 */
378
-	function espresso_event_tickets_available( $EVT_ID = 0, $echo = TRUE, $format = TRUE ) {
379
-		$tickets = EEH_Event_View::event_tickets_available( $EVT_ID );
380
-		if ( is_array( $tickets ) && ! empty( $tickets )) {
378
+	function espresso_event_tickets_available($EVT_ID = 0, $echo = TRUE, $format = TRUE) {
379
+		$tickets = EEH_Event_View::event_tickets_available($EVT_ID);
380
+		if (is_array($tickets) && ! empty($tickets)) {
381 381
 			// if formatting then $html will be a string, else it will be an array of ticket objects
382
-			$html = $format ? '<ul id="ee-event-tickets-ul-' . $EVT_ID . '" class="ee-event-tickets-ul">' : array();
383
-			foreach ( $tickets as $ticket ) {
384
-				if ( $ticket instanceof EE_Ticket ) {
385
-					if ( $format ) {
386
-						$html .= '<li id="ee-event-tickets-li-' . $ticket->ID() . '" class="ee-event-tickets-li">';
387
-						$html .= $ticket->name() . ' ' . EEH_Template::format_currency( $ticket->get_ticket_total_with_taxes() );
382
+			$html = $format ? '<ul id="ee-event-tickets-ul-'.$EVT_ID.'" class="ee-event-tickets-ul">' : array();
383
+			foreach ($tickets as $ticket) {
384
+				if ($ticket instanceof EE_Ticket) {
385
+					if ($format) {
386
+						$html .= '<li id="ee-event-tickets-li-'.$ticket->ID().'" class="ee-event-tickets-li">';
387
+						$html .= $ticket->name().' '.EEH_Template::format_currency($ticket->get_ticket_total_with_taxes());
388 388
 						$html .= '</li>';
389 389
 					} else {
390 390
 						$html[] = $ticket;
391 391
 					}
392 392
 				}
393 393
 			}
394
-			if ( $format ) {
394
+			if ($format) {
395 395
 				$html .= '</ul>';
396 396
 			}
397
-			if ( $echo && $format ) {
397
+			if ($echo && $format) {
398 398
 				echo $html;
399 399
 				return '';
400 400
 			}
@@ -404,7 +404,7 @@  discard block
 block discarded – undo
404 404
 	}
405 405
 }
406 406
 
407
-if ( ! function_exists( 'espresso_event_date_obj' )) {
407
+if ( ! function_exists('espresso_event_date_obj')) {
408 408
 	/**
409 409
 	 * espresso_event_date_obj
410 410
 	 * returns the primary date object for an event
@@ -412,13 +412,13 @@  discard block
 block discarded – undo
412 412
 	 * @param bool $EVT_ID
413 413
 	 * @return object
414 414
 	 */
415
-	function espresso_event_date_obj( $EVT_ID = FALSE ) {
416
-		return EEH_Event_View::get_primary_date_obj( $EVT_ID );
415
+	function espresso_event_date_obj($EVT_ID = FALSE) {
416
+		return EEH_Event_View::get_primary_date_obj($EVT_ID);
417 417
 	}
418 418
 }
419 419
 
420 420
 
421
-if ( ! function_exists( 'espresso_event_date' )) {
421
+if ( ! function_exists('espresso_event_date')) {
422 422
 	/**
423 423
 	 * espresso_event_date
424 424
 	 * returns the primary date for an event
@@ -429,22 +429,22 @@  discard block
 block discarded – undo
429 429
 	 * @param bool $echo
430 430
 	 * @return string
431 431
 	 */
432
-	function espresso_event_date( $date_format = '', $time_format = '', $EVT_ID = FALSE, $echo = TRUE ) {
433
-		$date_format = ! empty( $date_format ) ? $date_format : get_option( 'date_format' );
434
-		$time_format = ! empty( $time_format ) ? $time_format : get_option( 'time_format' );
435
-		$date_format = apply_filters( 'FHEE__espresso_event_date__date_format', $date_format );
436
-		$time_format = apply_filters( 'FHEE__espresso_event_date__time_format', $time_format );
437
-		if($echo){
438
-			echo EEH_Event_View::the_event_date( $date_format, $time_format, $EVT_ID );
432
+	function espresso_event_date($date_format = '', $time_format = '', $EVT_ID = FALSE, $echo = TRUE) {
433
+		$date_format = ! empty($date_format) ? $date_format : get_option('date_format');
434
+		$time_format = ! empty($time_format) ? $time_format : get_option('time_format');
435
+		$date_format = apply_filters('FHEE__espresso_event_date__date_format', $date_format);
436
+		$time_format = apply_filters('FHEE__espresso_event_date__time_format', $time_format);
437
+		if ($echo) {
438
+			echo EEH_Event_View::the_event_date($date_format, $time_format, $EVT_ID);
439 439
 			return '';
440 440
 		}
441
-		return EEH_Event_View::the_event_date( $date_format, $time_format, $EVT_ID );
441
+		return EEH_Event_View::the_event_date($date_format, $time_format, $EVT_ID);
442 442
 
443 443
 	}
444 444
 }
445 445
 
446 446
 
447
-if ( ! function_exists( 'espresso_list_of_event_dates' )) {
447
+if ( ! function_exists('espresso_list_of_event_dates')) {
448 448
 	/**
449 449
 	 * espresso_list_of_event_dates
450 450
 	 * returns a unordered list of dates for an event
@@ -459,40 +459,40 @@  discard block
 block discarded – undo
459 459
 	 * @param null   $limit
460 460
 	 * @return string
461 461
 	 */
462
-	function espresso_list_of_event_dates( $EVT_ID = 0, $date_format = '', $time_format = '', $echo = TRUE, $show_expired = NULL, $format = TRUE, $add_breaks = TRUE, $limit = NULL ) {
463
-		$date_format = ! empty( $date_format ) ? $date_format : get_option( 'date_format' );
464
-		$time_format = ! empty( $time_format ) ? $time_format : get_option( 'time_format' );
465
-		$date_format = apply_filters( 'FHEE__espresso_list_of_event_dates__date_format', $date_format );
466
-		$time_format = apply_filters( 'FHEE__espresso_list_of_event_dates__time_format', $time_format );
467
-		$datetimes = EEH_Event_View::get_all_date_obj( $EVT_ID, $show_expired, FALSE, $limit );
468
-		if ( ! $format ) {
469
-			return apply_filters( 'FHEE__espresso_list_of_event_dates__datetimes', $datetimes );
462
+	function espresso_list_of_event_dates($EVT_ID = 0, $date_format = '', $time_format = '', $echo = TRUE, $show_expired = NULL, $format = TRUE, $add_breaks = TRUE, $limit = NULL) {
463
+		$date_format = ! empty($date_format) ? $date_format : get_option('date_format');
464
+		$time_format = ! empty($time_format) ? $time_format : get_option('time_format');
465
+		$date_format = apply_filters('FHEE__espresso_list_of_event_dates__date_format', $date_format);
466
+		$time_format = apply_filters('FHEE__espresso_list_of_event_dates__time_format', $time_format);
467
+		$datetimes = EEH_Event_View::get_all_date_obj($EVT_ID, $show_expired, FALSE, $limit);
468
+		if ( ! $format) {
469
+			return apply_filters('FHEE__espresso_list_of_event_dates__datetimes', $datetimes);
470 470
 		}
471 471
 		//d( $datetimes );
472
-		if ( is_array( $datetimes ) && ! empty( $datetimes )) {
472
+		if (is_array($datetimes) && ! empty($datetimes)) {
473 473
 			global $post;
474
-			$html = $format ? '<ul id="ee-event-datetimes-ul-' . $post->ID . '" class="ee-event-datetimes-ul ee-clearfix">' : '';
475
-			foreach ( $datetimes as $datetime ) {
476
-				if ( $datetime instanceof EE_Datetime ) {
477
-					$html .= '<li id="ee-event-datetimes-li-' . $datetime->ID();
478
-					$html .= '" class="ee-event-datetimes-li ee-event-datetimes-li-' . $datetime->get_active_status() . '">';
474
+			$html = $format ? '<ul id="ee-event-datetimes-ul-'.$post->ID.'" class="ee-event-datetimes-ul ee-clearfix">' : '';
475
+			foreach ($datetimes as $datetime) {
476
+				if ($datetime instanceof EE_Datetime) {
477
+					$html .= '<li id="ee-event-datetimes-li-'.$datetime->ID();
478
+					$html .= '" class="ee-event-datetimes-li ee-event-datetimes-li-'.$datetime->get_active_status().'">';
479 479
 					$datetime_name = $datetime->name();
480
-					$html .= ! empty( $datetime_name ) ? '<strong>' . $datetime_name . '</strong>' : '';
481
-					$html .= ! empty( $datetime_name )  && $add_breaks ? '<br />' : '';
482
-					$html .= '<span class="dashicons dashicons-calendar"></span><span class="ee-event-datetimes-li-daterange">' . $datetime->date_range( $date_format ) . '</span><br/>';
483
-					$html .= '<span class="dashicons dashicons-clock"></span><span class="ee-event-datetimes-li-timerange">' . $datetime->time_range( $time_format ) . '</span>';
480
+					$html .= ! empty($datetime_name) ? '<strong>'.$datetime_name.'</strong>' : '';
481
+					$html .= ! empty($datetime_name) && $add_breaks ? '<br />' : '';
482
+					$html .= '<span class="dashicons dashicons-calendar"></span><span class="ee-event-datetimes-li-daterange">'.$datetime->date_range($date_format).'</span><br/>';
483
+					$html .= '<span class="dashicons dashicons-clock"></span><span class="ee-event-datetimes-li-timerange">'.$datetime->time_range($time_format).'</span>';
484 484
 					$datetime_description = $datetime->description();
485
-					$html .= ! empty( $datetime_description )  && $add_breaks ? '<br />' : '';
486
-					$html .= ! empty( $datetime_description ) ? ' - ' . $datetime_description : '';
487
-					$html = apply_filters( 'FHEE__espresso_list_of_event_dates__datetime_html', $html, $datetime );
485
+					$html .= ! empty($datetime_description) && $add_breaks ? '<br />' : '';
486
+					$html .= ! empty($datetime_description) ? ' - '.$datetime_description : '';
487
+					$html = apply_filters('FHEE__espresso_list_of_event_dates__datetime_html', $html, $datetime);
488 488
 					$html .= '</li>';
489 489
 				}
490 490
 			}
491 491
 			$html .= $format ? '</ul>' : '';
492 492
 		} else {
493
-			$html = $format ?  '<p><span class="dashicons dashicons-marker pink-text"></span>' . esc_html__( 'There are no upcoming dates for this event.', 'event_espresso' ) . '</p><br/>' : '';
493
+			$html = $format ? '<p><span class="dashicons dashicons-marker pink-text"></span>'.esc_html__('There are no upcoming dates for this event.', 'event_espresso').'</p><br/>' : '';
494 494
 		}
495
-		if ( $echo ) {
495
+		if ($echo) {
496 496
 			echo $html;
497 497
 			return '';
498 498
 		}
@@ -501,7 +501,7 @@  discard block
 block discarded – undo
501 501
 }
502 502
 
503 503
 
504
-if ( ! function_exists( 'espresso_event_end_date' )) {
504
+if ( ! function_exists('espresso_event_end_date')) {
505 505
 	/**
506 506
 	 * espresso_event_end_date
507 507
 	 * returns the last date for an event
@@ -512,20 +512,20 @@  discard block
 block discarded – undo
512 512
 	 * @param bool   $echo
513 513
 	 * @return string
514 514
 	 */
515
-	function espresso_event_end_date( $date_format = '', $time_format = '', $EVT_ID = FALSE, $echo = TRUE ) {
516
-		$date_format = ! empty( $date_format ) ? $date_format : get_option( 'date_format' );
517
-		$time_format = ! empty( $time_format ) ? $time_format : get_option( 'time_format' );
518
-		$date_format = apply_filters( 'FHEE__espresso_event_end_date__date_format', $date_format );
519
-		$time_format = apply_filters( 'FHEE__espresso_event_end_date__time_format', $time_format );
520
-		if($echo){
521
-			echo EEH_Event_View::the_event_end_date( $date_format, $time_format, $EVT_ID );
515
+	function espresso_event_end_date($date_format = '', $time_format = '', $EVT_ID = FALSE, $echo = TRUE) {
516
+		$date_format = ! empty($date_format) ? $date_format : get_option('date_format');
517
+		$time_format = ! empty($time_format) ? $time_format : get_option('time_format');
518
+		$date_format = apply_filters('FHEE__espresso_event_end_date__date_format', $date_format);
519
+		$time_format = apply_filters('FHEE__espresso_event_end_date__time_format', $time_format);
520
+		if ($echo) {
521
+			echo EEH_Event_View::the_event_end_date($date_format, $time_format, $EVT_ID);
522 522
 			return '';
523 523
 		}
524
-		return EEH_Event_View::the_event_end_date( $date_format, $time_format, $EVT_ID );
524
+		return EEH_Event_View::the_event_end_date($date_format, $time_format, $EVT_ID);
525 525
 	}
526 526
 }
527 527
 
528
-if ( ! function_exists( 'espresso_event_date_range' )) {
528
+if ( ! function_exists('espresso_event_date_range')) {
529 529
 	/**
530 530
 	 * espresso_event_date_range
531 531
 	 * returns the first and last chronologically ordered dates for an event (if different)
@@ -538,32 +538,32 @@  discard block
 block discarded – undo
538 538
 	 * @param bool   $echo
539 539
 	 * @return string
540 540
 	 */
541
-	function espresso_event_date_range( $date_format = '', $time_format = '', $single_date_format = '', $single_time_format = '', $EVT_ID = FALSE, $echo = TRUE ) {
541
+	function espresso_event_date_range($date_format = '', $time_format = '', $single_date_format = '', $single_time_format = '', $EVT_ID = FALSE, $echo = TRUE) {
542 542
 		// set and filter date and time formats when a range is returned
543
-		$date_format = ! empty( $date_format ) ? $date_format : get_option( 'date_format' );
544
-		$date_format = apply_filters( 'FHEE__espresso_event_date_range__date_format', $date_format );
543
+		$date_format = ! empty($date_format) ? $date_format : get_option('date_format');
544
+		$date_format = apply_filters('FHEE__espresso_event_date_range__date_format', $date_format);
545 545
 		// get the start and end date with NO time portion
546
-		$the_event_date = EEH_Event_View::the_earliest_event_date( $date_format, '', $EVT_ID );
547
-		$the_event_end_date = EEH_Event_View::the_latest_event_date( $date_format, '', $EVT_ID );
546
+		$the_event_date = EEH_Event_View::the_earliest_event_date($date_format, '', $EVT_ID);
547
+		$the_event_end_date = EEH_Event_View::the_latest_event_date($date_format, '', $EVT_ID);
548 548
 		// now we can determine if date range spans more than one day
549
-		if ( $the_event_date != $the_event_end_date ) {
550
-			$time_format = ! empty( $time_format ) ? $time_format : get_option( 'time_format' );
551
-			$time_format = apply_filters( 'FHEE__espresso_event_date_range__time_format', $time_format );
549
+		if ($the_event_date != $the_event_end_date) {
550
+			$time_format = ! empty($time_format) ? $time_format : get_option('time_format');
551
+			$time_format = apply_filters('FHEE__espresso_event_date_range__time_format', $time_format);
552 552
 			$html = sprintf(
553 553
 				/* translators: 1: first event date, 2: last event date */
554
-				esc_html__( '%1$s - %2$s', 'event_espresso' ),
555
-				EEH_Event_View::the_earliest_event_date( $date_format, $time_format, $EVT_ID ),
556
-				EEH_Event_View::the_latest_event_date( $date_format, $time_format, $EVT_ID )
554
+				esc_html__('%1$s - %2$s', 'event_espresso'),
555
+				EEH_Event_View::the_earliest_event_date($date_format, $time_format, $EVT_ID),
556
+				EEH_Event_View::the_latest_event_date($date_format, $time_format, $EVT_ID)
557 557
 			);
558 558
 		} else {
559 559
 			// set and filter date and time formats when only a single datetime is returned
560
-			$single_date_format = ! empty( $single_date_format ) ? $single_date_format : get_option( 'date_format' );
561
-			$single_time_format = ! empty( $single_time_format ) ? $single_time_format : get_option( 'time_format' );
562
-			$single_date_format = apply_filters( 'FHEE__espresso_event_date_range__single_date_format', $single_date_format );
563
-			$single_time_format = apply_filters( 'FHEE__espresso_event_date_range__single_time_format', $single_time_format );
564
-			$html = EEH_Event_View::the_earliest_event_date( $single_date_format, $single_time_format, $EVT_ID );
560
+			$single_date_format = ! empty($single_date_format) ? $single_date_format : get_option('date_format');
561
+			$single_time_format = ! empty($single_time_format) ? $single_time_format : get_option('time_format');
562
+			$single_date_format = apply_filters('FHEE__espresso_event_date_range__single_date_format', $single_date_format);
563
+			$single_time_format = apply_filters('FHEE__espresso_event_date_range__single_time_format', $single_time_format);
564
+			$html = EEH_Event_View::the_earliest_event_date($single_date_format, $single_time_format, $EVT_ID);
565 565
 		}
566
-		if ( $echo ) {
566
+		if ($echo) {
567 567
 			echo $html;
568 568
 			return '';
569 569
 		}
@@ -571,7 +571,7 @@  discard block
 block discarded – undo
571 571
 	}
572 572
 }
573 573
 
574
-if ( ! function_exists( 'espresso_next_upcoming_datetime_obj' )) {
574
+if ( ! function_exists('espresso_next_upcoming_datetime_obj')) {
575 575
 	/**
576 576
 	 * espresso_next_upcoming_datetime_obj
577 577
 	 * returns the next upcoming datetime object for an event
@@ -579,12 +579,12 @@  discard block
 block discarded – undo
579 579
 	 * @param int $EVT_ID
580 580
 	 * @return EE_Datetime|null
581 581
 	 */
582
-	function espresso_next_upcoming_datetime_obj( $EVT_ID = 0 ) {
583
-		return EEH_Event_View::get_next_upcoming_date_obj( $EVT_ID );
582
+	function espresso_next_upcoming_datetime_obj($EVT_ID = 0) {
583
+		return EEH_Event_View::get_next_upcoming_date_obj($EVT_ID);
584 584
 	}
585 585
 }
586 586
 
587
-if ( ! function_exists( 'espresso_next_upcoming_datetime' ) ) {
587
+if ( ! function_exists('espresso_next_upcoming_datetime')) {
588 588
 	/**
589 589
 	 * espresso_next_upcoming_datetime
590 590
 	 * returns the start date and time for the next upcoming event.
@@ -595,30 +595,30 @@  discard block
 block discarded – undo
595 595
 	 * @param bool $echo
596 596
 	 * @return string
597 597
 	 */
598
-	function espresso_next_upcoming_datetime( $date_format = '', $time_format = '', $EVT_ID = 0, $echo = true ) {
598
+	function espresso_next_upcoming_datetime($date_format = '', $time_format = '', $EVT_ID = 0, $echo = true) {
599 599
 
600
-		$date_format = ! empty( $date_format ) ? $date_format : get_option( 'date_format' );
601
-		$date_format = apply_filters( 'FHEE__espresso_next_upcoming_datetime__date_format', $date_format );
600
+		$date_format = ! empty($date_format) ? $date_format : get_option('date_format');
601
+		$date_format = apply_filters('FHEE__espresso_next_upcoming_datetime__date_format', $date_format);
602 602
 
603
-		$time_format = ! empty( $time_format ) ? $time_format : get_option( 'time_format' );
604
-		$time_format = apply_filters( 'FHEE__espresso_next_upcoming_datetime__time_format', $time_format );
603
+		$time_format = ! empty($time_format) ? $time_format : get_option('time_format');
604
+		$time_format = apply_filters('FHEE__espresso_next_upcoming_datetime__time_format', $time_format);
605 605
 
606
-		$datetime_format = trim( $date_format . ' ' . $time_format);
606
+		$datetime_format = trim($date_format.' '.$time_format);
607 607
 
608
-		$datetime = espresso_next_upcoming_datetime_obj( $EVT_ID );
608
+		$datetime = espresso_next_upcoming_datetime_obj($EVT_ID);
609 609
 
610
-		if( ! $datetime instanceof EE_Datetime ) {
610
+		if ( ! $datetime instanceof EE_Datetime) {
611 611
 			return '';
612 612
 		}
613
-		if ( $echo ){
614
-			echo $datetime->get_i18n_datetime( 'DTT_EVT_start', $datetime_format );
613
+		if ($echo) {
614
+			echo $datetime->get_i18n_datetime('DTT_EVT_start', $datetime_format);
615 615
 			return '';
616 616
 		}
617
-		return $datetime->get_i18n_datetime( 'DTT_EVT_start', $datetime_format );
617
+		return $datetime->get_i18n_datetime('DTT_EVT_start', $datetime_format);
618 618
 	}
619 619
 }
620 620
 
621
-if ( ! function_exists( 'espresso_event_date_as_calendar_page' )) {
621
+if ( ! function_exists('espresso_event_date_as_calendar_page')) {
622 622
 	/**
623 623
 	 * espresso_event_date_as_calendar_page
624 624
 	 * returns the primary date for an event, stylized to appear as the page of a calendar
@@ -626,15 +626,15 @@  discard block
 block discarded – undo
626 626
 	 * @param bool $EVT_ID
627 627
 	 * @return string
628 628
 	 */
629
-	function espresso_event_date_as_calendar_page( $EVT_ID = FALSE ) {
630
-		EEH_Event_View::event_date_as_calendar_page( $EVT_ID );
629
+	function espresso_event_date_as_calendar_page($EVT_ID = FALSE) {
630
+		EEH_Event_View::event_date_as_calendar_page($EVT_ID);
631 631
 	}
632 632
 }
633 633
 
634 634
 
635 635
 
636 636
 
637
-if ( ! function_exists( 'espresso_event_link_url' )) {
637
+if ( ! function_exists('espresso_event_link_url')) {
638 638
 	/**
639 639
 	 * espresso_event_link_url
640 640
 	 *
@@ -642,18 +642,18 @@  discard block
 block discarded – undo
642 642
 	 * @param bool $echo
643 643
 	 * @return string
644 644
 	 */
645
-	function espresso_event_link_url( $EVT_ID = 0, $echo = TRUE ) {
646
-		if ( $echo ) {
647
-			echo EEH_Event_View::event_link_url( $EVT_ID );
645
+	function espresso_event_link_url($EVT_ID = 0, $echo = TRUE) {
646
+		if ($echo) {
647
+			echo EEH_Event_View::event_link_url($EVT_ID);
648 648
 			return '';
649 649
 		}
650
-		return EEH_Event_View::event_link_url( $EVT_ID );
650
+		return EEH_Event_View::event_link_url($EVT_ID);
651 651
 	}
652 652
 }
653 653
 
654 654
 
655 655
 
656
-if ( ! function_exists( 'espresso_event_has_content_or_excerpt' )) {
656
+if ( ! function_exists('espresso_event_has_content_or_excerpt')) {
657 657
 	/**
658 658
 	 *    espresso_event_has_content_or_excerpt
659 659
 	 *
@@ -661,15 +661,15 @@  discard block
 block discarded – undo
661 661
 	 * @param bool $EVT_ID
662 662
 	 * @return    boolean
663 663
 	 */
664
-	function espresso_event_has_content_or_excerpt( $EVT_ID = FALSE ) {
665
-		return EEH_Event_View::event_has_content_or_excerpt( $EVT_ID );
664
+	function espresso_event_has_content_or_excerpt($EVT_ID = FALSE) {
665
+		return EEH_Event_View::event_has_content_or_excerpt($EVT_ID);
666 666
 	}
667 667
 }
668 668
 
669 669
 
670 670
 
671 671
 
672
-if ( ! function_exists( 'espresso_event_content_or_excerpt' )) {
672
+if ( ! function_exists('espresso_event_content_or_excerpt')) {
673 673
 	/**
674 674
 	 * espresso_event_content_or_excerpt
675 675
 	 *
@@ -678,18 +678,18 @@  discard block
 block discarded – undo
678 678
 	 * @param bool $echo
679 679
 	 * @return string
680 680
 	 */
681
-	function espresso_event_content_or_excerpt( $num_words = 55, $more = NULL, $echo = TRUE ) {
682
-		if ( $echo ) {
683
-			echo EEH_Event_View::event_content_or_excerpt( $num_words, $more );
681
+	function espresso_event_content_or_excerpt($num_words = 55, $more = NULL, $echo = TRUE) {
682
+		if ($echo) {
683
+			echo EEH_Event_View::event_content_or_excerpt($num_words, $more);
684 684
 			return '';
685 685
 		}
686
-		return EEH_Event_View::event_content_or_excerpt( $num_words, $more );
686
+		return EEH_Event_View::event_content_or_excerpt($num_words, $more);
687 687
 	}
688 688
 }
689 689
 
690 690
 
691 691
 
692
-if ( ! function_exists( 'espresso_event_phone' )) {
692
+if ( ! function_exists('espresso_event_phone')) {
693 693
 	/**
694 694
 	 * espresso_event_phone
695 695
 	 *
@@ -697,18 +697,18 @@  discard block
 block discarded – undo
697 697
 	 * @param bool $echo
698 698
 	 * @return string
699 699
 	 */
700
-	function espresso_event_phone( $EVT_ID = 0, $echo = TRUE ) {
701
-		if ( $echo ) {
702
-			echo EEH_Event_View::event_phone( $EVT_ID );
700
+	function espresso_event_phone($EVT_ID = 0, $echo = TRUE) {
701
+		if ($echo) {
702
+			echo EEH_Event_View::event_phone($EVT_ID);
703 703
 			return '';
704 704
 		}
705
-		return EEH_Event_View::event_phone( $EVT_ID );
705
+		return EEH_Event_View::event_phone($EVT_ID);
706 706
 	}
707 707
 }
708 708
 
709 709
 
710 710
 
711
-if ( ! function_exists( 'espresso_edit_event_link' )) {
711
+if ( ! function_exists('espresso_edit_event_link')) {
712 712
 	/**
713 713
 	 * espresso_edit_event_link
714 714
 	 * returns a link to edit an event
@@ -717,39 +717,39 @@  discard block
 block discarded – undo
717 717
 	 * @param bool $echo
718 718
 	 * @return string
719 719
 	 */
720
-	function espresso_edit_event_link( $EVT_ID = 0, $echo = TRUE ) {
721
-		if ( $echo ) {
722
-			echo EEH_Event_View::edit_event_link( $EVT_ID );
720
+	function espresso_edit_event_link($EVT_ID = 0, $echo = TRUE) {
721
+		if ($echo) {
722
+			echo EEH_Event_View::edit_event_link($EVT_ID);
723 723
 			return '';
724 724
 		}
725
-		return EEH_Event_View::edit_event_link( $EVT_ID );
725
+		return EEH_Event_View::edit_event_link($EVT_ID);
726 726
 	}
727 727
 }
728 728
 
729 729
 
730
-if ( ! function_exists( 'espresso_organization_name' )) {
730
+if ( ! function_exists('espresso_organization_name')) {
731 731
 	/**
732 732
 	 * espresso_organization_name
733 733
 	 * @param bool $echo
734 734
 	 * @return string
735 735
 	 */
736 736
 	function espresso_organization_name($echo = TRUE) {
737
-		if($echo){
738
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'name' );
737
+		if ($echo) {
738
+			echo EE_Registry::instance()->CFG->organization->get_pretty('name');
739 739
 			return '';
740 740
 		}
741
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'name' );
741
+		return EE_Registry::instance()->CFG->organization->get_pretty('name');
742 742
 	}
743 743
 }
744 744
 
745
-if ( ! function_exists( 'espresso_organization_address' )) {
745
+if ( ! function_exists('espresso_organization_address')) {
746 746
 	/**
747 747
 	 * espresso_organization_address
748 748
 	 * @param string $type
749 749
 	 * @return string
750 750
 	 */
751
-	function espresso_organization_address( $type = 'inline' ) {
752
-		if ( EE_Registry::instance()->CFG->organization instanceof EE_Organization_Config ) {
751
+	function espresso_organization_address($type = 'inline') {
752
+		if (EE_Registry::instance()->CFG->organization instanceof EE_Organization_Config) {
753 753
 			$address = new EventEspresso\core\domain\entities\GenericAddress(
754 754
 				EE_Registry::instance()->CFG->organization->address_1,
755 755
 				EE_Registry::instance()->CFG->organization->address_2,
@@ -758,129 +758,129 @@  discard block
 block discarded – undo
758 758
 				EE_Registry::instance()->CFG->organization->zip,
759 759
 				EE_Registry::instance()->CFG->organization->CNT_ISO
760 760
 			);
761
-			return EEH_Address::format( $address, $type );
761
+			return EEH_Address::format($address, $type);
762 762
 		}
763 763
 		return '';
764 764
 	}
765 765
 }
766 766
 
767
-if ( ! function_exists( 'espresso_organization_email' )) {
767
+if ( ! function_exists('espresso_organization_email')) {
768 768
 	/**
769 769
 	 * espresso_organization_email
770 770
 	 * @param bool $echo
771 771
 	 * @return string
772 772
 	 */
773
-	function espresso_organization_email( $echo = TRUE ) {
774
-		if($echo){
775
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'email' );
773
+	function espresso_organization_email($echo = TRUE) {
774
+		if ($echo) {
775
+			echo EE_Registry::instance()->CFG->organization->get_pretty('email');
776 776
 			return '';
777 777
 		}
778
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'email' );
778
+		return EE_Registry::instance()->CFG->organization->get_pretty('email');
779 779
 	}
780 780
 }
781 781
 
782
-if ( ! function_exists( 'espresso_organization_logo_url' )) {
782
+if ( ! function_exists('espresso_organization_logo_url')) {
783 783
 	/**
784 784
 	 * espresso_organization_logo_url
785 785
 	 * @param bool $echo
786 786
 	 * @return string
787 787
 	 */
788
-	function espresso_organization_logo_url( $echo = TRUE ) {
789
-		if($echo){
790
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'logo_url' );
788
+	function espresso_organization_logo_url($echo = TRUE) {
789
+		if ($echo) {
790
+			echo EE_Registry::instance()->CFG->organization->get_pretty('logo_url');
791 791
 			return '';
792 792
 		}
793
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'logo_url' );
793
+		return EE_Registry::instance()->CFG->organization->get_pretty('logo_url');
794 794
 	}
795 795
 }
796 796
 
797
-if ( ! function_exists( 'espresso_organization_facebook' )) {
797
+if ( ! function_exists('espresso_organization_facebook')) {
798 798
 	/**
799 799
 	 * espresso_organization_facebook
800 800
 	 * @param bool $echo
801 801
 	 * @return string
802 802
 	 */
803
-	function espresso_organization_facebook( $echo = TRUE ) {
804
-		if($echo){
805
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'facebook' );
803
+	function espresso_organization_facebook($echo = TRUE) {
804
+		if ($echo) {
805
+			echo EE_Registry::instance()->CFG->organization->get_pretty('facebook');
806 806
 			return '';
807 807
 		}
808
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'facebook' );
808
+		return EE_Registry::instance()->CFG->organization->get_pretty('facebook');
809 809
 	}
810 810
 }
811 811
 
812
-if ( ! function_exists( 'espresso_organization_twitter' )) {
812
+if ( ! function_exists('espresso_organization_twitter')) {
813 813
 	/**
814 814
 	 * espresso_organization_twitter
815 815
 	 * @param bool $echo
816 816
 	 * @return string
817 817
 	 */
818
-	function espresso_organization_twitter( $echo = TRUE ) {
819
-		if($echo){
820
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'twitter' );
818
+	function espresso_organization_twitter($echo = TRUE) {
819
+		if ($echo) {
820
+			echo EE_Registry::instance()->CFG->organization->get_pretty('twitter');
821 821
 			return '';
822 822
 		}
823
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'twitter' );
823
+		return EE_Registry::instance()->CFG->organization->get_pretty('twitter');
824 824
 	}
825 825
 }
826 826
 
827
-if ( ! function_exists( 'espresso_organization_linkedin' )) {
827
+if ( ! function_exists('espresso_organization_linkedin')) {
828 828
 	/**
829 829
 	 * espresso_organization_linkedin
830 830
 	 * @param bool $echo
831 831
 	 * @return string
832 832
 	 */
833
-	function espresso_organization_linkedin( $echo = TRUE ) {
834
-		if($echo){
835
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'linkedin' );
833
+	function espresso_organization_linkedin($echo = TRUE) {
834
+		if ($echo) {
835
+			echo EE_Registry::instance()->CFG->organization->get_pretty('linkedin');
836 836
 			return '';
837 837
 		}
838
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'linkedin' );
838
+		return EE_Registry::instance()->CFG->organization->get_pretty('linkedin');
839 839
 	}
840 840
 }
841 841
 
842
-if ( ! function_exists( 'espresso_organization_pinterest' )) {
842
+if ( ! function_exists('espresso_organization_pinterest')) {
843 843
 	/**
844 844
 	 * espresso_organization_pinterest
845 845
 	 * @param bool $echo
846 846
 	 * @return string
847 847
 	 */
848
-	function espresso_organization_pinterest( $echo = TRUE ) {
849
-		if($echo){
850
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'pinterest' );
848
+	function espresso_organization_pinterest($echo = TRUE) {
849
+		if ($echo) {
850
+			echo EE_Registry::instance()->CFG->organization->get_pretty('pinterest');
851 851
 			return '';
852 852
 		}
853
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'pinterest' );
853
+		return EE_Registry::instance()->CFG->organization->get_pretty('pinterest');
854 854
 	}
855 855
 }
856 856
 
857
-if ( ! function_exists( 'espresso_organization_google' )) {
857
+if ( ! function_exists('espresso_organization_google')) {
858 858
 	/**
859 859
 	 * espresso_organization_google
860 860
 	 * @param bool $echo
861 861
 	 * @return string
862 862
 	 */
863
-	function espresso_organization_google( $echo = TRUE ) {
864
-		if($echo){
865
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'google' );
863
+	function espresso_organization_google($echo = TRUE) {
864
+		if ($echo) {
865
+			echo EE_Registry::instance()->CFG->organization->get_pretty('google');
866 866
 			return '';
867 867
 		}
868
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'google' );
868
+		return EE_Registry::instance()->CFG->organization->get_pretty('google');
869 869
 	}
870 870
 }
871 871
 
872
-if ( ! function_exists( 'espresso_organization_instagram' )) {
872
+if ( ! function_exists('espresso_organization_instagram')) {
873 873
 	/**
874 874
 	 * espresso_organization_instagram
875 875
 	 * @param bool $echo
876 876
 	 * @return string
877 877
 	 */
878
-	function espresso_organization_instagram( $echo = TRUE ) {
879
-		if($echo){
880
-			echo EE_Registry::instance()->CFG->organization->get_pretty( 'instagram' );
878
+	function espresso_organization_instagram($echo = TRUE) {
879
+		if ($echo) {
880
+			echo EE_Registry::instance()->CFG->organization->get_pretty('instagram');
881 881
 			return '';
882 882
 		}
883
-		return EE_Registry::instance()->CFG->organization->get_pretty( 'instagram' );
883
+		return EE_Registry::instance()->CFG->organization->get_pretty('instagram');
884 884
 	}
885 885
 }
886 886
 
@@ -890,7 +890,7 @@  discard block
 block discarded – undo
890 890
 
891 891
 
892 892
 
893
-if ( ! function_exists( 'espresso_event_venues' )) {
893
+if ( ! function_exists('espresso_event_venues')) {
894 894
 	/**
895 895
 	 * espresso_event_venues
896 896
 	 *
@@ -904,7 +904,7 @@  discard block
 block discarded – undo
904 904
 
905 905
 
906 906
 
907
-if ( ! function_exists( 'espresso_venue_id' )) {
907
+if ( ! function_exists('espresso_venue_id')) {
908 908
 	/**
909 909
 	 *    espresso_venue_name
910 910
 	 *
@@ -912,15 +912,15 @@  discard block
 block discarded – undo
912 912
 	 * @param     int $EVT_ID
913 913
 	 * @return    string
914 914
 	 */
915
-	function espresso_venue_id( $EVT_ID = 0 ) {
916
-		$venue = EEH_Venue_View::get_venue( $EVT_ID );
915
+	function espresso_venue_id($EVT_ID = 0) {
916
+		$venue = EEH_Venue_View::get_venue($EVT_ID);
917 917
 		return $venue instanceof EE_Venue ? $venue->ID() : 0;
918 918
 	}
919 919
 }
920 920
 
921 921
 
922 922
 
923
-if ( ! function_exists( 'espresso_is_venue_private' ) ) {
923
+if ( ! function_exists('espresso_is_venue_private')) {
924 924
 	/**
925 925
 	 * Return whether a venue is private or not.
926 926
 	 * @see EEH_Venue_View::get_venue() for more info on expected return results.
@@ -929,45 +929,45 @@  discard block
 block discarded – undo
929 929
 	 *
930 930
 	 * @return bool | null
931 931
 	 */
932
-	function espresso_is_venue_private( $VNU_ID = 0 ) {
933
-		return EEH_Venue_View::is_venue_private( $VNU_ID );
932
+	function espresso_is_venue_private($VNU_ID = 0) {
933
+		return EEH_Venue_View::is_venue_private($VNU_ID);
934 934
 	}
935 935
 }
936 936
 
937 937
 
938 938
 
939
-if ( ! function_exists( 'espresso_venue_is_password_protected' ) ) {
939
+if ( ! function_exists('espresso_venue_is_password_protected')) {
940 940
 	/**
941 941
 	 * returns true or false if a venue is password protected or not
942 942
 	 *
943 943
 	 * @param int     $VNU_ID optional, the venue id to check.
944 944
 	 * @return string
945 945
 	 */
946
-	function espresso_venue_is_password_protected( $VNU_ID = 0 ) {
947
-		EE_Registry::instance()->load_helper( 'Venue_View' );
948
-		return EEH_Venue_View::is_venue_password_protected( $VNU_ID );
946
+	function espresso_venue_is_password_protected($VNU_ID = 0) {
947
+		EE_Registry::instance()->load_helper('Venue_View');
948
+		return EEH_Venue_View::is_venue_password_protected($VNU_ID);
949 949
 	}
950 950
 }
951 951
 
952 952
 
953 953
 
954
-if ( ! function_exists( 'espresso_password_protected_venue_form' ) ) {
954
+if ( ! function_exists('espresso_password_protected_venue_form')) {
955 955
 	/**
956 956
 	 * Returns a password form if venue is password protected.
957 957
 	 *
958 958
 	 * @param int     $VNU_ID optional, the venue id to check.
959 959
 	 * @return string
960 960
 	 */
961
-	function espresso_password_protected_venue_form( $VNU_ID = 0 ) {
962
-		EE_Registry::instance()->load_helper( 'Venue_View' );
963
-		return EEH_Venue_View::password_protected_venue_form( $VNU_ID );
961
+	function espresso_password_protected_venue_form($VNU_ID = 0) {
962
+		EE_Registry::instance()->load_helper('Venue_View');
963
+		return EEH_Venue_View::password_protected_venue_form($VNU_ID);
964 964
 	}
965 965
 }
966 966
 
967 967
 
968 968
 
969 969
 
970
-if ( ! function_exists( 'espresso_venue_name' )) {
970
+if ( ! function_exists('espresso_venue_name')) {
971 971
 	/**
972 972
 	 *    espresso_venue_name
973 973
 	 *
@@ -977,19 +977,19 @@  discard block
 block discarded – undo
977 977
 	 * @param bool   $echo
978 978
 	 * @return    string
979 979
 	 */
980
-	function espresso_venue_name( $VNU_ID = 0, $link_to = 'details', $echo = TRUE ) {
981
-		if($echo){
982
-			echo EEH_Venue_View::venue_name( $link_to, $VNU_ID );
980
+	function espresso_venue_name($VNU_ID = 0, $link_to = 'details', $echo = TRUE) {
981
+		if ($echo) {
982
+			echo EEH_Venue_View::venue_name($link_to, $VNU_ID);
983 983
 			return '';
984 984
 		}
985
-		return EEH_Venue_View::venue_name( $link_to, $VNU_ID );
985
+		return EEH_Venue_View::venue_name($link_to, $VNU_ID);
986 986
 	}
987 987
 }
988 988
 
989 989
 
990 990
 
991 991
 
992
-if ( ! function_exists( 'espresso_venue_link' )) {
992
+if ( ! function_exists('espresso_venue_link')) {
993 993
 	/**
994 994
 	 * 	espresso_venue_link
995 995
 	 *
@@ -998,14 +998,14 @@  discard block
 block discarded – undo
998 998
 	 *  @param 	string 	$text
999 999
 	 *  @return 	string
1000 1000
 	 */
1001
-	function espresso_venue_link( $VNU_ID = 0, $text = '' ) {
1002
-		return EEH_Venue_View::venue_details_link( $VNU_ID, $text );
1001
+	function espresso_venue_link($VNU_ID = 0, $text = '') {
1002
+		return EEH_Venue_View::venue_details_link($VNU_ID, $text);
1003 1003
 	}
1004 1004
 }
1005 1005
 
1006 1006
 
1007 1007
 
1008
-if ( ! function_exists( 'espresso_venue_description' )) {
1008
+if ( ! function_exists('espresso_venue_description')) {
1009 1009
 	/**
1010 1010
 	 *    espresso_venue_description
1011 1011
 	 *
@@ -1014,17 +1014,17 @@  discard block
 block discarded – undo
1014 1014
 	 * @param bool $echo
1015 1015
 	 * @return    string
1016 1016
 	 */
1017
-	function espresso_venue_description( $VNU_ID = FALSE, $echo = TRUE ) {
1018
-		if($echo){
1019
-			echo EEH_Venue_View::venue_description( $VNU_ID );
1017
+	function espresso_venue_description($VNU_ID = FALSE, $echo = TRUE) {
1018
+		if ($echo) {
1019
+			echo EEH_Venue_View::venue_description($VNU_ID);
1020 1020
 			return '';
1021 1021
 		}
1022
-		return EEH_Venue_View::venue_description( $VNU_ID );
1022
+		return EEH_Venue_View::venue_description($VNU_ID);
1023 1023
 	}
1024 1024
 }
1025 1025
 
1026 1026
 
1027
-if ( ! function_exists( 'espresso_venue_excerpt' )) {
1027
+if ( ! function_exists('espresso_venue_excerpt')) {
1028 1028
 	/**
1029 1029
 	 *    espresso_venue_excerpt
1030 1030
 	 *
@@ -1033,18 +1033,18 @@  discard block
 block discarded – undo
1033 1033
 	 * @param bool $echo
1034 1034
 	 * @return    string
1035 1035
 	 */
1036
-	function espresso_venue_excerpt( $VNU_ID = 0,  $echo = TRUE ) {
1037
-		if ( $echo ) {
1038
-			echo EEH_Venue_View::venue_excerpt( $VNU_ID );
1036
+	function espresso_venue_excerpt($VNU_ID = 0, $echo = TRUE) {
1037
+		if ($echo) {
1038
+			echo EEH_Venue_View::venue_excerpt($VNU_ID);
1039 1039
 			return '';
1040 1040
 		}
1041
-		return EEH_Venue_View::venue_excerpt( $VNU_ID );
1041
+		return EEH_Venue_View::venue_excerpt($VNU_ID);
1042 1042
 	}
1043 1043
 }
1044 1044
 
1045 1045
 
1046 1046
 
1047
-if ( ! function_exists( 'espresso_venue_categories' )) {
1047
+if ( ! function_exists('espresso_venue_categories')) {
1048 1048
 	/**
1049 1049
 	 * espresso_venue_categories
1050 1050
 	 * returns the terms associated with a venue
@@ -1054,17 +1054,17 @@  discard block
 block discarded – undo
1054 1054
 	 * @param bool $echo
1055 1055
 	 * @return string
1056 1056
 	 */
1057
-	function espresso_venue_categories( $VNU_ID = 0, $hide_uncategorized = TRUE,  $echo = TRUE ) {
1058
-		if ( $echo ) {
1059
-			echo EEH_Venue_View::venue_categories( $VNU_ID, $hide_uncategorized );
1057
+	function espresso_venue_categories($VNU_ID = 0, $hide_uncategorized = TRUE, $echo = TRUE) {
1058
+		if ($echo) {
1059
+			echo EEH_Venue_View::venue_categories($VNU_ID, $hide_uncategorized);
1060 1060
 			return '';
1061 1061
 		}
1062
-		return EEH_Venue_View::venue_categories( $VNU_ID, $hide_uncategorized );
1062
+		return EEH_Venue_View::venue_categories($VNU_ID, $hide_uncategorized);
1063 1063
 	}
1064 1064
 }
1065 1065
 
1066 1066
 
1067
-if ( ! function_exists( 'espresso_venue_address' )) {
1067
+if ( ! function_exists('espresso_venue_address')) {
1068 1068
 	/**
1069 1069
 	 * espresso_venue_address
1070 1070
 	 * returns a formatted block of html  for displaying a venue's address
@@ -1074,17 +1074,17 @@  discard block
 block discarded – undo
1074 1074
 	 * @param bool   $echo
1075 1075
 	 * @return string
1076 1076
 	 */
1077
-	function espresso_venue_address( $type = 'multiline', $VNU_ID = 0, $echo = TRUE ) {
1078
-		if ( $echo ) {
1079
-			echo EEH_Venue_View::venue_address( $type, $VNU_ID );
1077
+	function espresso_venue_address($type = 'multiline', $VNU_ID = 0, $echo = TRUE) {
1078
+		if ($echo) {
1079
+			echo EEH_Venue_View::venue_address($type, $VNU_ID);
1080 1080
 			return '';
1081 1081
 		}
1082
-		return EEH_Venue_View::venue_address( $type, $VNU_ID );
1082
+		return EEH_Venue_View::venue_address($type, $VNU_ID);
1083 1083
 	}
1084 1084
 }
1085 1085
 
1086 1086
 
1087
-if ( ! function_exists( 'espresso_venue_raw_address' )) {
1087
+if ( ! function_exists('espresso_venue_raw_address')) {
1088 1088
 	/**
1089 1089
 	 * espresso_venue_address
1090 1090
 	 * returns an UN-formatted string containing a venue's address
@@ -1094,17 +1094,17 @@  discard block
 block discarded – undo
1094 1094
 	 * @param bool     $echo
1095 1095
 	 * @return string
1096 1096
 	 */
1097
-	function espresso_venue_raw_address( $type = 'multiline', $VNU_ID = 0, $echo = TRUE ) {
1098
-		if ( $echo ) {
1099
-			echo EEH_Venue_View::venue_address( $type, $VNU_ID, FALSE, FALSE );
1097
+	function espresso_venue_raw_address($type = 'multiline', $VNU_ID = 0, $echo = TRUE) {
1098
+		if ($echo) {
1099
+			echo EEH_Venue_View::venue_address($type, $VNU_ID, FALSE, FALSE);
1100 1100
 			return '';
1101 1101
 		}
1102
-		return EEH_Venue_View::venue_address( $type, $VNU_ID, FALSE, FALSE );
1102
+		return EEH_Venue_View::venue_address($type, $VNU_ID, FALSE, FALSE);
1103 1103
 	}
1104 1104
 }
1105 1105
 
1106 1106
 
1107
-if ( ! function_exists( 'espresso_venue_has_address' )) {
1107
+if ( ! function_exists('espresso_venue_has_address')) {
1108 1108
 	/**
1109 1109
 	 * espresso_venue_has_address
1110 1110
 	 * returns TRUE or FALSE if a Venue has address information
@@ -1112,13 +1112,13 @@  discard block
 block discarded – undo
1112 1112
 	 * @param int $VNU_ID
1113 1113
 	 * @return bool
1114 1114
 	 */
1115
-	function espresso_venue_has_address( $VNU_ID = 0 ) {
1116
-		return EEH_Venue_View::venue_has_address( $VNU_ID );
1115
+	function espresso_venue_has_address($VNU_ID = 0) {
1116
+		return EEH_Venue_View::venue_has_address($VNU_ID);
1117 1117
 	}
1118 1118
 }
1119 1119
 
1120 1120
 
1121
-if ( ! function_exists( 'espresso_venue_gmap' )) {
1121
+if ( ! function_exists('espresso_venue_gmap')) {
1122 1122
 	/**
1123 1123
 	 * espresso_venue_gmap
1124 1124
 	 * returns a google map for the venue address
@@ -1129,17 +1129,17 @@  discard block
 block discarded – undo
1129 1129
 	 * @param bool     $echo
1130 1130
 	 * @return string
1131 1131
 	 */
1132
-	function espresso_venue_gmap( $VNU_ID = 0, $map_ID = FALSE, $gmap = array(), $echo = TRUE  ) {
1133
-		if ( $echo ) {
1134
-			echo EEH_Venue_View::venue_gmap( $VNU_ID, $map_ID, $gmap );
1132
+	function espresso_venue_gmap($VNU_ID = 0, $map_ID = FALSE, $gmap = array(), $echo = TRUE) {
1133
+		if ($echo) {
1134
+			echo EEH_Venue_View::venue_gmap($VNU_ID, $map_ID, $gmap);
1135 1135
 			return '';
1136 1136
 		}
1137
-		return EEH_Venue_View::venue_gmap( $VNU_ID, $map_ID, $gmap );
1137
+		return EEH_Venue_View::venue_gmap($VNU_ID, $map_ID, $gmap);
1138 1138
 	}
1139 1139
 }
1140 1140
 
1141 1141
 
1142
-if ( ! function_exists( 'espresso_venue_phone' )) {
1142
+if ( ! function_exists('espresso_venue_phone')) {
1143 1143
 	/**
1144 1144
 	 * espresso_venue_phone
1145 1145
 	 *
@@ -1147,18 +1147,18 @@  discard block
 block discarded – undo
1147 1147
 	 * @param bool $echo
1148 1148
 	 * @return string
1149 1149
 	 */
1150
-	function espresso_venue_phone( $VNU_ID = 0, $echo = TRUE ) {
1151
-		if ( $echo ) {
1152
-			echo EEH_Venue_View::venue_phone( $VNU_ID );
1150
+	function espresso_venue_phone($VNU_ID = 0, $echo = TRUE) {
1151
+		if ($echo) {
1152
+			echo EEH_Venue_View::venue_phone($VNU_ID);
1153 1153
 			return '';
1154 1154
 		}
1155
-		return EEH_Venue_View::venue_phone( $VNU_ID );
1155
+		return EEH_Venue_View::venue_phone($VNU_ID);
1156 1156
 	}
1157 1157
 }
1158 1158
 
1159 1159
 
1160 1160
 
1161
-if ( ! function_exists( 'espresso_venue_website' )) {
1161
+if ( ! function_exists('espresso_venue_website')) {
1162 1162
 	/**
1163 1163
 	 * espresso_venue_website
1164 1164
 	 *
@@ -1166,18 +1166,18 @@  discard block
 block discarded – undo
1166 1166
 	 * @param bool $echo
1167 1167
 	 * @return string
1168 1168
 	 */
1169
-	function espresso_venue_website( $VNU_ID = 0, $echo = TRUE ) {
1170
-		if ( $echo ) {
1171
-			echo EEH_Venue_View::venue_website_link( $VNU_ID );
1169
+	function espresso_venue_website($VNU_ID = 0, $echo = TRUE) {
1170
+		if ($echo) {
1171
+			echo EEH_Venue_View::venue_website_link($VNU_ID);
1172 1172
 			return '';
1173 1173
 		}
1174
-		return EEH_Venue_View::venue_website_link( $VNU_ID );
1174
+		return EEH_Venue_View::venue_website_link($VNU_ID);
1175 1175
 	}
1176 1176
 }
1177 1177
 
1178 1178
 
1179 1179
 
1180
-if ( ! function_exists( 'espresso_edit_venue_link' )) {
1180
+if ( ! function_exists('espresso_edit_venue_link')) {
1181 1181
 	/**
1182 1182
 	 * espresso_edit_venue_link
1183 1183
 	 *
@@ -1185,12 +1185,12 @@  discard block
 block discarded – undo
1185 1185
 	 * @param bool $echo
1186 1186
 	 * @return string
1187 1187
 	 */
1188
-	function espresso_edit_venue_link( $VNU_ID = 0, $echo = TRUE ) {
1189
-		if($echo){
1190
-			echo EEH_Venue_View::edit_venue_link( $VNU_ID );
1188
+	function espresso_edit_venue_link($VNU_ID = 0, $echo = TRUE) {
1189
+		if ($echo) {
1190
+			echo EEH_Venue_View::edit_venue_link($VNU_ID);
1191 1191
 			return '';
1192 1192
 		}
1193
-		return EEH_Venue_View::edit_venue_link( $VNU_ID );
1193
+		return EEH_Venue_View::edit_venue_link($VNU_ID);
1194 1194
 	}
1195 1195
 }
1196 1196
 
Please login to merge, or discard this patch.
core/domain/services/event/EventSpacesCalculator.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -164,7 +164,7 @@
 block discarded – undo
164 164
 
165 165
 
166 166
     /**
167
-     * @param $ticket
167
+     * @param \EE_Base_Class $ticket
168 168
      * @throws DomainException
169 169
      * @throws EE_Error
170 170
      * @throws UnexpectedEntityException
Please login to merge, or discard this patch.
Spacing   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -174,14 +174,14 @@  discard block
 block discarded – undo
174 174
      */
175 175
     public function setActiveTickets(array $active_tickets = array())
176 176
     {
177
-        if (! empty($active_tickets)) {
177
+        if ( ! empty($active_tickets)) {
178 178
             foreach ($active_tickets as $active_ticket) {
179 179
                 $this->validateTicket($active_ticket);
180 180
             }
181 181
             // sort incoming array by ticket quantity (asc)
182 182
             usort(
183 183
                 $active_tickets,
184
-                function (EE_Ticket $a, EE_Ticket $b) {
184
+                function(EE_Ticket $a, EE_Ticket $b) {
185 185
                     if ($a->qty() === $b->qty()) {
186 186
                         return 0;
187 187
                     }
@@ -203,7 +203,7 @@  discard block
 block discarded – undo
203 203
      */
204 204
     private function validateTicket($ticket)
205 205
     {
206
-        if (! $ticket instanceof EE_Ticket) {
206
+        if ( ! $ticket instanceof EE_Ticket) {
207 207
             throw new DomainException(
208 208
                 esc_html__(
209 209
                     'Invalid Ticket. Only EE_Ticket objects can be used to calculate event space availability.',
@@ -254,7 +254,7 @@  discard block
 block discarded – undo
254 254
                 )
255 255
             );
256 256
         }
257
-        $this->datetimes[ $datetime->ID() ] = $datetime;
257
+        $this->datetimes[$datetime->ID()] = $datetime;
258 258
     }
259 259
 
260 260
 
@@ -327,7 +327,7 @@  discard block
 block discarded – undo
327 327
         $this->tickets_sold = array();
328 328
         $this->total_spaces = array();
329 329
         $active_tickets = $this->getActiveTickets();
330
-        if (! empty($active_tickets)) {
330
+        if ( ! empty($active_tickets)) {
331 331
             foreach ($active_tickets as $ticket) {
332 332
                 $this->validateTicket($ticket);
333 333
                 // we need to index our data arrays using strings for the purpose of sorting,
@@ -349,16 +349,16 @@  discard block
 block discarded – undo
349 349
                     // we are going to move all of our data into the following arrays:
350 350
                     // datetime spaces initially represents the reg limit for each datetime,
351 351
                     // but this will get adjusted as tickets are accounted for
352
-                    $this->datetime_spaces[ $datetime_identifier ] = $reg_limit;
352
+                    $this->datetime_spaces[$datetime_identifier] = $reg_limit;
353 353
                     // just an array of ticket IDs grouped by datetime
354
-                    $this->datetime_tickets[ $datetime_identifier ][] = $ticket_identifier;
354
+                    $this->datetime_tickets[$datetime_identifier][] = $ticket_identifier;
355 355
                     // and an array of datetime IDs grouped by ticket
356
-                    $this->ticket_datetimes[ $ticket_identifier ][] = $datetime_identifier;
356
+                    $this->ticket_datetimes[$ticket_identifier][] = $datetime_identifier;
357 357
                 }
358 358
                 // total quantity of sold and reserved for each ticket
359
-                $this->tickets_sold[ $ticket_identifier ] = $ticket->sold() + $ticket->reserved();
359
+                $this->tickets_sold[$ticket_identifier] = $ticket->sold() + $ticket->reserved();
360 360
                 // and the maximum ticket quantities for each ticket (adjusted for reg limit)
361
-                $this->ticket_quantities[ $ticket_identifier ] = $max_tickets;
361
+                $this->ticket_quantities[$ticket_identifier] = $max_tickets;
362 362
             }
363 363
         }
364 364
         // sort datetime spaces by reg limit, but maintain our string indexes
@@ -417,11 +417,11 @@  discard block
 block discarded – undo
417 417
             \EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
418 418
         }
419 419
         foreach ($this->tickets_sold as $ticket_identifier => $tickets_sold) {
420
-            if (isset($this->ticket_quantities[ $ticket_identifier ])) {
421
-                $this->ticket_quantities[ $ticket_identifier ] -= $tickets_sold;
420
+            if (isset($this->ticket_quantities[$ticket_identifier])) {
421
+                $this->ticket_quantities[$ticket_identifier] -= $tickets_sold;
422 422
                 // don't let values go below zero
423
-                $this->ticket_quantities[ $ticket_identifier ] = max(
424
-                    $this->ticket_quantities[ $ticket_identifier ],
423
+                $this->ticket_quantities[$ticket_identifier] = max(
424
+                    $this->ticket_quantities[$ticket_identifier],
425 425
                     0
426 426
                 );
427 427
                 if ($this->debug) {
@@ -433,15 +433,15 @@  discard block
 block discarded – undo
433 433
                     );
434 434
                 }
435 435
             }
436
-            if (isset($this->ticket_datetimes[ $ticket_identifier ])
437
-                && is_array($this->ticket_datetimes[ $ticket_identifier ])
436
+            if (isset($this->ticket_datetimes[$ticket_identifier])
437
+                && is_array($this->ticket_datetimes[$ticket_identifier])
438 438
             ) {
439
-                foreach ($this->ticket_datetimes[ $ticket_identifier ] as $ticket_datetime) {
440
-                    if (isset($this->ticket_quantities[ $ticket_identifier ])) {
441
-                        $this->datetime_spaces[ $ticket_datetime ] -= $tickets_sold;
439
+                foreach ($this->ticket_datetimes[$ticket_identifier] as $ticket_datetime) {
440
+                    if (isset($this->ticket_quantities[$ticket_identifier])) {
441
+                        $this->datetime_spaces[$ticket_datetime] -= $tickets_sold;
442 442
                         // don't let values go below zero
443
-                        $this->datetime_spaces[ $ticket_datetime ] = max(
444
-                            $this->datetime_spaces[ $ticket_datetime ],
443
+                        $this->datetime_spaces[$ticket_datetime] = max(
444
+                            $this->datetime_spaces[$ticket_datetime],
445 445
                             0
446 446
                         );
447 447
                         if ($this->debug) {
@@ -466,11 +466,11 @@  discard block
 block discarded – undo
466 466
     private function trackAvailableSpacesForDatetimes($datetime_identifier, array $tickets)
467 467
     {
468 468
         // make sure a reg limit is set for the datetime
469
-        $reg_limit = isset($this->datetime_spaces[ $datetime_identifier ])
470
-            ? $this->datetime_spaces[ $datetime_identifier ]
469
+        $reg_limit = isset($this->datetime_spaces[$datetime_identifier])
470
+            ? $this->datetime_spaces[$datetime_identifier]
471 471
             : 0;
472 472
         // and bail if it is not
473
-        if (! $reg_limit) {
473
+        if ( ! $reg_limit) {
474 474
             if ($this->debug) {
475 475
                 \EEH_Debug_Tools::printr('AT CAPACITY', " . {$datetime_identifier}", __FILE__, __LINE__);
476 476
             }
@@ -487,7 +487,7 @@  discard block
 block discarded – undo
487 487
         }
488 488
         // number of allocated spaces always starts at zero
489 489
         $spaces_allocated = 0;
490
-        $this->total_spaces[ $datetime_identifier ] = 0;
490
+        $this->total_spaces[$datetime_identifier] = 0;
491 491
         foreach ($tickets as $ticket_identifier) {
492 492
             $spaces_allocated = $this->calculateAvailableSpacesForTicket(
493 493
                 $datetime_identifier,
@@ -500,7 +500,7 @@  discard block
 block discarded – undo
500 500
         $spaces_allocated = max($spaces_allocated, 0);
501 501
         if ($spaces_allocated) {
502 502
             // track any non-zero values
503
-            $this->total_spaces[ $datetime_identifier ] += $spaces_allocated;
503
+            $this->total_spaces[$datetime_identifier] += $spaces_allocated;
504 504
             if ($this->debug) {
505 505
                 \EEH_Debug_Tools::printr((string) $spaces_allocated, ' . $spaces_allocated: ', __FILE__, __LINE__);
506 506
             }
@@ -511,7 +511,7 @@  discard block
 block discarded – undo
511 511
         }
512 512
         if ($this->debug) {
513 513
             \EEH_Debug_Tools::printr(
514
-                $this->total_spaces[ $datetime_identifier ],
514
+                $this->total_spaces[$datetime_identifier],
515 515
                 '$total_spaces',
516 516
                 __FILE__,
517 517
                 __LINE__
@@ -536,8 +536,8 @@  discard block
 block discarded – undo
536 536
         $spaces_allocated
537 537
     ) {
538 538
         // make sure ticket quantity is set
539
-        $ticket_quantity = isset($this->ticket_quantities[ $ticket_identifier ])
540
-            ? $this->ticket_quantities[ $ticket_identifier ]
539
+        $ticket_quantity = isset($this->ticket_quantities[$ticket_identifier])
540
+            ? $this->ticket_quantities[$ticket_identifier]
541 541
             : 0;
542 542
         if ($this->debug) {
543 543
             \EEH_Debug_Tools::printr("{$spaces_allocated}", '$spaces_allocated', __FILE__, __LINE__);
@@ -567,7 +567,7 @@  discard block
 block discarded – undo
567 567
                 //  or the maximum ticket quantity
568 568
                 $ticket_quantity = min($reg_limit - $spaces_allocated, $ticket_quantity);
569 569
                 // adjust the available quantity in our tracking array
570
-                $this->ticket_quantities[ $ticket_identifier ] -= $ticket_quantity;
570
+                $this->ticket_quantities[$ticket_identifier] -= $ticket_quantity;
571 571
                 // and increment spaces allocated for this datetime
572 572
                 $spaces_allocated += $ticket_quantity;
573 573
                 $at_capacity = $spaces_allocated >= $reg_limit;
@@ -624,14 +624,14 @@  discard block
 block discarded – undo
624 624
                 $ticket_quantity
625 625
             );
626 626
             // skip to next ticket if nothing changed
627
-            if (! ($adjusted || $at_capacity)) {
627
+            if ( ! ($adjusted || $at_capacity)) {
628 628
                 continue;
629 629
             }
630 630
             // then all of it's tickets are now unavailable
631 631
             foreach ($datetime_tickets as $datetime_ticket) {
632 632
                 if (($ticket_identifier === $datetime_ticket || $at_capacity)
633
-                    && isset($this->ticket_quantities[ $datetime_ticket ])
634
-                    && $this->ticket_quantities[ $datetime_ticket ] > 0
633
+                    && isset($this->ticket_quantities[$datetime_ticket])
634
+                    && $this->ticket_quantities[$datetime_ticket] > 0
635 635
                 ) {
636 636
                     if ($this->debug) {
637 637
                         \EEH_Debug_Tools::printr(
@@ -645,14 +645,14 @@  discard block
 block discarded – undo
645 645
                     // otherwise just subtract the ticket quantity
646 646
                     $new_quantity = $at_capacity
647 647
                         ? 0
648
-                        : $this->ticket_quantities[ $datetime_ticket ] - $ticket_quantity;
648
+                        : $this->ticket_quantities[$datetime_ticket] - $ticket_quantity;
649 649
                     // don't let ticket quantity go below zero
650
-                    $this->ticket_quantities[ $datetime_ticket ] = max($new_quantity, 0);
650
+                    $this->ticket_quantities[$datetime_ticket] = max($new_quantity, 0);
651 651
                     if ($this->debug) {
652 652
                         \EEH_Debug_Tools::printr(
653 653
                             $at_capacity
654 654
                                 ? "0 because Datetime {$datetime_identifier} is at capacity"
655
-                                : "{$this->ticket_quantities[ $datetime_ticket ]}",
655
+                                : "{$this->ticket_quantities[$datetime_ticket]}",
656 656
                             " . . . . {$datetime_ticket} quantity set to ",
657 657
                             __FILE__,
658 658
                             __LINE__
@@ -661,8 +661,8 @@  discard block
 block discarded – undo
661 661
                 }
662 662
                 // but we also need to adjust spaces for any other datetimes this ticket has access to
663 663
                 if ($datetime_ticket === $ticket_identifier) {
664
-                    if (isset($this->ticket_datetimes[ $datetime_ticket ])
665
-                        && is_array($this->ticket_datetimes[ $datetime_ticket ])
664
+                    if (isset($this->ticket_datetimes[$datetime_ticket])
665
+                        && is_array($this->ticket_datetimes[$datetime_ticket])
666 666
                     ) {
667 667
                         if ($this->debug) {
668 668
                             \EEH_Debug_Tools::printr(
@@ -672,7 +672,7 @@  discard block
 block discarded – undo
672 672
                                 __LINE__
673 673
                             );
674 674
                         }
675
-                        foreach ($this->ticket_datetimes[ $datetime_ticket ] as $datetime) {
675
+                        foreach ($this->ticket_datetimes[$datetime_ticket] as $datetime) {
676 676
                             // don't adjust the current datetime twice
677 677
                             if ($datetime !== $datetime_identifier) {
678 678
                                 $this->adjustDatetimeSpaces(
@@ -692,24 +692,24 @@  discard block
 block discarded – undo
692 692
     {
693 693
         // does datetime have spaces available?
694 694
         // and does the supplied ticket have access to this datetime ?
695
-        if ($this->datetime_spaces[ $datetime_identifier ] > 0
696
-            && isset($this->datetime_spaces[ $datetime_identifier ], $this->datetime_tickets[ $datetime_identifier ])
697
-            && in_array($ticket_identifier, $this->datetime_tickets[ $datetime_identifier ], true)
695
+        if ($this->datetime_spaces[$datetime_identifier] > 0
696
+            && isset($this->datetime_spaces[$datetime_identifier], $this->datetime_tickets[$datetime_identifier])
697
+            && in_array($ticket_identifier, $this->datetime_tickets[$datetime_identifier], true)
698 698
         ) {
699 699
             if ($this->debug) {
700 700
                 \EEH_Debug_Tools::printr($datetime_identifier, ' . . adjust Datetime Spaces for', __FILE__, __LINE__);
701 701
                 \EEH_Debug_Tools::printr(
702
-                    "{$this->datetime_spaces[ $datetime_identifier ]}",
702
+                    "{$this->datetime_spaces[$datetime_identifier]}",
703 703
                     " . . current  {$datetime_identifier} spaces available",
704 704
                     __FILE__,
705 705
                     __LINE__
706 706
                 );
707 707
             }
708 708
             // then decrement the available spaces for the datetime
709
-            $this->datetime_spaces[ $datetime_identifier ] -= $ticket_quantity;
709
+            $this->datetime_spaces[$datetime_identifier] -= $ticket_quantity;
710 710
             // but don't let quantities go below zero
711
-            $this->datetime_spaces[ $datetime_identifier ] = max(
712
-                $this->datetime_spaces[ $datetime_identifier ],
711
+            $this->datetime_spaces[$datetime_identifier] = max(
712
+                $this->datetime_spaces[$datetime_identifier],
713 713
                 0
714 714
             );
715 715
             if ($this->debug) {
Please login to merge, or discard this patch.
Indentation   +711 added lines, -711 removed lines patch added patch discarded remove patch
@@ -26,715 +26,715 @@
 block discarded – undo
26 26
 class EventSpacesCalculator
27 27
 {
28 28
 
29
-    /**
30
-     * @var EE_Event $event
31
-     */
32
-    private $event;
33
-
34
-    /**
35
-     * @var array $datetime_query_params
36
-     */
37
-    private $datetime_query_params;
38
-
39
-    /**
40
-     * @var EE_Ticket[] $active_tickets
41
-     */
42
-    private $active_tickets = array();
43
-
44
-    /**
45
-     * @var EE_Datetime[] $datetimes
46
-     */
47
-    private $datetimes = array();
48
-
49
-    /**
50
-     * Array of Ticket IDs grouped by Datetime
51
-     *
52
-     * @var array $datetimes
53
-     */
54
-    private $datetime_tickets = array();
55
-
56
-    /**
57
-     * Max spaces for each Datetime (reg limit - previous sold)
58
-     *
59
-     * @var array $datetime_spaces
60
-     */
61
-    private $datetime_spaces = array();
62
-
63
-    /**
64
-     * Array of Datetime IDs grouped by Ticket
65
-     *
66
-     * @var array[] $ticket_datetimes
67
-     */
68
-    private $ticket_datetimes = array();
69
-
70
-    /**
71
-     * maximum ticket quantities for each ticket (adjusted for reg limit)
72
-     *
73
-     * @var array $ticket_quantities
74
-     */
75
-    private $ticket_quantities = array();
76
-
77
-    /**
78
-     * total quantity of sold and reserved for each ticket
79
-     *
80
-     * @var array $tickets_sold
81
-     */
82
-    private $tickets_sold = array();
83
-
84
-    /**
85
-     * total spaces available across all datetimes
86
-     *
87
-     * @var array $total_spaces
88
-     */
89
-    private $total_spaces = array();
90
-
91
-    /**
92
-     * @var boolean $debug
93
-     */
94
-    private $debug = false; // true false
95
-
96
-    /**
97
-     * @var null|int $spaces_remaining
98
-     */
99
-    private $spaces_remaining;
100
-
101
-    /**
102
-     * @var null|int $total_spaces_available
103
-     */
104
-    private $total_spaces_available;
105
-
106
-
107
-    /**
108
-     * EventSpacesCalculator constructor.
109
-     *
110
-     * @param EE_Event $event
111
-     * @param array    $datetime_query_params
112
-     * @throws EE_Error
113
-     */
114
-    public function __construct(EE_Event $event, array $datetime_query_params = array())
115
-    {
116
-        if ($this->debug) {
117
-            \EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 1);
118
-            \EEH_Debug_Tools::printr((string) $event->ID(), 'For event', __FILE__, __LINE__);
119
-        }
120
-        $this->event = $event;
121
-        $this->datetime_query_params = $datetime_query_params + array('order_by' => array('DTT_reg_limit' => 'ASC'));
122
-        $this->setHooks();
123
-    }
124
-
125
-
126
-    /**
127
-     * @return void
128
-     */
129
-    private function setHooks()
130
-    {
131
-        add_action('AHEE__EE_Ticket__increase_sold', array($this, 'clearResults'));
132
-        add_action('AHEE__EE_Ticket__decrease_sold', array($this, 'clearResults'));
133
-        add_action('AHEE__EE_Datetime__increase_sold', array($this, 'clearResults'));
134
-        add_action('AHEE__EE_Datetime__decrease_sold', array($this, 'clearResults'));
135
-        add_action('AHEE__EE_Ticket__increase_reserved', array($this, 'clearResults'));
136
-        add_action('AHEE__EE_Ticket__decrease_reserved', array($this, 'clearResults'));
137
-        add_action('AHEE__EE_Datetime__increase_reserved', array($this, 'clearResults'));
138
-        add_action('AHEE__EE_Datetime__decrease_reserved', array($this, 'clearResults'));
139
-    }
140
-
141
-
142
-    /**
143
-     * @return void
144
-     */
145
-    public function clearResults()
146
-    {
147
-        if ($this->debug) {
148
-            \EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 1);
149
-        }
150
-        $this->spaces_remaining = null;
151
-        $this->total_spaces_available = null;
152
-    }
153
-
154
-
155
-    /**
156
-     * @return EE_Ticket[]
157
-     * @throws EE_Error
158
-     * @throws InvalidDataTypeException
159
-     * @throws InvalidInterfaceException
160
-     * @throws InvalidArgumentException
161
-     */
162
-    public function getActiveTickets()
163
-    {
164
-        if (empty($this->active_tickets)) {
165
-            $this->active_tickets = $this->event->tickets(
166
-                array(
167
-                    array('TKT_deleted' => false),
168
-                    'order_by' => array('TKT_qty' => 'ASC'),
169
-                )
170
-            );
171
-        }
172
-        return $this->active_tickets;
173
-    }
174
-
175
-
176
-    /**
177
-     * @param EE_Ticket[] $active_tickets
178
-     * @throws EE_Error
179
-     * @throws DomainException
180
-     * @throws UnexpectedEntityException
181
-     */
182
-    public function setActiveTickets(array $active_tickets = array())
183
-    {
184
-        if (! empty($active_tickets)) {
185
-            foreach ($active_tickets as $active_ticket) {
186
-                $this->validateTicket($active_ticket);
187
-            }
188
-            // sort incoming array by ticket quantity (asc)
189
-            usort(
190
-                $active_tickets,
191
-                function (EE_Ticket $a, EE_Ticket $b) {
192
-                    if ($a->qty() === $b->qty()) {
193
-                        return 0;
194
-                    }
195
-                    return ($a->qty() < $b->qty())
196
-                        ? -1
197
-                        : 1;
198
-                }
199
-            );
200
-        }
201
-        $this->active_tickets = $active_tickets;
202
-    }
203
-
204
-
205
-    /**
206
-     * @param $ticket
207
-     * @throws DomainException
208
-     * @throws EE_Error
209
-     * @throws UnexpectedEntityException
210
-     */
211
-    private function validateTicket($ticket)
212
-    {
213
-        if (! $ticket instanceof EE_Ticket) {
214
-            throw new DomainException(
215
-                esc_html__(
216
-                    'Invalid Ticket. Only EE_Ticket objects can be used to calculate event space availability.',
217
-                    'event_espresso'
218
-                )
219
-            );
220
-        }
221
-        if ($ticket->get_event_ID() !== $this->event->ID()) {
222
-            throw new DomainException(
223
-                sprintf(
224
-                    esc_html__(
225
-                        'An EE_Ticket for Event %1$d was supplied while calculating event space availability for Event %2$d.',
226
-                        'event_espresso'
227
-                    ),
228
-                    $ticket->get_event_ID(),
229
-                    $this->event->ID()
230
-                )
231
-            );
232
-        }
233
-    }
234
-
235
-
236
-    /**
237
-     * @return EE_Datetime[]
238
-     */
239
-    public function getDatetimes()
240
-    {
241
-        return $this->datetimes;
242
-    }
243
-
244
-
245
-    /**
246
-     * @param EE_Datetime $datetime
247
-     * @throws EE_Error
248
-     * @throws DomainException
249
-     */
250
-    public function setDatetime(EE_Datetime $datetime)
251
-    {
252
-        if ($datetime->event()->ID() !== $this->event->ID()) {
253
-            throw new DomainException(
254
-                sprintf(
255
-                    esc_html__(
256
-                        'An EE_Datetime for Event %1$d was supplied while calculating event space availability for Event %2$d.',
257
-                        'event_espresso'
258
-                    ),
259
-                    $datetime->event()->ID(),
260
-                    $this->event->ID()
261
-                )
262
-            );
263
-        }
264
-        $this->datetimes[ $datetime->ID() ] = $datetime;
265
-    }
266
-
267
-
268
-    /**
269
-     * calculate spaces remaining based on "saleable" tickets
270
-     *
271
-     * @return float|int
272
-     * @throws EE_Error
273
-     * @throws DomainException
274
-     * @throws UnexpectedEntityException
275
-     * @throws InvalidDataTypeException
276
-     * @throws InvalidInterfaceException
277
-     * @throws InvalidArgumentException
278
-     */
279
-    public function spacesRemaining()
280
-    {
281
-        if ($this->debug) {
282
-            \EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
283
-        }
284
-        if ($this->spaces_remaining === null) {
285
-            $this->initialize();
286
-            $this->spaces_remaining = $this->calculate();
287
-        }
288
-        return $this->spaces_remaining;
289
-    }
290
-
291
-
292
-    /**
293
-     * calculates total available spaces for an event with no regard for sold tickets
294
-     *
295
-     * @return int|float
296
-     * @throws EE_Error
297
-     * @throws DomainException
298
-     * @throws UnexpectedEntityException
299
-     * @throws InvalidDataTypeException
300
-     * @throws InvalidInterfaceException
301
-     * @throws InvalidArgumentException
302
-     */
303
-    public function totalSpacesAvailable()
304
-    {
305
-        if ($this->debug) {
306
-            \EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
307
-        }
308
-        if ($this->total_spaces_available === null) {
309
-            $this->initialize();
310
-            $this->total_spaces_available = $this->calculate(false);
311
-        }
312
-        return $this->total_spaces_available;
313
-    }
314
-
315
-
316
-    /**
317
-     * Loops through the active tickets for the event
318
-     * and builds a series of data arrays that will be used for calculating
319
-     * the total maximum available spaces, as well as the spaces remaining.
320
-     * Because ticket quantities affect datetime spaces and vice versa,
321
-     * we need to be constantly updating these data arrays as things change,
322
-     * which is the entire reason for their existence.
323
-     *
324
-     * @throws EE_Error
325
-     * @throws DomainException
326
-     * @throws UnexpectedEntityException
327
-     * @throws InvalidDataTypeException
328
-     * @throws InvalidInterfaceException
329
-     * @throws InvalidArgumentException
330
-     */
331
-    private function initialize()
332
-    {
333
-        if ($this->debug) {
334
-            \EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
335
-        }
336
-        $this->datetime_tickets = array();
337
-        $this->datetime_spaces = array();
338
-        $this->ticket_datetimes = array();
339
-        $this->ticket_quantities = array();
340
-        $this->tickets_sold = array();
341
-        $this->total_spaces = array();
342
-        $active_tickets = $this->getActiveTickets();
343
-        if (! empty($active_tickets)) {
344
-            foreach ($active_tickets as $ticket) {
345
-                $this->validateTicket($ticket);
346
-                // we need to index our data arrays using strings for the purpose of sorting,
347
-                // but we also need them to be unique, so  we'll just prepend a letter T to the ID
348
-                $ticket_identifier = "T{$ticket->ID()}";
349
-                // to start, we'll just consider the raw qty to be the maximum availability for this ticket,
350
-                // unless the ticket is past its "sell until" date, in which case the qty will be 0
351
-                $max_tickets = $ticket->is_expired() ? 0 : $ticket->qty();
352
-                // but we'll adjust that after looping over each datetime for the ticket and checking reg limits
353
-                $ticket_datetimes = $ticket->datetimes($this->datetime_query_params);
354
-                foreach ($ticket_datetimes as $datetime) {
355
-                    // save all datetimes
356
-                    $this->setDatetime($datetime);
357
-                    $datetime_identifier = "D{$datetime->ID()}";
358
-                    $reg_limit = $datetime->reg_limit();
359
-                    // ticket quantity can not exceed datetime reg limit
360
-                    $max_tickets = min($max_tickets, $reg_limit);
361
-                    // as described earlier, because we need to be able to constantly adjust numbers for things,
362
-                    // we are going to move all of our data into the following arrays:
363
-                    // datetime spaces initially represents the reg limit for each datetime,
364
-                    // but this will get adjusted as tickets are accounted for
365
-                    $this->datetime_spaces[ $datetime_identifier ] = $reg_limit;
366
-                    // just an array of ticket IDs grouped by datetime
367
-                    $this->datetime_tickets[ $datetime_identifier ][] = $ticket_identifier;
368
-                    // and an array of datetime IDs grouped by ticket
369
-                    $this->ticket_datetimes[ $ticket_identifier ][] = $datetime_identifier;
370
-                }
371
-                // total quantity of sold and reserved for each ticket
372
-                $this->tickets_sold[ $ticket_identifier ] = $ticket->sold() + $ticket->reserved();
373
-                // and the maximum ticket quantities for each ticket (adjusted for reg limit)
374
-                $this->ticket_quantities[ $ticket_identifier ] = $max_tickets;
375
-            }
376
-        }
377
-        // sort datetime spaces by reg limit, but maintain our string indexes
378
-        asort($this->datetime_spaces, SORT_NUMERIC);
379
-        // datetime tickets need to be sorted in the SAME order as the above array...
380
-        // so we'll just use array_merge() to take the structure of datetime_spaces
381
-        // but overwrite all of the data with that from datetime_tickets
382
-        $this->datetime_tickets = array_merge(
383
-            $this->datetime_spaces,
384
-            $this->datetime_tickets
385
-        );
386
-        if ($this->debug) {
387
-            \EEH_Debug_Tools::printr($this->datetime_spaces, 'datetime_spaces', __FILE__, __LINE__);
388
-            \EEH_Debug_Tools::printr($this->datetime_tickets, 'datetime_tickets', __FILE__, __LINE__);
389
-            \EEH_Debug_Tools::printr($this->ticket_quantities, 'ticket_quantities', __FILE__, __LINE__);
390
-        }
391
-    }
392
-
393
-
394
-    /**
395
-     * performs calculations on initialized data
396
-     *
397
-     * @param bool $consider_sold
398
-     * @return int|float
399
-     */
400
-    private function calculate($consider_sold = true)
401
-    {
402
-        if ($this->debug) {
403
-            \EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
404
-            \EEH_Debug_Tools::printr($consider_sold, '$consider_sold', __FILE__, __LINE__);
405
-        }
406
-        if ($consider_sold) {
407
-            // subtract amounts sold from all ticket quantities and datetime spaces
408
-            $this->adjustTicketQuantitiesDueToSales();
409
-        }
410
-        foreach ($this->datetime_tickets as $datetime_identifier => $tickets) {
411
-            $this->trackAvailableSpacesForDatetimes($datetime_identifier, $tickets);
412
-        }
413
-        // total spaces available is just the sum of the spaces available for each datetime
414
-        $spaces_remaining = array_sum($this->total_spaces);
415
-        if ($this->debug) {
416
-            \EEH_Debug_Tools::printr($this->total_spaces, '$this->total_spaces', __FILE__, __LINE__);
417
-            \EEH_Debug_Tools::printr($this->tickets_sold, '$this->tickets_sold', __FILE__, __LINE__);
418
-            \EEH_Debug_Tools::printr($spaces_remaining, '$spaces_remaining', __FILE__, __LINE__);
419
-        }
420
-        return $spaces_remaining;
421
-    }
422
-
423
-
424
-    /**
425
-     * subtracts amount of  tickets sold from ticket quantities and datetime spaces
426
-     */
427
-    private function adjustTicketQuantitiesDueToSales()
428
-    {
429
-        if ($this->debug) {
430
-            \EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
431
-        }
432
-        foreach ($this->tickets_sold as $ticket_identifier => $tickets_sold) {
433
-            if (isset($this->ticket_quantities[ $ticket_identifier ])) {
434
-                $this->ticket_quantities[ $ticket_identifier ] -= $tickets_sold;
435
-                // don't let values go below zero
436
-                $this->ticket_quantities[ $ticket_identifier ] = max(
437
-                    $this->ticket_quantities[ $ticket_identifier ],
438
-                    0
439
-                );
440
-                if ($this->debug) {
441
-                    \EEH_Debug_Tools::printr(
442
-                        "{$tickets_sold} sales for ticket {$ticket_identifier} ",
443
-                        'subtracting',
444
-                        __FILE__,
445
-                        __LINE__
446
-                    );
447
-                }
448
-            }
449
-            if (isset($this->ticket_datetimes[ $ticket_identifier ])
450
-                && is_array($this->ticket_datetimes[ $ticket_identifier ])
451
-            ) {
452
-                foreach ($this->ticket_datetimes[ $ticket_identifier ] as $ticket_datetime) {
453
-                    if (isset($this->ticket_quantities[ $ticket_identifier ])) {
454
-                        $this->datetime_spaces[ $ticket_datetime ] -= $tickets_sold;
455
-                        // don't let values go below zero
456
-                        $this->datetime_spaces[ $ticket_datetime ] = max(
457
-                            $this->datetime_spaces[ $ticket_datetime ],
458
-                            0
459
-                        );
460
-                        if ($this->debug) {
461
-                            \EEH_Debug_Tools::printr(
462
-                                "{$tickets_sold} sales for datetime {$ticket_datetime} ",
463
-                                'subtracting',
464
-                                __FILE__,
465
-                                __LINE__
466
-                            );
467
-                        }
468
-                    }
469
-                }
470
-            }
471
-        }
472
-    }
473
-
474
-
475
-    /**
476
-     * @param string $datetime_identifier
477
-     * @param array  $tickets
478
-     */
479
-    private function trackAvailableSpacesForDatetimes($datetime_identifier, array $tickets)
480
-    {
481
-        // make sure a reg limit is set for the datetime
482
-        $reg_limit = isset($this->datetime_spaces[ $datetime_identifier ])
483
-            ? $this->datetime_spaces[ $datetime_identifier ]
484
-            : 0;
485
-        // and bail if it is not
486
-        if (! $reg_limit) {
487
-            if ($this->debug) {
488
-                \EEH_Debug_Tools::printr('AT CAPACITY', " . {$datetime_identifier}", __FILE__, __LINE__);
489
-            }
490
-            return;
491
-        }
492
-        if ($this->debug) {
493
-            \EEH_Debug_Tools::printr($datetime_identifier, '* $datetime_identifier', __FILE__, __LINE__, 1);
494
-            \EEH_Debug_Tools::printr(
495
-                "{$reg_limit}",
496
-                'REG LIMIT',
497
-                __FILE__,
498
-                __LINE__
499
-            );
500
-        }
501
-        // number of allocated spaces always starts at zero
502
-        $spaces_allocated = 0;
503
-        $this->total_spaces[ $datetime_identifier ] = 0;
504
-        foreach ($tickets as $ticket_identifier) {
505
-            $spaces_allocated = $this->calculateAvailableSpacesForTicket(
506
-                $datetime_identifier,
507
-                $reg_limit,
508
-                $ticket_identifier,
509
-                $spaces_allocated
510
-            );
511
-        }
512
-        // spaces can't be negative
513
-        $spaces_allocated = max($spaces_allocated, 0);
514
-        if ($spaces_allocated) {
515
-            // track any non-zero values
516
-            $this->total_spaces[ $datetime_identifier ] += $spaces_allocated;
517
-            if ($this->debug) {
518
-                \EEH_Debug_Tools::printr((string) $spaces_allocated, ' . $spaces_allocated: ', __FILE__, __LINE__);
519
-            }
520
-        } else {
521
-            if ($this->debug) {
522
-                \EEH_Debug_Tools::printr(' ', ' . NO TICKETS AVAILABLE FOR DATETIME', __FILE__, __LINE__);
523
-            }
524
-        }
525
-        if ($this->debug) {
526
-            \EEH_Debug_Tools::printr(
527
-                $this->total_spaces[ $datetime_identifier ],
528
-                '$total_spaces',
529
-                __FILE__,
530
-                __LINE__
531
-            );
532
-            \EEH_Debug_Tools::printr($this->ticket_quantities, '$ticket_quantities', __FILE__, __LINE__);
533
-            \EEH_Debug_Tools::printr($this->datetime_spaces, 'datetime_spaces', __FILE__, __LINE__);
534
-        }
535
-    }
536
-
537
-
538
-    /**
539
-     * @param string $datetime_identifier
540
-     * @param int    $reg_limit
541
-     * @param string $ticket_identifier
542
-     * @param int    $spaces_allocated
543
-     * @return int
544
-     */
545
-    private function calculateAvailableSpacesForTicket(
546
-        $datetime_identifier,
547
-        $reg_limit,
548
-        $ticket_identifier,
549
-        $spaces_allocated
550
-    ) {
551
-        // make sure ticket quantity is set
552
-        $ticket_quantity = isset($this->ticket_quantities[ $ticket_identifier ])
553
-            ? $this->ticket_quantities[ $ticket_identifier ]
554
-            : 0;
555
-        if ($this->debug) {
556
-            \EEH_Debug_Tools::printr("{$spaces_allocated}", '$spaces_allocated', __FILE__, __LINE__);
557
-            \EEH_Debug_Tools::printr(
558
-                "{$ticket_quantity}",
559
-                "ticket $ticket_identifier quantity: ",
560
-                __FILE__,
561
-                __LINE__,
562
-                2
563
-            );
564
-        }
565
-        if ($ticket_quantity) {
566
-            if ($this->debug) {
567
-                \EEH_Debug_Tools::printr(
568
-                    ($spaces_allocated <= $reg_limit)
569
-                        ? 'true'
570
-                        : 'false',
571
-                    ' . spaces_allocated <= reg_limit = ',
572
-                    __FILE__,
573
-                    __LINE__
574
-                );
575
-            }
576
-            // if the datetime is NOT at full capacity yet
577
-            if ($spaces_allocated <= $reg_limit) {
578
-                // then the maximum ticket quantity we can allocate is the lowest value of either:
579
-                //  the number of remaining spaces for the datetime, which is the limit - spaces already taken
580
-                //  or the maximum ticket quantity
581
-                $ticket_quantity = min($reg_limit - $spaces_allocated, $ticket_quantity);
582
-                // adjust the available quantity in our tracking array
583
-                $this->ticket_quantities[ $ticket_identifier ] -= $ticket_quantity;
584
-                // and increment spaces allocated for this datetime
585
-                $spaces_allocated += $ticket_quantity;
586
-                $at_capacity = $spaces_allocated >= $reg_limit;
587
-                if ($this->debug) {
588
-                    \EEH_Debug_Tools::printr(
589
-                        "{$ticket_quantity} {$ticket_identifier} tickets",
590
-                        ' > > allocate ',
591
-                        __FILE__,
592
-                        __LINE__,
593
-                        3
594
-                    );
595
-                    if ($at_capacity) {
596
-                        \EEH_Debug_Tools::printr('AT CAPACITY', " . {$datetime_identifier}", __FILE__, __LINE__, 3);
597
-                    }
598
-                }
599
-                // now adjust all other datetimes that allow access to this ticket
600
-                $this->adjustDatetimes(
601
-                    $datetime_identifier,
602
-                    $ticket_identifier,
603
-                    $ticket_quantity,
604
-                    $at_capacity
605
-                );
606
-            }
607
-        }
608
-        return $spaces_allocated;
609
-    }
610
-
611
-
612
-    /**
613
-     * subtracts ticket amounts from all datetime reg limits
614
-     * that allow access to the ticket specified,
615
-     * because that ticket could be used
616
-     * to attend any of the datetimes it has access to
617
-     *
618
-     * @param string $datetime_identifier
619
-     * @param string $ticket_identifier
620
-     * @param bool   $at_capacity
621
-     * @param int    $ticket_quantity
622
-     */
623
-    private function adjustDatetimes(
624
-        $datetime_identifier,
625
-        $ticket_identifier,
626
-        $ticket_quantity,
627
-        $at_capacity
628
-    ) {
629
-        /** @var array $datetime_tickets */
630
-        foreach ($this->datetime_tickets as $datetime_ID => $datetime_tickets) {
631
-            if ($datetime_ID !== $datetime_identifier || ! is_array($datetime_tickets)) {
632
-                continue;
633
-            }
634
-            $adjusted = $this->adjustDatetimeSpaces(
635
-                $datetime_ID,
636
-                $ticket_identifier,
637
-                $ticket_quantity
638
-            );
639
-            // skip to next ticket if nothing changed
640
-            if (! ($adjusted || $at_capacity)) {
641
-                continue;
642
-            }
643
-            // then all of it's tickets are now unavailable
644
-            foreach ($datetime_tickets as $datetime_ticket) {
645
-                if (($ticket_identifier === $datetime_ticket || $at_capacity)
646
-                    && isset($this->ticket_quantities[ $datetime_ticket ])
647
-                    && $this->ticket_quantities[ $datetime_ticket ] > 0
648
-                ) {
649
-                    if ($this->debug) {
650
-                        \EEH_Debug_Tools::printr(
651
-                            $datetime_ticket,
652
-                            ' . . . adjust ticket quantities for',
653
-                            __FILE__,
654
-                            __LINE__
655
-                        );
656
-                    }
657
-                    // if this datetime is at full capacity, set any tracked available quantities to zero
658
-                    // otherwise just subtract the ticket quantity
659
-                    $new_quantity = $at_capacity
660
-                        ? 0
661
-                        : $this->ticket_quantities[ $datetime_ticket ] - $ticket_quantity;
662
-                    // don't let ticket quantity go below zero
663
-                    $this->ticket_quantities[ $datetime_ticket ] = max($new_quantity, 0);
664
-                    if ($this->debug) {
665
-                        \EEH_Debug_Tools::printr(
666
-                            $at_capacity
667
-                                ? "0 because Datetime {$datetime_identifier} is at capacity"
668
-                                : "{$this->ticket_quantities[ $datetime_ticket ]}",
669
-                            " . . . . {$datetime_ticket} quantity set to ",
670
-                            __FILE__,
671
-                            __LINE__
672
-                        );
673
-                    }
674
-                }
675
-                // but we also need to adjust spaces for any other datetimes this ticket has access to
676
-                if ($datetime_ticket === $ticket_identifier) {
677
-                    if (isset($this->ticket_datetimes[ $datetime_ticket ])
678
-                        && is_array($this->ticket_datetimes[ $datetime_ticket ])
679
-                    ) {
680
-                        if ($this->debug) {
681
-                            \EEH_Debug_Tools::printr(
682
-                                $datetime_ticket,
683
-                                ' . . adjust other Datetimes for',
684
-                                __FILE__,
685
-                                __LINE__
686
-                            );
687
-                        }
688
-                        foreach ($this->ticket_datetimes[ $datetime_ticket ] as $datetime) {
689
-                            // don't adjust the current datetime twice
690
-                            if ($datetime !== $datetime_identifier) {
691
-                                $this->adjustDatetimeSpaces(
692
-                                    $datetime,
693
-                                    $datetime_ticket,
694
-                                    $ticket_quantity
695
-                                );
696
-                            }
697
-                        }
698
-                    }
699
-                }
700
-            }
701
-        }
702
-    }
703
-
704
-    private function adjustDatetimeSpaces($datetime_identifier, $ticket_identifier, $ticket_quantity = 0)
705
-    {
706
-        // does datetime have spaces available?
707
-        // and does the supplied ticket have access to this datetime ?
708
-        if ($this->datetime_spaces[ $datetime_identifier ] > 0
709
-            && isset($this->datetime_spaces[ $datetime_identifier ], $this->datetime_tickets[ $datetime_identifier ])
710
-            && in_array($ticket_identifier, $this->datetime_tickets[ $datetime_identifier ], true)
711
-        ) {
712
-            if ($this->debug) {
713
-                \EEH_Debug_Tools::printr($datetime_identifier, ' . . adjust Datetime Spaces for', __FILE__, __LINE__);
714
-                \EEH_Debug_Tools::printr(
715
-                    "{$this->datetime_spaces[ $datetime_identifier ]}",
716
-                    " . . current  {$datetime_identifier} spaces available",
717
-                    __FILE__,
718
-                    __LINE__
719
-                );
720
-            }
721
-            // then decrement the available spaces for the datetime
722
-            $this->datetime_spaces[ $datetime_identifier ] -= $ticket_quantity;
723
-            // but don't let quantities go below zero
724
-            $this->datetime_spaces[ $datetime_identifier ] = max(
725
-                $this->datetime_spaces[ $datetime_identifier ],
726
-                0
727
-            );
728
-            if ($this->debug) {
729
-                \EEH_Debug_Tools::printr(
730
-                    "{$ticket_quantity}",
731
-                    " . . . {$datetime_identifier} capacity reduced by",
732
-                    __FILE__,
733
-                    __LINE__
734
-                );
735
-            }
736
-            return true;
737
-        }
738
-        return false;
739
-    }
29
+	/**
30
+	 * @var EE_Event $event
31
+	 */
32
+	private $event;
33
+
34
+	/**
35
+	 * @var array $datetime_query_params
36
+	 */
37
+	private $datetime_query_params;
38
+
39
+	/**
40
+	 * @var EE_Ticket[] $active_tickets
41
+	 */
42
+	private $active_tickets = array();
43
+
44
+	/**
45
+	 * @var EE_Datetime[] $datetimes
46
+	 */
47
+	private $datetimes = array();
48
+
49
+	/**
50
+	 * Array of Ticket IDs grouped by Datetime
51
+	 *
52
+	 * @var array $datetimes
53
+	 */
54
+	private $datetime_tickets = array();
55
+
56
+	/**
57
+	 * Max spaces for each Datetime (reg limit - previous sold)
58
+	 *
59
+	 * @var array $datetime_spaces
60
+	 */
61
+	private $datetime_spaces = array();
62
+
63
+	/**
64
+	 * Array of Datetime IDs grouped by Ticket
65
+	 *
66
+	 * @var array[] $ticket_datetimes
67
+	 */
68
+	private $ticket_datetimes = array();
69
+
70
+	/**
71
+	 * maximum ticket quantities for each ticket (adjusted for reg limit)
72
+	 *
73
+	 * @var array $ticket_quantities
74
+	 */
75
+	private $ticket_quantities = array();
76
+
77
+	/**
78
+	 * total quantity of sold and reserved for each ticket
79
+	 *
80
+	 * @var array $tickets_sold
81
+	 */
82
+	private $tickets_sold = array();
83
+
84
+	/**
85
+	 * total spaces available across all datetimes
86
+	 *
87
+	 * @var array $total_spaces
88
+	 */
89
+	private $total_spaces = array();
90
+
91
+	/**
92
+	 * @var boolean $debug
93
+	 */
94
+	private $debug = false; // true false
95
+
96
+	/**
97
+	 * @var null|int $spaces_remaining
98
+	 */
99
+	private $spaces_remaining;
100
+
101
+	/**
102
+	 * @var null|int $total_spaces_available
103
+	 */
104
+	private $total_spaces_available;
105
+
106
+
107
+	/**
108
+	 * EventSpacesCalculator constructor.
109
+	 *
110
+	 * @param EE_Event $event
111
+	 * @param array    $datetime_query_params
112
+	 * @throws EE_Error
113
+	 */
114
+	public function __construct(EE_Event $event, array $datetime_query_params = array())
115
+	{
116
+		if ($this->debug) {
117
+			\EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 1);
118
+			\EEH_Debug_Tools::printr((string) $event->ID(), 'For event', __FILE__, __LINE__);
119
+		}
120
+		$this->event = $event;
121
+		$this->datetime_query_params = $datetime_query_params + array('order_by' => array('DTT_reg_limit' => 'ASC'));
122
+		$this->setHooks();
123
+	}
124
+
125
+
126
+	/**
127
+	 * @return void
128
+	 */
129
+	private function setHooks()
130
+	{
131
+		add_action('AHEE__EE_Ticket__increase_sold', array($this, 'clearResults'));
132
+		add_action('AHEE__EE_Ticket__decrease_sold', array($this, 'clearResults'));
133
+		add_action('AHEE__EE_Datetime__increase_sold', array($this, 'clearResults'));
134
+		add_action('AHEE__EE_Datetime__decrease_sold', array($this, 'clearResults'));
135
+		add_action('AHEE__EE_Ticket__increase_reserved', array($this, 'clearResults'));
136
+		add_action('AHEE__EE_Ticket__decrease_reserved', array($this, 'clearResults'));
137
+		add_action('AHEE__EE_Datetime__increase_reserved', array($this, 'clearResults'));
138
+		add_action('AHEE__EE_Datetime__decrease_reserved', array($this, 'clearResults'));
139
+	}
140
+
141
+
142
+	/**
143
+	 * @return void
144
+	 */
145
+	public function clearResults()
146
+	{
147
+		if ($this->debug) {
148
+			\EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 1);
149
+		}
150
+		$this->spaces_remaining = null;
151
+		$this->total_spaces_available = null;
152
+	}
153
+
154
+
155
+	/**
156
+	 * @return EE_Ticket[]
157
+	 * @throws EE_Error
158
+	 * @throws InvalidDataTypeException
159
+	 * @throws InvalidInterfaceException
160
+	 * @throws InvalidArgumentException
161
+	 */
162
+	public function getActiveTickets()
163
+	{
164
+		if (empty($this->active_tickets)) {
165
+			$this->active_tickets = $this->event->tickets(
166
+				array(
167
+					array('TKT_deleted' => false),
168
+					'order_by' => array('TKT_qty' => 'ASC'),
169
+				)
170
+			);
171
+		}
172
+		return $this->active_tickets;
173
+	}
174
+
175
+
176
+	/**
177
+	 * @param EE_Ticket[] $active_tickets
178
+	 * @throws EE_Error
179
+	 * @throws DomainException
180
+	 * @throws UnexpectedEntityException
181
+	 */
182
+	public function setActiveTickets(array $active_tickets = array())
183
+	{
184
+		if (! empty($active_tickets)) {
185
+			foreach ($active_tickets as $active_ticket) {
186
+				$this->validateTicket($active_ticket);
187
+			}
188
+			// sort incoming array by ticket quantity (asc)
189
+			usort(
190
+				$active_tickets,
191
+				function (EE_Ticket $a, EE_Ticket $b) {
192
+					if ($a->qty() === $b->qty()) {
193
+						return 0;
194
+					}
195
+					return ($a->qty() < $b->qty())
196
+						? -1
197
+						: 1;
198
+				}
199
+			);
200
+		}
201
+		$this->active_tickets = $active_tickets;
202
+	}
203
+
204
+
205
+	/**
206
+	 * @param $ticket
207
+	 * @throws DomainException
208
+	 * @throws EE_Error
209
+	 * @throws UnexpectedEntityException
210
+	 */
211
+	private function validateTicket($ticket)
212
+	{
213
+		if (! $ticket instanceof EE_Ticket) {
214
+			throw new DomainException(
215
+				esc_html__(
216
+					'Invalid Ticket. Only EE_Ticket objects can be used to calculate event space availability.',
217
+					'event_espresso'
218
+				)
219
+			);
220
+		}
221
+		if ($ticket->get_event_ID() !== $this->event->ID()) {
222
+			throw new DomainException(
223
+				sprintf(
224
+					esc_html__(
225
+						'An EE_Ticket for Event %1$d was supplied while calculating event space availability for Event %2$d.',
226
+						'event_espresso'
227
+					),
228
+					$ticket->get_event_ID(),
229
+					$this->event->ID()
230
+				)
231
+			);
232
+		}
233
+	}
234
+
235
+
236
+	/**
237
+	 * @return EE_Datetime[]
238
+	 */
239
+	public function getDatetimes()
240
+	{
241
+		return $this->datetimes;
242
+	}
243
+
244
+
245
+	/**
246
+	 * @param EE_Datetime $datetime
247
+	 * @throws EE_Error
248
+	 * @throws DomainException
249
+	 */
250
+	public function setDatetime(EE_Datetime $datetime)
251
+	{
252
+		if ($datetime->event()->ID() !== $this->event->ID()) {
253
+			throw new DomainException(
254
+				sprintf(
255
+					esc_html__(
256
+						'An EE_Datetime for Event %1$d was supplied while calculating event space availability for Event %2$d.',
257
+						'event_espresso'
258
+					),
259
+					$datetime->event()->ID(),
260
+					$this->event->ID()
261
+				)
262
+			);
263
+		}
264
+		$this->datetimes[ $datetime->ID() ] = $datetime;
265
+	}
266
+
267
+
268
+	/**
269
+	 * calculate spaces remaining based on "saleable" tickets
270
+	 *
271
+	 * @return float|int
272
+	 * @throws EE_Error
273
+	 * @throws DomainException
274
+	 * @throws UnexpectedEntityException
275
+	 * @throws InvalidDataTypeException
276
+	 * @throws InvalidInterfaceException
277
+	 * @throws InvalidArgumentException
278
+	 */
279
+	public function spacesRemaining()
280
+	{
281
+		if ($this->debug) {
282
+			\EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
283
+		}
284
+		if ($this->spaces_remaining === null) {
285
+			$this->initialize();
286
+			$this->spaces_remaining = $this->calculate();
287
+		}
288
+		return $this->spaces_remaining;
289
+	}
290
+
291
+
292
+	/**
293
+	 * calculates total available spaces for an event with no regard for sold tickets
294
+	 *
295
+	 * @return int|float
296
+	 * @throws EE_Error
297
+	 * @throws DomainException
298
+	 * @throws UnexpectedEntityException
299
+	 * @throws InvalidDataTypeException
300
+	 * @throws InvalidInterfaceException
301
+	 * @throws InvalidArgumentException
302
+	 */
303
+	public function totalSpacesAvailable()
304
+	{
305
+		if ($this->debug) {
306
+			\EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
307
+		}
308
+		if ($this->total_spaces_available === null) {
309
+			$this->initialize();
310
+			$this->total_spaces_available = $this->calculate(false);
311
+		}
312
+		return $this->total_spaces_available;
313
+	}
314
+
315
+
316
+	/**
317
+	 * Loops through the active tickets for the event
318
+	 * and builds a series of data arrays that will be used for calculating
319
+	 * the total maximum available spaces, as well as the spaces remaining.
320
+	 * Because ticket quantities affect datetime spaces and vice versa,
321
+	 * we need to be constantly updating these data arrays as things change,
322
+	 * which is the entire reason for their existence.
323
+	 *
324
+	 * @throws EE_Error
325
+	 * @throws DomainException
326
+	 * @throws UnexpectedEntityException
327
+	 * @throws InvalidDataTypeException
328
+	 * @throws InvalidInterfaceException
329
+	 * @throws InvalidArgumentException
330
+	 */
331
+	private function initialize()
332
+	{
333
+		if ($this->debug) {
334
+			\EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
335
+		}
336
+		$this->datetime_tickets = array();
337
+		$this->datetime_spaces = array();
338
+		$this->ticket_datetimes = array();
339
+		$this->ticket_quantities = array();
340
+		$this->tickets_sold = array();
341
+		$this->total_spaces = array();
342
+		$active_tickets = $this->getActiveTickets();
343
+		if (! empty($active_tickets)) {
344
+			foreach ($active_tickets as $ticket) {
345
+				$this->validateTicket($ticket);
346
+				// we need to index our data arrays using strings for the purpose of sorting,
347
+				// but we also need them to be unique, so  we'll just prepend a letter T to the ID
348
+				$ticket_identifier = "T{$ticket->ID()}";
349
+				// to start, we'll just consider the raw qty to be the maximum availability for this ticket,
350
+				// unless the ticket is past its "sell until" date, in which case the qty will be 0
351
+				$max_tickets = $ticket->is_expired() ? 0 : $ticket->qty();
352
+				// but we'll adjust that after looping over each datetime for the ticket and checking reg limits
353
+				$ticket_datetimes = $ticket->datetimes($this->datetime_query_params);
354
+				foreach ($ticket_datetimes as $datetime) {
355
+					// save all datetimes
356
+					$this->setDatetime($datetime);
357
+					$datetime_identifier = "D{$datetime->ID()}";
358
+					$reg_limit = $datetime->reg_limit();
359
+					// ticket quantity can not exceed datetime reg limit
360
+					$max_tickets = min($max_tickets, $reg_limit);
361
+					// as described earlier, because we need to be able to constantly adjust numbers for things,
362
+					// we are going to move all of our data into the following arrays:
363
+					// datetime spaces initially represents the reg limit for each datetime,
364
+					// but this will get adjusted as tickets are accounted for
365
+					$this->datetime_spaces[ $datetime_identifier ] = $reg_limit;
366
+					// just an array of ticket IDs grouped by datetime
367
+					$this->datetime_tickets[ $datetime_identifier ][] = $ticket_identifier;
368
+					// and an array of datetime IDs grouped by ticket
369
+					$this->ticket_datetimes[ $ticket_identifier ][] = $datetime_identifier;
370
+				}
371
+				// total quantity of sold and reserved for each ticket
372
+				$this->tickets_sold[ $ticket_identifier ] = $ticket->sold() + $ticket->reserved();
373
+				// and the maximum ticket quantities for each ticket (adjusted for reg limit)
374
+				$this->ticket_quantities[ $ticket_identifier ] = $max_tickets;
375
+			}
376
+		}
377
+		// sort datetime spaces by reg limit, but maintain our string indexes
378
+		asort($this->datetime_spaces, SORT_NUMERIC);
379
+		// datetime tickets need to be sorted in the SAME order as the above array...
380
+		// so we'll just use array_merge() to take the structure of datetime_spaces
381
+		// but overwrite all of the data with that from datetime_tickets
382
+		$this->datetime_tickets = array_merge(
383
+			$this->datetime_spaces,
384
+			$this->datetime_tickets
385
+		);
386
+		if ($this->debug) {
387
+			\EEH_Debug_Tools::printr($this->datetime_spaces, 'datetime_spaces', __FILE__, __LINE__);
388
+			\EEH_Debug_Tools::printr($this->datetime_tickets, 'datetime_tickets', __FILE__, __LINE__);
389
+			\EEH_Debug_Tools::printr($this->ticket_quantities, 'ticket_quantities', __FILE__, __LINE__);
390
+		}
391
+	}
392
+
393
+
394
+	/**
395
+	 * performs calculations on initialized data
396
+	 *
397
+	 * @param bool $consider_sold
398
+	 * @return int|float
399
+	 */
400
+	private function calculate($consider_sold = true)
401
+	{
402
+		if ($this->debug) {
403
+			\EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
404
+			\EEH_Debug_Tools::printr($consider_sold, '$consider_sold', __FILE__, __LINE__);
405
+		}
406
+		if ($consider_sold) {
407
+			// subtract amounts sold from all ticket quantities and datetime spaces
408
+			$this->adjustTicketQuantitiesDueToSales();
409
+		}
410
+		foreach ($this->datetime_tickets as $datetime_identifier => $tickets) {
411
+			$this->trackAvailableSpacesForDatetimes($datetime_identifier, $tickets);
412
+		}
413
+		// total spaces available is just the sum of the spaces available for each datetime
414
+		$spaces_remaining = array_sum($this->total_spaces);
415
+		if ($this->debug) {
416
+			\EEH_Debug_Tools::printr($this->total_spaces, '$this->total_spaces', __FILE__, __LINE__);
417
+			\EEH_Debug_Tools::printr($this->tickets_sold, '$this->tickets_sold', __FILE__, __LINE__);
418
+			\EEH_Debug_Tools::printr($spaces_remaining, '$spaces_remaining', __FILE__, __LINE__);
419
+		}
420
+		return $spaces_remaining;
421
+	}
422
+
423
+
424
+	/**
425
+	 * subtracts amount of  tickets sold from ticket quantities and datetime spaces
426
+	 */
427
+	private function adjustTicketQuantitiesDueToSales()
428
+	{
429
+		if ($this->debug) {
430
+			\EEH_Debug_Tools::printr(__FUNCTION__, __CLASS__, __FILE__, __LINE__, 2);
431
+		}
432
+		foreach ($this->tickets_sold as $ticket_identifier => $tickets_sold) {
433
+			if (isset($this->ticket_quantities[ $ticket_identifier ])) {
434
+				$this->ticket_quantities[ $ticket_identifier ] -= $tickets_sold;
435
+				// don't let values go below zero
436
+				$this->ticket_quantities[ $ticket_identifier ] = max(
437
+					$this->ticket_quantities[ $ticket_identifier ],
438
+					0
439
+				);
440
+				if ($this->debug) {
441
+					\EEH_Debug_Tools::printr(
442
+						"{$tickets_sold} sales for ticket {$ticket_identifier} ",
443
+						'subtracting',
444
+						__FILE__,
445
+						__LINE__
446
+					);
447
+				}
448
+			}
449
+			if (isset($this->ticket_datetimes[ $ticket_identifier ])
450
+				&& is_array($this->ticket_datetimes[ $ticket_identifier ])
451
+			) {
452
+				foreach ($this->ticket_datetimes[ $ticket_identifier ] as $ticket_datetime) {
453
+					if (isset($this->ticket_quantities[ $ticket_identifier ])) {
454
+						$this->datetime_spaces[ $ticket_datetime ] -= $tickets_sold;
455
+						// don't let values go below zero
456
+						$this->datetime_spaces[ $ticket_datetime ] = max(
457
+							$this->datetime_spaces[ $ticket_datetime ],
458
+							0
459
+						);
460
+						if ($this->debug) {
461
+							\EEH_Debug_Tools::printr(
462
+								"{$tickets_sold} sales for datetime {$ticket_datetime} ",
463
+								'subtracting',
464
+								__FILE__,
465
+								__LINE__
466
+							);
467
+						}
468
+					}
469
+				}
470
+			}
471
+		}
472
+	}
473
+
474
+
475
+	/**
476
+	 * @param string $datetime_identifier
477
+	 * @param array  $tickets
478
+	 */
479
+	private function trackAvailableSpacesForDatetimes($datetime_identifier, array $tickets)
480
+	{
481
+		// make sure a reg limit is set for the datetime
482
+		$reg_limit = isset($this->datetime_spaces[ $datetime_identifier ])
483
+			? $this->datetime_spaces[ $datetime_identifier ]
484
+			: 0;
485
+		// and bail if it is not
486
+		if (! $reg_limit) {
487
+			if ($this->debug) {
488
+				\EEH_Debug_Tools::printr('AT CAPACITY', " . {$datetime_identifier}", __FILE__, __LINE__);
489
+			}
490
+			return;
491
+		}
492
+		if ($this->debug) {
493
+			\EEH_Debug_Tools::printr($datetime_identifier, '* $datetime_identifier', __FILE__, __LINE__, 1);
494
+			\EEH_Debug_Tools::printr(
495
+				"{$reg_limit}",
496
+				'REG LIMIT',
497
+				__FILE__,
498
+				__LINE__
499
+			);
500
+		}
501
+		// number of allocated spaces always starts at zero
502
+		$spaces_allocated = 0;
503
+		$this->total_spaces[ $datetime_identifier ] = 0;
504
+		foreach ($tickets as $ticket_identifier) {
505
+			$spaces_allocated = $this->calculateAvailableSpacesForTicket(
506
+				$datetime_identifier,
507
+				$reg_limit,
508
+				$ticket_identifier,
509
+				$spaces_allocated
510
+			);
511
+		}
512
+		// spaces can't be negative
513
+		$spaces_allocated = max($spaces_allocated, 0);
514
+		if ($spaces_allocated) {
515
+			// track any non-zero values
516
+			$this->total_spaces[ $datetime_identifier ] += $spaces_allocated;
517
+			if ($this->debug) {
518
+				\EEH_Debug_Tools::printr((string) $spaces_allocated, ' . $spaces_allocated: ', __FILE__, __LINE__);
519
+			}
520
+		} else {
521
+			if ($this->debug) {
522
+				\EEH_Debug_Tools::printr(' ', ' . NO TICKETS AVAILABLE FOR DATETIME', __FILE__, __LINE__);
523
+			}
524
+		}
525
+		if ($this->debug) {
526
+			\EEH_Debug_Tools::printr(
527
+				$this->total_spaces[ $datetime_identifier ],
528
+				'$total_spaces',
529
+				__FILE__,
530
+				__LINE__
531
+			);
532
+			\EEH_Debug_Tools::printr($this->ticket_quantities, '$ticket_quantities', __FILE__, __LINE__);
533
+			\EEH_Debug_Tools::printr($this->datetime_spaces, 'datetime_spaces', __FILE__, __LINE__);
534
+		}
535
+	}
536
+
537
+
538
+	/**
539
+	 * @param string $datetime_identifier
540
+	 * @param int    $reg_limit
541
+	 * @param string $ticket_identifier
542
+	 * @param int    $spaces_allocated
543
+	 * @return int
544
+	 */
545
+	private function calculateAvailableSpacesForTicket(
546
+		$datetime_identifier,
547
+		$reg_limit,
548
+		$ticket_identifier,
549
+		$spaces_allocated
550
+	) {
551
+		// make sure ticket quantity is set
552
+		$ticket_quantity = isset($this->ticket_quantities[ $ticket_identifier ])
553
+			? $this->ticket_quantities[ $ticket_identifier ]
554
+			: 0;
555
+		if ($this->debug) {
556
+			\EEH_Debug_Tools::printr("{$spaces_allocated}", '$spaces_allocated', __FILE__, __LINE__);
557
+			\EEH_Debug_Tools::printr(
558
+				"{$ticket_quantity}",
559
+				"ticket $ticket_identifier quantity: ",
560
+				__FILE__,
561
+				__LINE__,
562
+				2
563
+			);
564
+		}
565
+		if ($ticket_quantity) {
566
+			if ($this->debug) {
567
+				\EEH_Debug_Tools::printr(
568
+					($spaces_allocated <= $reg_limit)
569
+						? 'true'
570
+						: 'false',
571
+					' . spaces_allocated <= reg_limit = ',
572
+					__FILE__,
573
+					__LINE__
574
+				);
575
+			}
576
+			// if the datetime is NOT at full capacity yet
577
+			if ($spaces_allocated <= $reg_limit) {
578
+				// then the maximum ticket quantity we can allocate is the lowest value of either:
579
+				//  the number of remaining spaces for the datetime, which is the limit - spaces already taken
580
+				//  or the maximum ticket quantity
581
+				$ticket_quantity = min($reg_limit - $spaces_allocated, $ticket_quantity);
582
+				// adjust the available quantity in our tracking array
583
+				$this->ticket_quantities[ $ticket_identifier ] -= $ticket_quantity;
584
+				// and increment spaces allocated for this datetime
585
+				$spaces_allocated += $ticket_quantity;
586
+				$at_capacity = $spaces_allocated >= $reg_limit;
587
+				if ($this->debug) {
588
+					\EEH_Debug_Tools::printr(
589
+						"{$ticket_quantity} {$ticket_identifier} tickets",
590
+						' > > allocate ',
591
+						__FILE__,
592
+						__LINE__,
593
+						3
594
+					);
595
+					if ($at_capacity) {
596
+						\EEH_Debug_Tools::printr('AT CAPACITY', " . {$datetime_identifier}", __FILE__, __LINE__, 3);
597
+					}
598
+				}
599
+				// now adjust all other datetimes that allow access to this ticket
600
+				$this->adjustDatetimes(
601
+					$datetime_identifier,
602
+					$ticket_identifier,
603
+					$ticket_quantity,
604
+					$at_capacity
605
+				);
606
+			}
607
+		}
608
+		return $spaces_allocated;
609
+	}
610
+
611
+
612
+	/**
613
+	 * subtracts ticket amounts from all datetime reg limits
614
+	 * that allow access to the ticket specified,
615
+	 * because that ticket could be used
616
+	 * to attend any of the datetimes it has access to
617
+	 *
618
+	 * @param string $datetime_identifier
619
+	 * @param string $ticket_identifier
620
+	 * @param bool   $at_capacity
621
+	 * @param int    $ticket_quantity
622
+	 */
623
+	private function adjustDatetimes(
624
+		$datetime_identifier,
625
+		$ticket_identifier,
626
+		$ticket_quantity,
627
+		$at_capacity
628
+	) {
629
+		/** @var array $datetime_tickets */
630
+		foreach ($this->datetime_tickets as $datetime_ID => $datetime_tickets) {
631
+			if ($datetime_ID !== $datetime_identifier || ! is_array($datetime_tickets)) {
632
+				continue;
633
+			}
634
+			$adjusted = $this->adjustDatetimeSpaces(
635
+				$datetime_ID,
636
+				$ticket_identifier,
637
+				$ticket_quantity
638
+			);
639
+			// skip to next ticket if nothing changed
640
+			if (! ($adjusted || $at_capacity)) {
641
+				continue;
642
+			}
643
+			// then all of it's tickets are now unavailable
644
+			foreach ($datetime_tickets as $datetime_ticket) {
645
+				if (($ticket_identifier === $datetime_ticket || $at_capacity)
646
+					&& isset($this->ticket_quantities[ $datetime_ticket ])
647
+					&& $this->ticket_quantities[ $datetime_ticket ] > 0
648
+				) {
649
+					if ($this->debug) {
650
+						\EEH_Debug_Tools::printr(
651
+							$datetime_ticket,
652
+							' . . . adjust ticket quantities for',
653
+							__FILE__,
654
+							__LINE__
655
+						);
656
+					}
657
+					// if this datetime is at full capacity, set any tracked available quantities to zero
658
+					// otherwise just subtract the ticket quantity
659
+					$new_quantity = $at_capacity
660
+						? 0
661
+						: $this->ticket_quantities[ $datetime_ticket ] - $ticket_quantity;
662
+					// don't let ticket quantity go below zero
663
+					$this->ticket_quantities[ $datetime_ticket ] = max($new_quantity, 0);
664
+					if ($this->debug) {
665
+						\EEH_Debug_Tools::printr(
666
+							$at_capacity
667
+								? "0 because Datetime {$datetime_identifier} is at capacity"
668
+								: "{$this->ticket_quantities[ $datetime_ticket ]}",
669
+							" . . . . {$datetime_ticket} quantity set to ",
670
+							__FILE__,
671
+							__LINE__
672
+						);
673
+					}
674
+				}
675
+				// but we also need to adjust spaces for any other datetimes this ticket has access to
676
+				if ($datetime_ticket === $ticket_identifier) {
677
+					if (isset($this->ticket_datetimes[ $datetime_ticket ])
678
+						&& is_array($this->ticket_datetimes[ $datetime_ticket ])
679
+					) {
680
+						if ($this->debug) {
681
+							\EEH_Debug_Tools::printr(
682
+								$datetime_ticket,
683
+								' . . adjust other Datetimes for',
684
+								__FILE__,
685
+								__LINE__
686
+							);
687
+						}
688
+						foreach ($this->ticket_datetimes[ $datetime_ticket ] as $datetime) {
689
+							// don't adjust the current datetime twice
690
+							if ($datetime !== $datetime_identifier) {
691
+								$this->adjustDatetimeSpaces(
692
+									$datetime,
693
+									$datetime_ticket,
694
+									$ticket_quantity
695
+								);
696
+							}
697
+						}
698
+					}
699
+				}
700
+			}
701
+		}
702
+	}
703
+
704
+	private function adjustDatetimeSpaces($datetime_identifier, $ticket_identifier, $ticket_quantity = 0)
705
+	{
706
+		// does datetime have spaces available?
707
+		// and does the supplied ticket have access to this datetime ?
708
+		if ($this->datetime_spaces[ $datetime_identifier ] > 0
709
+			&& isset($this->datetime_spaces[ $datetime_identifier ], $this->datetime_tickets[ $datetime_identifier ])
710
+			&& in_array($ticket_identifier, $this->datetime_tickets[ $datetime_identifier ], true)
711
+		) {
712
+			if ($this->debug) {
713
+				\EEH_Debug_Tools::printr($datetime_identifier, ' . . adjust Datetime Spaces for', __FILE__, __LINE__);
714
+				\EEH_Debug_Tools::printr(
715
+					"{$this->datetime_spaces[ $datetime_identifier ]}",
716
+					" . . current  {$datetime_identifier} spaces available",
717
+					__FILE__,
718
+					__LINE__
719
+				);
720
+			}
721
+			// then decrement the available spaces for the datetime
722
+			$this->datetime_spaces[ $datetime_identifier ] -= $ticket_quantity;
723
+			// but don't let quantities go below zero
724
+			$this->datetime_spaces[ $datetime_identifier ] = max(
725
+				$this->datetime_spaces[ $datetime_identifier ],
726
+				0
727
+			);
728
+			if ($this->debug) {
729
+				\EEH_Debug_Tools::printr(
730
+					"{$ticket_quantity}",
731
+					" . . . {$datetime_identifier} capacity reduced by",
732
+					__FILE__,
733
+					__LINE__
734
+				);
735
+			}
736
+			return true;
737
+		}
738
+		return false;
739
+	}
740 740
 }
Please login to merge, or discard this patch.
core/libraries/form_sections/inputs/EE_Float_Input.input.php 1 patch
Indentation   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -11,33 +11,33 @@
 block discarded – undo
11 11
 class EE_Float_Input extends EE_Form_Input_Base
12 12
 {
13 13
 
14
-    /**
15
-     * @param array $input_settings
16
-     * @throws InvalidArgumentException
17
-     */
18
-    public function __construct($input_settings = array())
19
-    {
20
-        $this->_set_display_strategy(
21
-            new EE_Number_Input_Display_Strategy(
22
-                isset($input_settings['min_value'])
23
-                    ? $input_settings['min_value']
24
-                    : null,
25
-                isset($input_settings['max_value'])
26
-                    ? $input_settings['max_value']
27
-                    : null,
28
-                isset($input_settings['step_value'])
29
-                    ? $input_settings['step_value']
30
-                    : null
31
-            )
32
-        );
33
-        $this->_set_normalization_strategy(new EE_Float_Normalization());
34
-        $this->_add_validation_strategy(
35
-            new EE_Float_Validation_Strategy(
36
-                isset($input_settings['validation_error_message'])
37
-                    ? $input_settings['validation_error_message']
38
-                    : null
39
-            )
40
-        );
41
-        parent::__construct($input_settings);
42
-    }
14
+	/**
15
+	 * @param array $input_settings
16
+	 * @throws InvalidArgumentException
17
+	 */
18
+	public function __construct($input_settings = array())
19
+	{
20
+		$this->_set_display_strategy(
21
+			new EE_Number_Input_Display_Strategy(
22
+				isset($input_settings['min_value'])
23
+					? $input_settings['min_value']
24
+					: null,
25
+				isset($input_settings['max_value'])
26
+					? $input_settings['max_value']
27
+					: null,
28
+				isset($input_settings['step_value'])
29
+					? $input_settings['step_value']
30
+					: null
31
+			)
32
+		);
33
+		$this->_set_normalization_strategy(new EE_Float_Normalization());
34
+		$this->_add_validation_strategy(
35
+			new EE_Float_Validation_Strategy(
36
+				isset($input_settings['validation_error_message'])
37
+					? $input_settings['validation_error_message']
38
+					: null
39
+			)
40
+		);
41
+		parent::__construct($input_settings);
42
+	}
43 43
 }
Please login to merge, or discard this patch.