Completed
Branch Gutenberg/master (b3a823)
by
unknown
73:52 queued 60:28
created
core/domain/entities/RegUrlLink.php 2 patches
Indentation   +83 added lines, -83 removed lines patch added patch discarded remove patch
@@ -18,97 +18,97 @@
 block discarded – undo
18 18
 class RegUrlLink
19 19
 {
20 20
 
21
-    /*
21
+	/*
22 22
      * @var string $reg_url_link
23 23
      */
24
-    private $reg_url_link;
24
+	private $reg_url_link;
25 25
 
26 26
 
27
-    /**
28
-     * @param string $reg_url_link
29
-     * @return RegUrlLink
30
-     * @throws InvalidArgumentException
31
-     */
32
-    public static function fromRegUrlLinkString($reg_url_link)
33
-    {
34
-        if (empty($reg_url_link) || ! is_string($reg_url_link)) {
35
-            throw new InvalidArgumentException(
36
-                __(
37
-                    'You must supply a valid non-empty string to generate a reg_url_link.',
38
-                    'event_espresso'
39
-                )
40
-            );
41
-        }
42
-        return new RegUrlLink(1, '', $reg_url_link);
43
-    }
27
+	/**
28
+	 * @param string $reg_url_link
29
+	 * @return RegUrlLink
30
+	 * @throws InvalidArgumentException
31
+	 */
32
+	public static function fromRegUrlLinkString($reg_url_link)
33
+	{
34
+		if (empty($reg_url_link) || ! is_string($reg_url_link)) {
35
+			throw new InvalidArgumentException(
36
+				__(
37
+					'You must supply a valid non-empty string to generate a reg_url_link.',
38
+					'event_espresso'
39
+				)
40
+			);
41
+		}
42
+		return new RegUrlLink(1, '', $reg_url_link);
43
+	}
44 44
 
45 45
 
46
-    /**
47
-     * @param EE_Registration $registration
48
-     * @return RegUrlLink
49
-     * @throws EntityNotFoundException
50
-     * @throws EE_Error
51
-     * @throws InvalidArgumentException
52
-     */
53
-    public static function fromRegistration(EE_Registration $registration)
54
-    {
55
-        return new RegUrlLink(
56
-            $registration->count(),
57
-            $registration->ticket_line_item()
58
-        );
59
-    }
46
+	/**
47
+	 * @param EE_Registration $registration
48
+	 * @return RegUrlLink
49
+	 * @throws EntityNotFoundException
50
+	 * @throws EE_Error
51
+	 * @throws InvalidArgumentException
52
+	 */
53
+	public static function fromRegistration(EE_Registration $registration)
54
+	{
55
+		return new RegUrlLink(
56
+			$registration->count(),
57
+			$registration->ticket_line_item()
58
+		);
59
+	}
60 60
 
61 61
 
62
-    /**
63
-     * CreateRegUrlLinkCommand constructor.
64
-     *
65
-     * @param int    $reg_count
66
-     * @param mixed  $base_code
67
-     * @param string $reg_url_link
68
-     * @throws InvalidArgumentException
69
-     */
70
-    public function __construct(
71
-        $reg_count = 1,
72
-        $base_code = '',
73
-        $reg_url_link = ''
74
-    ) {
75
-        if (! empty($reg_url_link) && is_string($reg_url_link)) {
76
-            $this->reg_url_link = apply_filters(
77
-                'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
78
-                $reg_url_link,
79
-                $reg_count,
80
-                $base_code,
81
-                $reg_url_link
82
-            );
83
-            return;
84
-        }
85
-        $reg_count = max(1, absint($reg_count));
86
-        $base_code = $base_code instanceof \EE_Line_Item ? $base_code->code() : $base_code;
87
-        if (empty($base_code) || ! is_string($base_code)) {
88
-            throw new InvalidArgumentException(
89
-                __(
90
-                    'You must supply a valid EE_Line_Item or a non-empty string to generate a reg_url_link.',
91
-                    'event_espresso'
92
-                )
93
-            );
94
-        }
95
-        $this->reg_url_link = (string) apply_filters(
96
-            'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
97
-            $reg_count . '-' . md5($base_code . microtime()),
98
-            $reg_count,
99
-            $base_code,
100
-            $reg_url_link
101
-        );
102
-    }
62
+	/**
63
+	 * CreateRegUrlLinkCommand constructor.
64
+	 *
65
+	 * @param int    $reg_count
66
+	 * @param mixed  $base_code
67
+	 * @param string $reg_url_link
68
+	 * @throws InvalidArgumentException
69
+	 */
70
+	public function __construct(
71
+		$reg_count = 1,
72
+		$base_code = '',
73
+		$reg_url_link = ''
74
+	) {
75
+		if (! empty($reg_url_link) && is_string($reg_url_link)) {
76
+			$this->reg_url_link = apply_filters(
77
+				'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
78
+				$reg_url_link,
79
+				$reg_count,
80
+				$base_code,
81
+				$reg_url_link
82
+			);
83
+			return;
84
+		}
85
+		$reg_count = max(1, absint($reg_count));
86
+		$base_code = $base_code instanceof \EE_Line_Item ? $base_code->code() : $base_code;
87
+		if (empty($base_code) || ! is_string($base_code)) {
88
+			throw new InvalidArgumentException(
89
+				__(
90
+					'You must supply a valid EE_Line_Item or a non-empty string to generate a reg_url_link.',
91
+					'event_espresso'
92
+				)
93
+			);
94
+		}
95
+		$this->reg_url_link = (string) apply_filters(
96
+			'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
97
+			$reg_count . '-' . md5($base_code . microtime()),
98
+			$reg_count,
99
+			$base_code,
100
+			$reg_url_link
101
+		);
102
+	}
103 103
 
104 104
 
105
-    /**
106
-     * Return the object as a string
107
-     *
108
-     * @return string
109
-     */
110
-    public function __toString()
111
-    {
112
-        return $this->reg_url_link;
113
-    }
105
+	/**
106
+	 * Return the object as a string
107
+	 *
108
+	 * @return string
109
+	 */
110
+	public function __toString()
111
+	{
112
+		return $this->reg_url_link;
113
+	}
114 114
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -72,7 +72,7 @@  discard block
 block discarded – undo
72 72
         $base_code = '',
73 73
         $reg_url_link = ''
74 74
     ) {
75
-        if (! empty($reg_url_link) && is_string($reg_url_link)) {
75
+        if ( ! empty($reg_url_link) && is_string($reg_url_link)) {
76 76
             $this->reg_url_link = apply_filters(
77 77
                 'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
78 78
                 $reg_url_link,
@@ -94,7 +94,7 @@  discard block
 block discarded – undo
94 94
         }
95 95
         $this->reg_url_link = (string) apply_filters(
96 96
             'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
97
-            $reg_count . '-' . md5($base_code . microtime()),
97
+            $reg_count.'-'.md5($base_code.microtime()),
98 98
             $reg_count,
99 99
             $base_code,
100 100
             $reg_url_link
Please login to merge, or discard this patch.
core/domain/entities/shortcodes/EspressoEvents.php 1 patch
Indentation   +118 added lines, -118 removed lines patch added patch discarded remove patch
@@ -30,132 +30,132 @@
 block discarded – undo
30 30
 {
31 31
 
32 32
 
33
-    /**
34
-     * the actual shortcode tag that gets registered with WordPress
35
-     *
36
-     * @return string
37
-     */
38
-    public function getTag()
39
-    {
40
-        return 'ESPRESSO_EVENTS';
41
-    }
33
+	/**
34
+	 * the actual shortcode tag that gets registered with WordPress
35
+	 *
36
+	 * @return string
37
+	 */
38
+	public function getTag()
39
+	{
40
+		return 'ESPRESSO_EVENTS';
41
+	}
42 42
 
43 43
 
44
-    /**
45
-     * the time in seconds to cache the results of the processShortcode() method
46
-     * 0 means the processShortcode() results will NOT be cached at all
47
-     *
48
-     * @return int
49
-     */
50
-    public function cacheExpiration()
51
-    {
52
-        return 0;
53
-    }
44
+	/**
45
+	 * the time in seconds to cache the results of the processShortcode() method
46
+	 * 0 means the processShortcode() results will NOT be cached at all
47
+	 *
48
+	 * @return int
49
+	 */
50
+	public function cacheExpiration()
51
+	{
52
+		return 0;
53
+	}
54 54
 
55 55
 
56
-    /**
57
-     * a place for adding any initialization code that needs to run prior to wp_header().
58
-     * this may be required for shortcodes that utilize a corresponding module,
59
-     * and need to enqueue assets for that module
60
-     *
61
-     * @return void
62
-     */
63
-    public function initializeShortcode()
64
-    {
65
-        EED_Events_Archive::instance()->event_list();
66
-        $this->shortcodeHasBeenInitialized();
67
-    }
56
+	/**
57
+	 * a place for adding any initialization code that needs to run prior to wp_header().
58
+	 * this may be required for shortcodes that utilize a corresponding module,
59
+	 * and need to enqueue assets for that module
60
+	 *
61
+	 * @return void
62
+	 */
63
+	public function initializeShortcode()
64
+	{
65
+		EED_Events_Archive::instance()->event_list();
66
+		$this->shortcodeHasBeenInitialized();
67
+	}
68 68
 
69 69
 
70
-    /**
71
-     * callback that runs when the shortcode is encountered in post content.
72
-     * IMPORTANT !!!
73
-     * remember that shortcode content should be RETURNED and NOT echoed out
74
-     *
75
-     * @param array $attributes
76
-     * @return string
77
-     */
78
-    public function processShortcode($attributes = array())
79
-    {
80
-        // grab attributes and merge with defaults
81
-        $attributes = $this->getAttributes($attributes);
82
-        // make sure we use the_excerpt()
83
-        add_filter('FHEE__EES_Espresso_Events__process_shortcode__true', '__return_true');
84
-        // apply query filters
85
-        add_filter('FHEE__EEH_Event_Query__apply_query_filters', '__return_true');
86
-        // run the query
87
-        global $wp_query;
88
-        // yes we have to overwrite the main wp query, but it's ok...
89
-        // we're going to reset it again below, so everything will be Hunky Dory (amazing album)
90
-        $wp_query = new EventListQuery($attributes);
91
-        // check what template is loaded and load filters accordingly
92
-        EED_Events_Archive::instance()->template_include('loop-espresso_events.php');
93
-        // load our template
94
-        $event_list = EEH_Template::locate_template(
95
-            'loop-espresso_events.php',
96
-            array(),
97
-            true,
98
-            true
99
-        );
100
-        // now reset the query and post data
101
-        wp_reset_query();
102
-        wp_reset_postdata();
103
-        EED_Events_Archive::remove_all_events_archive_filters();
104
-        // remove query filters
105
-        remove_filter('FHEE__EEH_Event_Query__apply_query_filters', '__return_true');
106
-        // pull our content from the output buffer and return it
107
-        return $event_list;
108
-    }
70
+	/**
71
+	 * callback that runs when the shortcode is encountered in post content.
72
+	 * IMPORTANT !!!
73
+	 * remember that shortcode content should be RETURNED and NOT echoed out
74
+	 *
75
+	 * @param array $attributes
76
+	 * @return string
77
+	 */
78
+	public function processShortcode($attributes = array())
79
+	{
80
+		// grab attributes and merge with defaults
81
+		$attributes = $this->getAttributes($attributes);
82
+		// make sure we use the_excerpt()
83
+		add_filter('FHEE__EES_Espresso_Events__process_shortcode__true', '__return_true');
84
+		// apply query filters
85
+		add_filter('FHEE__EEH_Event_Query__apply_query_filters', '__return_true');
86
+		// run the query
87
+		global $wp_query;
88
+		// yes we have to overwrite the main wp query, but it's ok...
89
+		// we're going to reset it again below, so everything will be Hunky Dory (amazing album)
90
+		$wp_query = new EventListQuery($attributes);
91
+		// check what template is loaded and load filters accordingly
92
+		EED_Events_Archive::instance()->template_include('loop-espresso_events.php');
93
+		// load our template
94
+		$event_list = EEH_Template::locate_template(
95
+			'loop-espresso_events.php',
96
+			array(),
97
+			true,
98
+			true
99
+		);
100
+		// now reset the query and post data
101
+		wp_reset_query();
102
+		wp_reset_postdata();
103
+		EED_Events_Archive::remove_all_events_archive_filters();
104
+		// remove query filters
105
+		remove_filter('FHEE__EEH_Event_Query__apply_query_filters', '__return_true');
106
+		// pull our content from the output buffer and return it
107
+		return $event_list;
108
+	}
109 109
 
110 110
 
111
-    /**
112
-     * merge incoming attributes with filtered defaults
113
-     *
114
-     * @param array $attributes
115
-     * @return array
116
-     */
117
-    private function getAttributes(array $attributes)
118
-    {
119
-        return array_merge(
120
-            (array) apply_filters(
121
-                'EES_Espresso_Events__process_shortcode__default_espresso_events_shortcode_atts',
122
-                array(
123
-                    'title'         => '',
124
-                    'limit'         => 10,
125
-                    'css_class'     => '',
126
-                    'show_expired'  => false,
127
-                    'month'         => '',
128
-                    'category_slug' => '',
129
-                    'order_by'      => 'start_date',
130
-                    'sort'          => 'ASC',
131
-                    'show_title'    => true,
132
-                )
133
-            ),
134
-            $attributes
135
-        );
136
-    }
111
+	/**
112
+	 * merge incoming attributes with filtered defaults
113
+	 *
114
+	 * @param array $attributes
115
+	 * @return array
116
+	 */
117
+	private function getAttributes(array $attributes)
118
+	{
119
+		return array_merge(
120
+			(array) apply_filters(
121
+				'EES_Espresso_Events__process_shortcode__default_espresso_events_shortcode_atts',
122
+				array(
123
+					'title'         => '',
124
+					'limit'         => 10,
125
+					'css_class'     => '',
126
+					'show_expired'  => false,
127
+					'month'         => '',
128
+					'category_slug' => '',
129
+					'order_by'      => 'start_date',
130
+					'sort'          => 'ASC',
131
+					'show_title'    => true,
132
+				)
133
+			),
134
+			$attributes
135
+		);
136
+	}
137 137
 
138 138
 
139
-    /**
140
-     * array for defining custom attribute sanitization callbacks,
141
-     * where keys match keys in your attributes array,
142
-     * and values represent the sanitization function you wish to be applied to that attribute.
143
-     * So for example, if you had an integer attribute named "event_id"
144
-     * that you wanted to be sanitized using absint(),
145
-     * then you would pass the following for your $custom_sanitization array:
146
-     *      array('event_id' => 'absint')
147
-     *
148
-     * @return array
149
-     */
150
-    protected function customAttributeSanitizationMap()
151
-    {
152
-        // the following get sanitized/whitelisted in EEH_Event_Query
153
-        return array(
154
-            'category_slug' => 'skip_sanitization',
155
-            'show_expired'  => 'skip_sanitization',
156
-            'order_by'      => 'skip_sanitization',
157
-            'month'         => 'skip_sanitization',
158
-            'sort'          => 'skip_sanitization',
159
-        );
160
-    }
139
+	/**
140
+	 * array for defining custom attribute sanitization callbacks,
141
+	 * where keys match keys in your attributes array,
142
+	 * and values represent the sanitization function you wish to be applied to that attribute.
143
+	 * So for example, if you had an integer attribute named "event_id"
144
+	 * that you wanted to be sanitized using absint(),
145
+	 * then you would pass the following for your $custom_sanitization array:
146
+	 *      array('event_id' => 'absint')
147
+	 *
148
+	 * @return array
149
+	 */
150
+	protected function customAttributeSanitizationMap()
151
+	{
152
+		// the following get sanitized/whitelisted in EEH_Event_Query
153
+		return array(
154
+			'category_slug' => 'skip_sanitization',
155
+			'show_expired'  => 'skip_sanitization',
156
+			'order_by'      => 'skip_sanitization',
157
+			'month'         => 'skip_sanitization',
158
+			'sort'          => 'skip_sanitization',
159
+		);
160
+	}
161 161
 }
Please login to merge, or discard this patch.
core/domain/entities/shortcodes/EspressoEventAttendees.php 2 patches
Indentation   +303 added lines, -303 removed lines patch added patch discarded remove patch
@@ -27,333 +27,333 @@
 block discarded – undo
27 27
 class EspressoEventAttendees extends EspressoShortcode
28 28
 {
29 29
 
30
-    private $query_params = array(
31
-        0 => array(),
32
-    );
30
+	private $query_params = array(
31
+		0 => array(),
32
+	);
33 33
 
34
-    private $template_args = array(
35
-        'contacts' => array(),
36
-        'event'    => null,
37
-        'datetime' => null,
38
-        'ticket'   => null,
39
-    );
34
+	private $template_args = array(
35
+		'contacts' => array(),
36
+		'event'    => null,
37
+		'datetime' => null,
38
+		'ticket'   => null,
39
+	);
40 40
 
41
-    /**
42
-     * the actual shortcode tag that gets registered with WordPress
43
-     *
44
-     * @return string
45
-     */
46
-    public function getTag()
47
-    {
48
-        return 'ESPRESSO_EVENT_ATTENDEES';
49
-    }
41
+	/**
42
+	 * the actual shortcode tag that gets registered with WordPress
43
+	 *
44
+	 * @return string
45
+	 */
46
+	public function getTag()
47
+	{
48
+		return 'ESPRESSO_EVENT_ATTENDEES';
49
+	}
50 50
 
51 51
 
52
-    /**
53
-     * the time in seconds to cache the results of the processShortcode() method
54
-     * 0 means the processShortcode() results will NOT be cached at all
55
-     *
56
-     * @return int
57
-     */
58
-    public function cacheExpiration()
59
-    {
60
-        return 0;
61
-    }
52
+	/**
53
+	 * the time in seconds to cache the results of the processShortcode() method
54
+	 * 0 means the processShortcode() results will NOT be cached at all
55
+	 *
56
+	 * @return int
57
+	 */
58
+	public function cacheExpiration()
59
+	{
60
+		return 0;
61
+	}
62 62
 
63 63
 
64
-    /**
65
-     * a place for adding any initialization code that needs to run prior to wp_header().
66
-     * this may be required for shortcodes that utilize a corresponding module,
67
-     * and need to enqueue assets for that module
68
-     *
69
-     * @return void
70
-     */
71
-    public function initializeShortcode()
72
-    {
73
-        $this->shortcodeHasBeenInitialized();
74
-    }
64
+	/**
65
+	 * a place for adding any initialization code that needs to run prior to wp_header().
66
+	 * this may be required for shortcodes that utilize a corresponding module,
67
+	 * and need to enqueue assets for that module
68
+	 *
69
+	 * @return void
70
+	 */
71
+	public function initializeShortcode()
72
+	{
73
+		$this->shortcodeHasBeenInitialized();
74
+	}
75 75
 
76 76
 
77
-    /**
78
-     * process_shortcode - ESPRESSO_EVENT_ATTENDEES - Returns a list of attendees to an event.
79
-     *  [ESPRESSO_EVENT_ATTENDEES]
80
-     *  - defaults to attendees for earliest active event, or earliest upcoming event.
81
-     *  [ESPRESSO_EVENT_ATTENDEES event_id=123]
82
-     *  - attendees for specific event.
83
-     *  [ESPRESSO_EVENT_ATTENDEES datetime_id=245]
84
-     *  - attendees for a specific datetime.
85
-     *  [ESPRESSO_EVENT_ATTENDEES ticket_id=123]
86
-     *  - attendees for a specific ticket.
87
-     *  [ESPRESSO_EVENT_ATTENDEES status=all]
88
-     *  - specific registration status (use status id) or all for all attendees regardless of status.
89
-     *  Note default is to only return approved attendees
90
-     *  [ESPRESSO_EVENT_ATTENDEES show_gravatar=true]
91
-     *  - default is to not return gravatar.  Otherwise if this is set then return gravatar for email address given.
92
-     *  [ESPRESSO_EVENT_ATTENDEES display_on_archives=true]
93
-     *  - default is to not display attendees list on archive pages.
94
-     * Note: because of the relationship between event_id, ticket_id, and datetime_id:
95
-     * If more than one of those params is included, then preference is given to the following:
96
-     *  - event_id is used whenever its present and any others are ignored.
97
-     *  - if no event_id then datetime is used whenever its present and any others are ignored.
98
-     *  - otherwise ticket_id is used if present.
99
-     *
100
-     * @param array $attributes
101
-     * @return string
102
-     * @throws EE_Error
103
-     * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
104
-     * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
105
-     * @throws \InvalidArgumentException
106
-     */
107
-    public function processShortcode($attributes = array())
108
-    {
109
-        // grab attributes and merge with defaults
110
-        $attributes = $this->getAttributes((array) $attributes);
111
-        $archive = is_archive();
112
-        $display_on_archives = filter_var($attributes['display_on_archives'], FILTER_VALIDATE_BOOLEAN);
113
-        // don't display on archives unless 'display_on_archives' is true
114
-        if ($archive && ! $display_on_archives) {
115
-            return '';
116
-        }
77
+	/**
78
+	 * process_shortcode - ESPRESSO_EVENT_ATTENDEES - Returns a list of attendees to an event.
79
+	 *  [ESPRESSO_EVENT_ATTENDEES]
80
+	 *  - defaults to attendees for earliest active event, or earliest upcoming event.
81
+	 *  [ESPRESSO_EVENT_ATTENDEES event_id=123]
82
+	 *  - attendees for specific event.
83
+	 *  [ESPRESSO_EVENT_ATTENDEES datetime_id=245]
84
+	 *  - attendees for a specific datetime.
85
+	 *  [ESPRESSO_EVENT_ATTENDEES ticket_id=123]
86
+	 *  - attendees for a specific ticket.
87
+	 *  [ESPRESSO_EVENT_ATTENDEES status=all]
88
+	 *  - specific registration status (use status id) or all for all attendees regardless of status.
89
+	 *  Note default is to only return approved attendees
90
+	 *  [ESPRESSO_EVENT_ATTENDEES show_gravatar=true]
91
+	 *  - default is to not return gravatar.  Otherwise if this is set then return gravatar for email address given.
92
+	 *  [ESPRESSO_EVENT_ATTENDEES display_on_archives=true]
93
+	 *  - default is to not display attendees list on archive pages.
94
+	 * Note: because of the relationship between event_id, ticket_id, and datetime_id:
95
+	 * If more than one of those params is included, then preference is given to the following:
96
+	 *  - event_id is used whenever its present and any others are ignored.
97
+	 *  - if no event_id then datetime is used whenever its present and any others are ignored.
98
+	 *  - otherwise ticket_id is used if present.
99
+	 *
100
+	 * @param array $attributes
101
+	 * @return string
102
+	 * @throws EE_Error
103
+	 * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
104
+	 * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
105
+	 * @throws \InvalidArgumentException
106
+	 */
107
+	public function processShortcode($attributes = array())
108
+	{
109
+		// grab attributes and merge with defaults
110
+		$attributes = $this->getAttributes((array) $attributes);
111
+		$archive = is_archive();
112
+		$display_on_archives = filter_var($attributes['display_on_archives'], FILTER_VALIDATE_BOOLEAN);
113
+		// don't display on archives unless 'display_on_archives' is true
114
+		if ($archive && ! $display_on_archives) {
115
+			return '';
116
+		}
117 117
 
118
-        try {
119
-            $this->setBaseTemplateArguments($attributes);
120
-            $this->validateEntities($attributes);
121
-            $this->setBaseQueryParams();
122
-        } catch (EntityNotFoundException $e) {
123
-            if (WP_DEBUG) {
124
-                return '<div class="important-notice ee-error">'
125
-                       . $e->getMessage()
126
-                       . '</div>';
127
-            }
128
-            return '';
129
-        }
130
-        $this->setAdditionalQueryParams($attributes);
131
-        // get contacts!
132
-        $this->template_args['contacts'] = EEM_Attendee::instance()->get_all($this->query_params);
133
-        // all set let's load up the template and return.
134
-        return EEH_Template::locate_template(
135
-            'loop-espresso_event_attendees.php',
136
-            $this->template_args
137
-        );
138
-    }
118
+		try {
119
+			$this->setBaseTemplateArguments($attributes);
120
+			$this->validateEntities($attributes);
121
+			$this->setBaseQueryParams();
122
+		} catch (EntityNotFoundException $e) {
123
+			if (WP_DEBUG) {
124
+				return '<div class="important-notice ee-error">'
125
+					   . $e->getMessage()
126
+					   . '</div>';
127
+			}
128
+			return '';
129
+		}
130
+		$this->setAdditionalQueryParams($attributes);
131
+		// get contacts!
132
+		$this->template_args['contacts'] = EEM_Attendee::instance()->get_all($this->query_params);
133
+		// all set let's load up the template and return.
134
+		return EEH_Template::locate_template(
135
+			'loop-espresso_event_attendees.php',
136
+			$this->template_args
137
+		);
138
+	}
139 139
 
140 140
 
141
-    /**
142
-     * merge incoming attributes with filtered defaults
143
-     *
144
-     * @param array $attributes
145
-     * @return array
146
-     */
147
-    private function getAttributes(array $attributes)
148
-    {
149
-        return (array) apply_filters(
150
-            'EES_Espresso_Event_Attendees__process_shortcode__default_shortcode_atts',
151
-            $attributes + array(
152
-                'event_id'            => null,
153
-                'datetime_id'         => null,
154
-                'ticket_id'           => null,
155
-                'status'              => EEM_Registration::status_id_approved,
156
-                'show_gravatar'       => false,
157
-                'display_on_archives' => false,
158
-            )
159
-        );
160
-    }
141
+	/**
142
+	 * merge incoming attributes with filtered defaults
143
+	 *
144
+	 * @param array $attributes
145
+	 * @return array
146
+	 */
147
+	private function getAttributes(array $attributes)
148
+	{
149
+		return (array) apply_filters(
150
+			'EES_Espresso_Event_Attendees__process_shortcode__default_shortcode_atts',
151
+			$attributes + array(
152
+				'event_id'            => null,
153
+				'datetime_id'         => null,
154
+				'ticket_id'           => null,
155
+				'status'              => EEM_Registration::status_id_approved,
156
+				'show_gravatar'       => false,
157
+				'display_on_archives' => false,
158
+			)
159
+		);
160
+	}
161 161
 
162 162
 
163
-    /**
164
-     * Set all the base template arguments from the incoming attributes.
165
-     * * Note: because of the relationship between event_id, ticket_id, and datetime_id:
166
-     * If more than one of those params is included, then preference is given to the following:
167
-     *  - event_id is used whenever its present and any others are ignored.
168
-     *  - if no event_id then datetime is used whenever its present and any others are ignored.
169
-     *  - otherwise ticket_id is used if present.
170
-     *
171
-     * @param array $attributes
172
-     * @throws EE_Error
173
-     * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
174
-     * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
175
-     * @throws \InvalidArgumentException
176
-     */
177
-    private function setBaseTemplateArguments(array $attributes)
178
-    {
179
-        $this->template_args['show_gravatar'] = $attributes['show_gravatar'];
180
-        $this->template_args['event'] = $this->getEvent($attributes);
181
-        $this->template_args['datetime'] = empty($attributes['event_id'])
182
-            ? $this->getDatetime($attributes)
183
-            : null;
184
-        $this->template_args['ticket'] = empty($attributes['datetime_id']) && empty($attributes['event_id'])
185
-            ? $this->getTicket($attributes)
186
-            : null;
187
-    }
163
+	/**
164
+	 * Set all the base template arguments from the incoming attributes.
165
+	 * * Note: because of the relationship between event_id, ticket_id, and datetime_id:
166
+	 * If more than one of those params is included, then preference is given to the following:
167
+	 *  - event_id is used whenever its present and any others are ignored.
168
+	 *  - if no event_id then datetime is used whenever its present and any others are ignored.
169
+	 *  - otherwise ticket_id is used if present.
170
+	 *
171
+	 * @param array $attributes
172
+	 * @throws EE_Error
173
+	 * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
174
+	 * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
175
+	 * @throws \InvalidArgumentException
176
+	 */
177
+	private function setBaseTemplateArguments(array $attributes)
178
+	{
179
+		$this->template_args['show_gravatar'] = $attributes['show_gravatar'];
180
+		$this->template_args['event'] = $this->getEvent($attributes);
181
+		$this->template_args['datetime'] = empty($attributes['event_id'])
182
+			? $this->getDatetime($attributes)
183
+			: null;
184
+		$this->template_args['ticket'] = empty($attributes['datetime_id']) && empty($attributes['event_id'])
185
+			? $this->getTicket($attributes)
186
+			: null;
187
+	}
188 188
 
189 189
 
190
-    /**
191
-     * Validates the presence of entities for the given attribute values.
192
-     *
193
-     * @param array $attributes
194
-     * @throws EntityNotFoundException
195
-     */
196
-    private function validateEntities(array $attributes)
197
-    {
198
-        if (! $this->template_args['event'] instanceof EE_Event
199
-            || (
200
-                empty($attributes['event_id'])
201
-                && $attributes['datetime_id']
202
-                && ! $this->template_args['datetime'] instanceof EE_Datetime
203
-            )
204
-            || (
205
-                empty($attributes['event_id'])
206
-                && empty($attributes['datetime_id'])
207
-                && $attributes['ticket_id']
208
-                && ! $this->template_args['ticket'] instanceof EE_Ticket
209
-            )
210
-        ) {
211
-            throw new EntityNotFoundException(
212
-                '',
213
-                '',
214
-                esc_html__(
215
-                    'The [ESPRESSO_EVENT_ATTENDEES] shortcode has been used incorrectly.  Please double check the arguments you used for any typos.  In the case of ID type arguments, its possible the given ID does not correspond to existing data in the database.',
216
-                    'event_espresso'
217
-                )
218
-            );
219
-        }
220
-    }
190
+	/**
191
+	 * Validates the presence of entities for the given attribute values.
192
+	 *
193
+	 * @param array $attributes
194
+	 * @throws EntityNotFoundException
195
+	 */
196
+	private function validateEntities(array $attributes)
197
+	{
198
+		if (! $this->template_args['event'] instanceof EE_Event
199
+			|| (
200
+				empty($attributes['event_id'])
201
+				&& $attributes['datetime_id']
202
+				&& ! $this->template_args['datetime'] instanceof EE_Datetime
203
+			)
204
+			|| (
205
+				empty($attributes['event_id'])
206
+				&& empty($attributes['datetime_id'])
207
+				&& $attributes['ticket_id']
208
+				&& ! $this->template_args['ticket'] instanceof EE_Ticket
209
+			)
210
+		) {
211
+			throw new EntityNotFoundException(
212
+				'',
213
+				'',
214
+				esc_html__(
215
+					'The [ESPRESSO_EVENT_ATTENDEES] shortcode has been used incorrectly.  Please double check the arguments you used for any typos.  In the case of ID type arguments, its possible the given ID does not correspond to existing data in the database.',
216
+					'event_espresso'
217
+				)
218
+			);
219
+		}
220
+	}
221 221
 
222 222
 
223
-    /**
224
-     * Sets the query params for the base query elements.
225
-     */
226
-    private function setBaseQueryParams()
227
-    {
228
-        switch (true) {
229
-            case $this->template_args['datetime'] instanceof EE_Datetime:
230
-                $this->query_params = array(
231
-                    0                          => array(
232
-                        'Registration.Ticket.Datetime.DTT_ID' => $this->template_args['datetime']->ID(),
233
-                    ),
234
-                    'default_where_conditions' => 'this_model_only',
235
-                );
236
-                break;
237
-            case $this->template_args['ticket'] instanceof EE_Ticket:
238
-                $this->query_params[0] = array(
239
-                    'Registration.TKT_ID' => $this->template_args['ticket']->ID(),
240
-                );
241
-                break;
242
-            case $this->template_args['event'] instanceof EE_Event:
243
-                $this->query_params[0] = array(
244
-                    'Registration.EVT_ID' => $this->template_args['event']->ID(),
245
-                );
246
-                break;
247
-        }
248
-    }
223
+	/**
224
+	 * Sets the query params for the base query elements.
225
+	 */
226
+	private function setBaseQueryParams()
227
+	{
228
+		switch (true) {
229
+			case $this->template_args['datetime'] instanceof EE_Datetime:
230
+				$this->query_params = array(
231
+					0                          => array(
232
+						'Registration.Ticket.Datetime.DTT_ID' => $this->template_args['datetime']->ID(),
233
+					),
234
+					'default_where_conditions' => 'this_model_only',
235
+				);
236
+				break;
237
+			case $this->template_args['ticket'] instanceof EE_Ticket:
238
+				$this->query_params[0] = array(
239
+					'Registration.TKT_ID' => $this->template_args['ticket']->ID(),
240
+				);
241
+				break;
242
+			case $this->template_args['event'] instanceof EE_Event:
243
+				$this->query_params[0] = array(
244
+					'Registration.EVT_ID' => $this->template_args['event']->ID(),
245
+				);
246
+				break;
247
+		}
248
+	}
249 249
 
250 250
 
251
-    /**
252
-     * @param array $attributes
253
-     * @return EE_Event|null
254
-     * @throws EE_Error
255
-     * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
256
-     * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
257
-     * @throws \InvalidArgumentException
258
-     */
259
-    private function getEvent(array $attributes)
260
-    {
261
-        switch (true) {
262
-            case ! empty($attributes['event_id']):
263
-                $event = EEM_Event::instance()->get_one_by_ID($attributes['event_id']);
264
-                break;
265
-            case ! empty($attributes['datetime_id']):
266
-                $event = EEM_Event::instance()->get_one(array(
267
-                    array(
268
-                        'Datetime.DTT_ID' => $attributes['datetime_id'],
269
-                    ),
270
-                ));
271
-                break;
272
-            case ! empty($attributes['ticket_id']):
273
-                $event = EEM_Event::instance()->get_one(array(
274
-                    array(
275
-                        'Datetime.Ticket.TKT_ID' => $attributes['ticket_id'],
276
-                    ),
277
-                ));
278
-                break;
279
-            case is_espresso_event():
280
-                $event = EEH_Event_View::get_event();
281
-                break;
282
-            default:
283
-                // one last shot...
284
-                // try getting the earliest active event
285
-                $events = EEM_Event::instance()->get_active_events(array(
286
-                    'limit'    => 1,
287
-                    'order_by' => array('Datetime.DTT_EVT_start' => 'ASC'),
288
-                ));
289
-                //  if none then get the next upcoming
290
-                $events = empty($events)
291
-                    ? EEM_Event::instance()->get_upcoming_events(array(
292
-                        'limit'    => 1,
293
-                        'order_by' => array('Datetime.DTT_EVT_start' => 'ASC'),
294
-                    ))
295
-                    : $events;
296
-                $event = reset($events);
297
-        }
251
+	/**
252
+	 * @param array $attributes
253
+	 * @return EE_Event|null
254
+	 * @throws EE_Error
255
+	 * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
256
+	 * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
257
+	 * @throws \InvalidArgumentException
258
+	 */
259
+	private function getEvent(array $attributes)
260
+	{
261
+		switch (true) {
262
+			case ! empty($attributes['event_id']):
263
+				$event = EEM_Event::instance()->get_one_by_ID($attributes['event_id']);
264
+				break;
265
+			case ! empty($attributes['datetime_id']):
266
+				$event = EEM_Event::instance()->get_one(array(
267
+					array(
268
+						'Datetime.DTT_ID' => $attributes['datetime_id'],
269
+					),
270
+				));
271
+				break;
272
+			case ! empty($attributes['ticket_id']):
273
+				$event = EEM_Event::instance()->get_one(array(
274
+					array(
275
+						'Datetime.Ticket.TKT_ID' => $attributes['ticket_id'],
276
+					),
277
+				));
278
+				break;
279
+			case is_espresso_event():
280
+				$event = EEH_Event_View::get_event();
281
+				break;
282
+			default:
283
+				// one last shot...
284
+				// try getting the earliest active event
285
+				$events = EEM_Event::instance()->get_active_events(array(
286
+					'limit'    => 1,
287
+					'order_by' => array('Datetime.DTT_EVT_start' => 'ASC'),
288
+				));
289
+				//  if none then get the next upcoming
290
+				$events = empty($events)
291
+					? EEM_Event::instance()->get_upcoming_events(array(
292
+						'limit'    => 1,
293
+						'order_by' => array('Datetime.DTT_EVT_start' => 'ASC'),
294
+					))
295
+					: $events;
296
+				$event = reset($events);
297
+		}
298 298
 
299
-        return $event instanceof EE_Event ? $event : null;
300
-    }
299
+		return $event instanceof EE_Event ? $event : null;
300
+	}
301 301
 
302 302
 
303
-    /**
304
-     * @param array $attributes
305
-     * @return EE_Datetime|null
306
-     * @throws EE_Error
307
-     * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
308
-     * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
309
-     * @throws \InvalidArgumentException
310
-     */
311
-    private function getDatetime(array $attributes)
312
-    {
313
-        if (! empty($attributes['datetime_id'])) {
314
-            $datetime = EEM_Datetime::instance()->get_one_by_ID($attributes['datetime_id']);
315
-            if ($datetime instanceof EE_Datetime) {
316
-                return $datetime;
317
-            }
318
-        }
319
-        return null;
320
-    }
303
+	/**
304
+	 * @param array $attributes
305
+	 * @return EE_Datetime|null
306
+	 * @throws EE_Error
307
+	 * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
308
+	 * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
309
+	 * @throws \InvalidArgumentException
310
+	 */
311
+	private function getDatetime(array $attributes)
312
+	{
313
+		if (! empty($attributes['datetime_id'])) {
314
+			$datetime = EEM_Datetime::instance()->get_one_by_ID($attributes['datetime_id']);
315
+			if ($datetime instanceof EE_Datetime) {
316
+				return $datetime;
317
+			}
318
+		}
319
+		return null;
320
+	}
321 321
 
322 322
 
323
-    /**
324
-     * @param array $attributes
325
-     * @return \EE_Base_Class|EE_Ticket|null
326
-     * @throws EE_Error
327
-     * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
328
-     * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
329
-     * @throws \InvalidArgumentException
330
-     */
331
-    private function getTicket(array $attributes)
332
-    {
333
-        if (! empty($attributes['ticket_id'])) {
334
-            $ticket = EEM_Ticket::instance()->get_one_by_ID($attributes['ticket_id']);
335
-            if ($ticket instanceof EE_Ticket) {
336
-                return $ticket;
337
-            }
338
-        }
339
-        return null;
340
-    }
323
+	/**
324
+	 * @param array $attributes
325
+	 * @return \EE_Base_Class|EE_Ticket|null
326
+	 * @throws EE_Error
327
+	 * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
328
+	 * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
329
+	 * @throws \InvalidArgumentException
330
+	 */
331
+	private function getTicket(array $attributes)
332
+	{
333
+		if (! empty($attributes['ticket_id'])) {
334
+			$ticket = EEM_Ticket::instance()->get_one_by_ID($attributes['ticket_id']);
335
+			if ($ticket instanceof EE_Ticket) {
336
+				return $ticket;
337
+			}
338
+		}
339
+		return null;
340
+	}
341 341
 
342 342
 
343
-    /**
344
-     * @param array $attributes
345
-     * @throws EE_Error
346
-     */
347
-    private function setAdditionalQueryParams(array $attributes)
348
-    {
349
-        $reg_status_array = EEM_Registration::reg_status_array();
350
-        if ($attributes['status'] !== 'all' && isset($reg_status_array[ $attributes['status'] ])) {
351
-            $this->query_params[0]['Registration.STS_ID'] = $attributes['status'];
352
-        }
353
-        $this->query_params['group_by'] = array('ATT_ID');
354
-        $this->query_params['order_by'] = (array) apply_filters(
355
-            'FHEE__EES_Espresso_Event_Attendees__process_shortcode__order_by',
356
-            array('ATT_lname' => 'ASC', 'ATT_fname' => 'ASC')
357
-        );
358
-    }
343
+	/**
344
+	 * @param array $attributes
345
+	 * @throws EE_Error
346
+	 */
347
+	private function setAdditionalQueryParams(array $attributes)
348
+	{
349
+		$reg_status_array = EEM_Registration::reg_status_array();
350
+		if ($attributes['status'] !== 'all' && isset($reg_status_array[ $attributes['status'] ])) {
351
+			$this->query_params[0]['Registration.STS_ID'] = $attributes['status'];
352
+		}
353
+		$this->query_params['group_by'] = array('ATT_ID');
354
+		$this->query_params['order_by'] = (array) apply_filters(
355
+			'FHEE__EES_Espresso_Event_Attendees__process_shortcode__order_by',
356
+			array('ATT_lname' => 'ASC', 'ATT_fname' => 'ASC')
357
+		);
358
+	}
359 359
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -195,7 +195,7 @@  discard block
 block discarded – undo
195 195
      */
196 196
     private function validateEntities(array $attributes)
197 197
     {
198
-        if (! $this->template_args['event'] instanceof EE_Event
198
+        if ( ! $this->template_args['event'] instanceof EE_Event
199 199
             || (
200 200
                 empty($attributes['event_id'])
201 201
                 && $attributes['datetime_id']
@@ -310,7 +310,7 @@  discard block
 block discarded – undo
310 310
      */
311 311
     private function getDatetime(array $attributes)
312 312
     {
313
-        if (! empty($attributes['datetime_id'])) {
313
+        if ( ! empty($attributes['datetime_id'])) {
314 314
             $datetime = EEM_Datetime::instance()->get_one_by_ID($attributes['datetime_id']);
315 315
             if ($datetime instanceof EE_Datetime) {
316 316
                 return $datetime;
@@ -330,7 +330,7 @@  discard block
 block discarded – undo
330 330
      */
331 331
     private function getTicket(array $attributes)
332 332
     {
333
-        if (! empty($attributes['ticket_id'])) {
333
+        if ( ! empty($attributes['ticket_id'])) {
334 334
             $ticket = EEM_Ticket::instance()->get_one_by_ID($attributes['ticket_id']);
335 335
             if ($ticket instanceof EE_Ticket) {
336 336
                 return $ticket;
@@ -347,7 +347,7 @@  discard block
 block discarded – undo
347 347
     private function setAdditionalQueryParams(array $attributes)
348 348
     {
349 349
         $reg_status_array = EEM_Registration::reg_status_array();
350
-        if ($attributes['status'] !== 'all' && isset($reg_status_array[ $attributes['status'] ])) {
350
+        if ($attributes['status'] !== 'all' && isset($reg_status_array[$attributes['status']])) {
351 351
             $this->query_params[0]['Registration.STS_ID'] = $attributes['status'];
352 352
         }
353 353
         $this->query_params['group_by'] = array('ATT_ID');
Please login to merge, or discard this patch.
core/domain/entities/shortcodes/EspressoCancelled.php 1 patch
Indentation   +68 added lines, -68 removed lines patch added patch discarded remove patch
@@ -20,78 +20,78 @@
 block discarded – undo
20 20
 {
21 21
 
22 22
 
23
-    /**
24
-     * the actual shortcode tag that gets registered with WordPress
25
-     *
26
-     * @return string
27
-     */
28
-    public function getTag()
29
-    {
30
-        return 'ESPRESSO_CANCELLED';
31
-    }
23
+	/**
24
+	 * the actual shortcode tag that gets registered with WordPress
25
+	 *
26
+	 * @return string
27
+	 */
28
+	public function getTag()
29
+	{
30
+		return 'ESPRESSO_CANCELLED';
31
+	}
32 32
 
33 33
 
34
-    /**
35
-     * the time in seconds to cache the results of the processShortcode() method
36
-     * 0 means the processShortcode() results will NOT be cached at all
37
-     *
38
-     * @return int
39
-     */
40
-    public function cacheExpiration()
41
-    {
42
-        return 0;
43
-    }
34
+	/**
35
+	 * the time in seconds to cache the results of the processShortcode() method
36
+	 * 0 means the processShortcode() results will NOT be cached at all
37
+	 *
38
+	 * @return int
39
+	 */
40
+	public function cacheExpiration()
41
+	{
42
+		return 0;
43
+	}
44 44
 
45 45
 
46
-    /**
47
-     * a place for adding any initialization code that needs to run prior to wp_header().
48
-     * this may be required for shortcodes that utilize a corresponding module,
49
-     * and need to enqueue assets for that module
50
-     *
51
-     * @return void
52
-     */
53
-    public function initializeShortcode()
54
-    {
55
-        $this->shortcodeHasBeenInitialized();
56
-    }
46
+	/**
47
+	 * a place for adding any initialization code that needs to run prior to wp_header().
48
+	 * this may be required for shortcodes that utilize a corresponding module,
49
+	 * and need to enqueue assets for that module
50
+	 *
51
+	 * @return void
52
+	 */
53
+	public function initializeShortcode()
54
+	{
55
+		$this->shortcodeHasBeenInitialized();
56
+	}
57 57
 
58 58
 
59
-    /**
60
-     * callback that runs when the shortcode is encountered in post content.
61
-     * IMPORTANT !!!
62
-     * remember that shortcode content should be RETURNED and NOT echoed out
63
-     *
64
-     * @param array $attributes
65
-     * @return string
66
-     * @throws \EE_Error
67
-     */
68
-    public function processShortcode($attributes = array())
69
-    {
70
-        $transaction = EE_Registry::instance()->SSN->get_session_data('transaction');
71
-        if ($transaction instanceof EE_Transaction) {
72
-            do_action('AHEE__EES_Espresso_Cancelled__process_shortcode__transaction', $transaction);
73
-            $registrations = $transaction->registrations();
74
-            foreach ($registrations as $registration) {
75
-                if ($registration instanceof EE_Registration) {
76
-                    do_action('AHEE__EES_Espresso_Cancelled__process_shortcode__registration', $registration);
77
-                }
78
-            }
79
-        }
80
-        do_action('AHEE__EES_Espresso_Cancelled__process_shortcode__clear_session');
81
-        // remove all unwanted records from the db
82
-        if (EE_Registry::instance()->CART instanceof EE_Cart) {
83
-            EE_Registry::instance()->CART->delete_cart();
84
-        }
85
-        // phpcs:disable WordPress.WP.I18n.UnorderedPlaceholdersText
86
-        EE_Registry::instance()->SSN->clear_session(__CLASS__, __FUNCTION__);
87
-        return sprintf(
88
-            __(
89
-                '%sAll unsaved registration information entered during this session has been deleted.%s',
90
-                'event_espresso'
91
-            ),
92
-            '<p class="ee-registrations-cancelled-pg ee-attention">',
93
-            '</p>'
94
-        );
95
-        // phpcs:enable
96
-    }
59
+	/**
60
+	 * callback that runs when the shortcode is encountered in post content.
61
+	 * IMPORTANT !!!
62
+	 * remember that shortcode content should be RETURNED and NOT echoed out
63
+	 *
64
+	 * @param array $attributes
65
+	 * @return string
66
+	 * @throws \EE_Error
67
+	 */
68
+	public function processShortcode($attributes = array())
69
+	{
70
+		$transaction = EE_Registry::instance()->SSN->get_session_data('transaction');
71
+		if ($transaction instanceof EE_Transaction) {
72
+			do_action('AHEE__EES_Espresso_Cancelled__process_shortcode__transaction', $transaction);
73
+			$registrations = $transaction->registrations();
74
+			foreach ($registrations as $registration) {
75
+				if ($registration instanceof EE_Registration) {
76
+					do_action('AHEE__EES_Espresso_Cancelled__process_shortcode__registration', $registration);
77
+				}
78
+			}
79
+		}
80
+		do_action('AHEE__EES_Espresso_Cancelled__process_shortcode__clear_session');
81
+		// remove all unwanted records from the db
82
+		if (EE_Registry::instance()->CART instanceof EE_Cart) {
83
+			EE_Registry::instance()->CART->delete_cart();
84
+		}
85
+		// phpcs:disable WordPress.WP.I18n.UnorderedPlaceholdersText
86
+		EE_Registry::instance()->SSN->clear_session(__CLASS__, __FUNCTION__);
87
+		return sprintf(
88
+			__(
89
+				'%sAll unsaved registration information entered during this session has been deleted.%s',
90
+				'event_espresso'
91
+			),
92
+			'<p class="ee-registrations-cancelled-pg ee-attention">',
93
+			'</p>'
94
+		);
95
+		// phpcs:enable
96
+	}
97 97
 }
Please login to merge, or discard this patch.
core/domain/services/wp_queries/EventListQuery.php 2 patches
Indentation   +194 added lines, -194 removed lines patch added patch discarded remove patch
@@ -16,198 +16,198 @@
 block discarded – undo
16 16
 class EventListQuery extends WP_Query
17 17
 {
18 18
 
19
-    /**
20
-     * @var string $title
21
-     */
22
-    private $title;
23
-
24
-    /**
25
-     * @var integer $limit
26
-     */
27
-    private $limit = 10;
28
-
29
-    /**
30
-     * @var string $css_class
31
-     */
32
-    private $css_class;
33
-
34
-    /**
35
-     * @var boolean $show_expired
36
-     */
37
-    private $show_expired = false;
38
-
39
-    /**
40
-     * @var string $month
41
-     */
42
-    private $month;
43
-
44
-    /**
45
-     * @var string $category_slug
46
-     */
47
-    private $category_slug;
48
-
49
-    /**
50
-     * @var string $order_by
51
-     */
52
-    private $order_by;
53
-
54
-    /**
55
-     * @var string $sort
56
-     */
57
-    private $sort;
58
-
59
-    /**
60
-     * @var boolean $show_title
61
-     */
62
-    private $show_title = true;
63
-
64
-
65
-    /**
66
-     * EE_Event_List_Query Constructor     *
67
-     *
68
-     * @param array $args
69
-     */
70
-    public function __construct($args = array())
71
-    {
72
-        $args = $this->parseArgs((array) $args);
73
-        $this->setupEventQueryHelper();
74
-        $this->setupFilters();
75
-        $args = $this->getQueryArgs($args);
76
-        // run the query
77
-        parent::__construct($args);
78
-    }
79
-
80
-
81
-    /**
82
-     * @param array $args
83
-     * @return array
84
-     */
85
-    private function parseArgs(array $args)
86
-    {
87
-        // incoming args could be a mix of WP query args + EE shortcode args
88
-        foreach ($args as $property => $value) {
89
-            // if the arg is a property of this class, then it's an EE shortcode arg
90
-            if (property_exists($this, $property) && ! property_exists('WP_Query', $property)) {
91
-                // set the property value
92
-                $this->{$property} = $value;
93
-                // then remove it from the array of args that will later be passed to WP_Query()
94
-                unset($args[ $property ]);
95
-            }
96
-        }
97
-        return $args;
98
-    }
99
-
100
-
101
-    private function setupEventQueryHelper()
102
-    {
103
-        // add query filters
104
-        EEH_Event_Query::add_query_filters();
105
-        // set params that will get used by the filters
106
-        EEH_Event_Query::set_query_params(
107
-            $this->month,
108
-            $this->category_slug,
109
-            $this->show_expired,
110
-            $this->order_by,
111
-            $this->sort
112
-        );
113
-    }
114
-
115
-
116
-    private function setupFilters()
117
-    {
118
-        // first off, let's remove any filters from previous queries
119
-        remove_filter(
120
-            'FHEE__archive_espresso_events_template__show_header',
121
-            array($this, 'show_event_list_title')
122
-        );
123
-        remove_filter(
124
-            'FHEE__archive_espresso_events_template__upcoming_events_h1',
125
-            array($this, 'event_list_title')
126
-        );
127
-        remove_all_filters('FHEE__content_espresso_events__event_class');
128
-        // Event List Title ?
129
-        add_filter(
130
-            'FHEE__archive_espresso_events_template__show_header',
131
-            array($this, 'show_event_list_title')
132
-        );
133
-        add_filter(
134
-            'FHEE__archive_espresso_events_template__upcoming_events_h1',
135
-            array($this, 'event_list_title'),
136
-            10,
137
-            1
138
-        );
139
-        // add the css class
140
-        add_filter(
141
-            'FHEE__content_espresso_events__event_class',
142
-            array($this, 'event_list_css'),
143
-            10,
144
-            1
145
-        );
146
-    }
147
-
148
-
149
-    private function getQueryArgs(array $args)
150
-    {
151
-        // the current "page" we are viewing
152
-        $paged = max(1, get_query_var('paged'));
153
-        // Force these args
154
-        return array_merge(
155
-            $args,
156
-            array(
157
-                'post_type'              => 'espresso_events',
158
-                'posts_per_page'         => $this->limit,
159
-                'update_post_term_cache' => false,
160
-                'update_post_meta_cache' => false,
161
-                'paged'                  => $paged,
162
-                'offset'                 => ($paged - 1) * $this->limit,
163
-            )
164
-        );
165
-    }
166
-
167
-    // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
168
-
169
-    /**
170
-     * show_event_list_title
171
-     *
172
-     * @return boolean
173
-     */
174
-    public function show_event_list_title()
175
-    {
176
-        return filter_var(
177
-            $this->show_title,
178
-            FILTER_VALIDATE_BOOLEAN
179
-        );
180
-    }
181
-
182
-
183
-    /**
184
-     * callback for FHEE__archive_espresso_events_template__upcoming_events_h1 filter
185
-     *
186
-     * @param string $event_list_title
187
-     * @return    string
188
-     */
189
-    public function event_list_title($event_list_title = '')
190
-    {
191
-        if (! empty($this->title)) {
192
-            return $this->title;
193
-        }
194
-        return $event_list_title;
195
-    }
196
-
197
-
198
-    /**
199
-     * callback for FHEE__content_espresso_events__event_class filter
200
-     *
201
-     * @param string $event_list_css
202
-     * @return string
203
-     */
204
-    public function event_list_css($event_list_css = '')
205
-    {
206
-        $event_list_css .= ! empty($event_list_css) ? ' ' : '';
207
-        $event_list_css .= ! empty($this->css_class) ? $this->css_class : '';
208
-        $event_list_css .= ! empty($event_list_css) ? ' ' : '';
209
-        $event_list_css .= ! empty($this->category_slug) ? $this->category_slug : '';
210
-        return $event_list_css;
211
-    }
212
-    // phpcs:enable
19
+	/**
20
+	 * @var string $title
21
+	 */
22
+	private $title;
23
+
24
+	/**
25
+	 * @var integer $limit
26
+	 */
27
+	private $limit = 10;
28
+
29
+	/**
30
+	 * @var string $css_class
31
+	 */
32
+	private $css_class;
33
+
34
+	/**
35
+	 * @var boolean $show_expired
36
+	 */
37
+	private $show_expired = false;
38
+
39
+	/**
40
+	 * @var string $month
41
+	 */
42
+	private $month;
43
+
44
+	/**
45
+	 * @var string $category_slug
46
+	 */
47
+	private $category_slug;
48
+
49
+	/**
50
+	 * @var string $order_by
51
+	 */
52
+	private $order_by;
53
+
54
+	/**
55
+	 * @var string $sort
56
+	 */
57
+	private $sort;
58
+
59
+	/**
60
+	 * @var boolean $show_title
61
+	 */
62
+	private $show_title = true;
63
+
64
+
65
+	/**
66
+	 * EE_Event_List_Query Constructor     *
67
+	 *
68
+	 * @param array $args
69
+	 */
70
+	public function __construct($args = array())
71
+	{
72
+		$args = $this->parseArgs((array) $args);
73
+		$this->setupEventQueryHelper();
74
+		$this->setupFilters();
75
+		$args = $this->getQueryArgs($args);
76
+		// run the query
77
+		parent::__construct($args);
78
+	}
79
+
80
+
81
+	/**
82
+	 * @param array $args
83
+	 * @return array
84
+	 */
85
+	private function parseArgs(array $args)
86
+	{
87
+		// incoming args could be a mix of WP query args + EE shortcode args
88
+		foreach ($args as $property => $value) {
89
+			// if the arg is a property of this class, then it's an EE shortcode arg
90
+			if (property_exists($this, $property) && ! property_exists('WP_Query', $property)) {
91
+				// set the property value
92
+				$this->{$property} = $value;
93
+				// then remove it from the array of args that will later be passed to WP_Query()
94
+				unset($args[ $property ]);
95
+			}
96
+		}
97
+		return $args;
98
+	}
99
+
100
+
101
+	private function setupEventQueryHelper()
102
+	{
103
+		// add query filters
104
+		EEH_Event_Query::add_query_filters();
105
+		// set params that will get used by the filters
106
+		EEH_Event_Query::set_query_params(
107
+			$this->month,
108
+			$this->category_slug,
109
+			$this->show_expired,
110
+			$this->order_by,
111
+			$this->sort
112
+		);
113
+	}
114
+
115
+
116
+	private function setupFilters()
117
+	{
118
+		// first off, let's remove any filters from previous queries
119
+		remove_filter(
120
+			'FHEE__archive_espresso_events_template__show_header',
121
+			array($this, 'show_event_list_title')
122
+		);
123
+		remove_filter(
124
+			'FHEE__archive_espresso_events_template__upcoming_events_h1',
125
+			array($this, 'event_list_title')
126
+		);
127
+		remove_all_filters('FHEE__content_espresso_events__event_class');
128
+		// Event List Title ?
129
+		add_filter(
130
+			'FHEE__archive_espresso_events_template__show_header',
131
+			array($this, 'show_event_list_title')
132
+		);
133
+		add_filter(
134
+			'FHEE__archive_espresso_events_template__upcoming_events_h1',
135
+			array($this, 'event_list_title'),
136
+			10,
137
+			1
138
+		);
139
+		// add the css class
140
+		add_filter(
141
+			'FHEE__content_espresso_events__event_class',
142
+			array($this, 'event_list_css'),
143
+			10,
144
+			1
145
+		);
146
+	}
147
+
148
+
149
+	private function getQueryArgs(array $args)
150
+	{
151
+		// the current "page" we are viewing
152
+		$paged = max(1, get_query_var('paged'));
153
+		// Force these args
154
+		return array_merge(
155
+			$args,
156
+			array(
157
+				'post_type'              => 'espresso_events',
158
+				'posts_per_page'         => $this->limit,
159
+				'update_post_term_cache' => false,
160
+				'update_post_meta_cache' => false,
161
+				'paged'                  => $paged,
162
+				'offset'                 => ($paged - 1) * $this->limit,
163
+			)
164
+		);
165
+	}
166
+
167
+	// phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
168
+
169
+	/**
170
+	 * show_event_list_title
171
+	 *
172
+	 * @return boolean
173
+	 */
174
+	public function show_event_list_title()
175
+	{
176
+		return filter_var(
177
+			$this->show_title,
178
+			FILTER_VALIDATE_BOOLEAN
179
+		);
180
+	}
181
+
182
+
183
+	/**
184
+	 * callback for FHEE__archive_espresso_events_template__upcoming_events_h1 filter
185
+	 *
186
+	 * @param string $event_list_title
187
+	 * @return    string
188
+	 */
189
+	public function event_list_title($event_list_title = '')
190
+	{
191
+		if (! empty($this->title)) {
192
+			return $this->title;
193
+		}
194
+		return $event_list_title;
195
+	}
196
+
197
+
198
+	/**
199
+	 * callback for FHEE__content_espresso_events__event_class filter
200
+	 *
201
+	 * @param string $event_list_css
202
+	 * @return string
203
+	 */
204
+	public function event_list_css($event_list_css = '')
205
+	{
206
+		$event_list_css .= ! empty($event_list_css) ? ' ' : '';
207
+		$event_list_css .= ! empty($this->css_class) ? $this->css_class : '';
208
+		$event_list_css .= ! empty($event_list_css) ? ' ' : '';
209
+		$event_list_css .= ! empty($this->category_slug) ? $this->category_slug : '';
210
+		return $event_list_css;
211
+	}
212
+	// phpcs:enable
213 213
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
                 // set the property value
92 92
                 $this->{$property} = $value;
93 93
                 // then remove it from the array of args that will later be passed to WP_Query()
94
-                unset($args[ $property ]);
94
+                unset($args[$property]);
95 95
             }
96 96
         }
97 97
         return $args;
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
      */
189 189
     public function event_list_title($event_list_title = '')
190 190
     {
191
-        if (! empty($this->title)) {
191
+        if ( ! empty($this->title)) {
192 192
             return $this->title;
193 193
         }
194 194
         return $event_list_title;
Please login to merge, or discard this patch.
core/domain/services/custom_post_types/RegisterCustomTaxonomyTerms.php 1 patch
Indentation   +176 added lines, -176 removed lines patch added patch discarded remove patch
@@ -16,180 +16,180 @@
 block discarded – undo
16 16
 class RegisterCustomTaxonomyTerms
17 17
 {
18 18
 
19
-    /**
20
-     * @var array[] $custom_taxonomy_terms
21
-     */
22
-    public $custom_taxonomy_terms = array();
23
-
24
-
25
-    /**
26
-     * RegisterCustomTaxonomyTerms constructor.
27
-     */
28
-    public function __construct()
29
-    {
30
-        // hook into save_post so that we can make sure that the default terms get saved on publish of registered cpts
31
-        // IF they don't have a term for that taxonomy set.
32
-        add_action('save_post', array($this, 'saveDefaultTerm'), 100, 2);
33
-        do_action(
34
-            'AHEE__EventEspresso_core_domain_services_custom_post_types_RegisterCustomTaxonomyTerms__construct_end',
35
-            $this
36
-        );
37
-    }
38
-
39
-
40
-    public function registerCustomTaxonomyTerms()
41
-    {
42
-        // setup default terms in any of our taxonomies (but only if we're in admin).
43
-        // Why not added via register_activation_hook?
44
-        // Because it's possible that in future iterations of EE we may add new defaults for specialized taxonomies
45
-        // (think event_types) and register_activation_hook only reliably runs when a user manually activates the plugin.
46
-        // Keep in mind that this will READ these terms if they are deleted by the user.  Hence MUST use terms.
47
-        // if ( is_admin() ) {
48
-        // $this->set_must_use_event_types();
49
-        // }
50
-        // set default terms
51
-        $this->registerCustomTaxonomyTerm(
52
-            'espresso_event_type',
53
-            'single-event',
54
-            array('espresso_events')
55
-        );
56
-    }
57
-
58
-
59
-    /**
60
-     * Allows us to set what the default will be for terms when a cpt is PUBLISHED.
61
-     *
62
-     * @param string $taxonomy  The taxonomy we're using for the default term
63
-     * @param string $term_slug The slug of the term that will be the default.
64
-     * @param array  $cpt_slugs An array of custom post types we want the default assigned to
65
-     */
66
-    public function registerCustomTaxonomyTerm($taxonomy, $term_slug, array $cpt_slugs = array())
67
-    {
68
-        $this->custom_taxonomy_terms[][ $term_slug ] = new CustomTaxonomyTerm(
69
-            $taxonomy,
70
-            $term_slug,
71
-            $cpt_slugs
72
-        );
73
-    }
74
-
75
-
76
-    /**
77
-     * hooked into the wp 'save_post' action hook for setting our default terms found in the $_default_terms property
78
-     *
79
-     * @param  int     $post_id ID of CPT being saved
80
-     * @param  WP_Post $post    Post object
81
-     * @return void
82
-     */
83
-    public function saveDefaultTerm($post_id, WP_Post $post)
84
-    {
85
-        if (empty($this->custom_taxonomy_terms)) {
86
-            return;
87
-        }
88
-        // no default terms set so lets just exit.
89
-        foreach ($this->custom_taxonomy_terms as $custom_taxonomy_terms) {
90
-            foreach ($custom_taxonomy_terms as $custom_taxonomy_term) {
91
-                if ($post->post_status === 'publish'
92
-                    && $custom_taxonomy_term instanceof CustomTaxonomyTerm
93
-                    && in_array($post->post_type, $custom_taxonomy_term->customPostTypeSlugs(), true)
94
-                ) {
95
-                    // note some error proofing going on here to save unnecessary db queries
96
-                    $taxonomies = get_object_taxonomies($post->post_type);
97
-                    foreach ($taxonomies as $taxonomy) {
98
-                        $terms = wp_get_post_terms($post_id, $taxonomy);
99
-                        if (empty($terms) && $taxonomy === $custom_taxonomy_term->taxonomySlug()) {
100
-                            wp_set_object_terms(
101
-                                $post_id,
102
-                                array($custom_taxonomy_term->termSlug()),
103
-                                $taxonomy
104
-                            );
105
-                        }
106
-                    }
107
-                }
108
-            }
109
-        }
110
-    }
111
-
112
-
113
-    /**
114
-     * @return void
115
-     */
116
-    public function setMustUseEventTypes()
117
-    {
118
-        $term_details = array(
119
-            // Attendee's register for the first date-time only
120
-            'single-event'    => array(
121
-                'term' => esc_html__('Single Event', 'event_espresso'),
122
-                'desc' => esc_html__(
123
-                    'A single event that spans one or more consecutive days.',
124
-                    'event_espresso'
125
-                ),
126
-            ),
127
-            // example: a party or two-day long workshop
128
-            // Attendee's can register for any of the date-times
129
-            'multi-event'     => array(
130
-                'term' => esc_html__('Multi Event', 'event_espresso'),
131
-                'desc' => esc_html__(
132
-                    'Multiple, separate, but related events that occur on consecutive days.',
133
-                    'event_espresso'
134
-                ),
135
-            ),
136
-            // example: a three day music festival or week long conference
137
-            // Attendee's register for the first date-time only
138
-            'event-series'    => array(
139
-                'term' => esc_html__('Event Series', 'event_espresso'),
140
-                'desc' => esc_html__(
141
-                    ' Multiple events that occur over multiple non-consecutive days.',
142
-                    'event_espresso'
143
-                ),
144
-            ),
145
-            // example: an 8 week introduction to basket weaving course
146
-            // Attendee's can register for any of the date-times.
147
-            'recurring-event' => array(
148
-                'term' => esc_html__('Recurring Event', 'event_espresso'),
149
-                'desc' => esc_html__(
150
-                    'Multiple events that occur over multiple non-consecutive days.',
151
-                    'event_espresso'
152
-                ),
153
-            ),
154
-            // example: a yoga class
155
-            'ongoing'         => array(
156
-                'term' => esc_html__('Ongoing Event', 'event_espresso'),
157
-                'desc' => esc_html__(
158
-                    'An "event" that people can purchase tickets to gain access for anytime for this event regardless of date times on the event',
159
-                    'event_espresso'
160
-                ),
161
-            )
162
-            // example: access to a museum
163
-            // 'walk-in' => array( esc_html__('Walk In', 'event_espresso'), esc_html__('Single datetime and single entry recurring events. Attendees register for one or multiple datetimes individually.', 'event_espresso') ),
164
-            // 'reservation' => array( esc_html__('Reservation', 'event_espresso'), esc_html__('Reservations are created by specifying available datetimes and quantities. Attendees choose from the available datetimes and specify the quantity available (if the maximum is greater than 1)') ), //@TODO to avoid confusion we'll implement this in a later iteration > EE4.1
165
-            // 'multiple-session' => array( esc_html__('Multiple Session', 'event_espresso'), esc_html__('Multiple event, multiple datetime, hierarchically organized, custom entry events. Attendees may be required to register for a parent event before being allowed to register for child events. Attendees can register for any combination of child events as long as the datetimes do not conflict. Parent and child events may have additional fees or registration questions.') ), //@TODO to avoid confusion we'll implement this in a later iteration > EE4.1
166
-            // 'appointment' => array( esc_html__('Appointments', 'event_espresso'), esc_html__('Time slotted events where datetimes are generally in hours or minutes. For example, attendees can register for a single 15 minute or 1 hour time slot and this type of availability frequently reoccurs.', 'event_espresso') )
167
-        );
168
-        $this->setMustUseTerms('espresso_event_type', $term_details);
169
-    }
170
-
171
-
172
-    /**
173
-     * wrapper method for handling the setting up of initial terms in the db (if they don't already exist).
174
-     * Note this should ONLY be used for terms that always must be present.  Be aware that if an initial term is
175
-     * deleted then it WILL be recreated.
176
-     *
177
-     * @param string $taxonomy     The name of the taxonomy
178
-     * @param array  $term_details An array of term details indexed by slug and containing Name of term, and
179
-     *                             description as the elements in the array
180
-     * @return void
181
-     */
182
-    public function setMustUseTerms($taxonomy, $term_details)
183
-    {
184
-        $term_details = (array) $term_details;
185
-        foreach ($term_details as $slug => $details) {
186
-            if (isset($details['term'], $details['desc']) && ! term_exists($slug, $taxonomy)) {
187
-                $insert_arr = array(
188
-                    'slug'        => $slug,
189
-                    'description' => $details['desc'],
190
-                );
191
-                wp_insert_term($details['term'], $taxonomy, $insert_arr);
192
-            }
193
-        }
194
-    }
19
+	/**
20
+	 * @var array[] $custom_taxonomy_terms
21
+	 */
22
+	public $custom_taxonomy_terms = array();
23
+
24
+
25
+	/**
26
+	 * RegisterCustomTaxonomyTerms constructor.
27
+	 */
28
+	public function __construct()
29
+	{
30
+		// hook into save_post so that we can make sure that the default terms get saved on publish of registered cpts
31
+		// IF they don't have a term for that taxonomy set.
32
+		add_action('save_post', array($this, 'saveDefaultTerm'), 100, 2);
33
+		do_action(
34
+			'AHEE__EventEspresso_core_domain_services_custom_post_types_RegisterCustomTaxonomyTerms__construct_end',
35
+			$this
36
+		);
37
+	}
38
+
39
+
40
+	public function registerCustomTaxonomyTerms()
41
+	{
42
+		// setup default terms in any of our taxonomies (but only if we're in admin).
43
+		// Why not added via register_activation_hook?
44
+		// Because it's possible that in future iterations of EE we may add new defaults for specialized taxonomies
45
+		// (think event_types) and register_activation_hook only reliably runs when a user manually activates the plugin.
46
+		// Keep in mind that this will READ these terms if they are deleted by the user.  Hence MUST use terms.
47
+		// if ( is_admin() ) {
48
+		// $this->set_must_use_event_types();
49
+		// }
50
+		// set default terms
51
+		$this->registerCustomTaxonomyTerm(
52
+			'espresso_event_type',
53
+			'single-event',
54
+			array('espresso_events')
55
+		);
56
+	}
57
+
58
+
59
+	/**
60
+	 * Allows us to set what the default will be for terms when a cpt is PUBLISHED.
61
+	 *
62
+	 * @param string $taxonomy  The taxonomy we're using for the default term
63
+	 * @param string $term_slug The slug of the term that will be the default.
64
+	 * @param array  $cpt_slugs An array of custom post types we want the default assigned to
65
+	 */
66
+	public function registerCustomTaxonomyTerm($taxonomy, $term_slug, array $cpt_slugs = array())
67
+	{
68
+		$this->custom_taxonomy_terms[][ $term_slug ] = new CustomTaxonomyTerm(
69
+			$taxonomy,
70
+			$term_slug,
71
+			$cpt_slugs
72
+		);
73
+	}
74
+
75
+
76
+	/**
77
+	 * hooked into the wp 'save_post' action hook for setting our default terms found in the $_default_terms property
78
+	 *
79
+	 * @param  int     $post_id ID of CPT being saved
80
+	 * @param  WP_Post $post    Post object
81
+	 * @return void
82
+	 */
83
+	public function saveDefaultTerm($post_id, WP_Post $post)
84
+	{
85
+		if (empty($this->custom_taxonomy_terms)) {
86
+			return;
87
+		}
88
+		// no default terms set so lets just exit.
89
+		foreach ($this->custom_taxonomy_terms as $custom_taxonomy_terms) {
90
+			foreach ($custom_taxonomy_terms as $custom_taxonomy_term) {
91
+				if ($post->post_status === 'publish'
92
+					&& $custom_taxonomy_term instanceof CustomTaxonomyTerm
93
+					&& in_array($post->post_type, $custom_taxonomy_term->customPostTypeSlugs(), true)
94
+				) {
95
+					// note some error proofing going on here to save unnecessary db queries
96
+					$taxonomies = get_object_taxonomies($post->post_type);
97
+					foreach ($taxonomies as $taxonomy) {
98
+						$terms = wp_get_post_terms($post_id, $taxonomy);
99
+						if (empty($terms) && $taxonomy === $custom_taxonomy_term->taxonomySlug()) {
100
+							wp_set_object_terms(
101
+								$post_id,
102
+								array($custom_taxonomy_term->termSlug()),
103
+								$taxonomy
104
+							);
105
+						}
106
+					}
107
+				}
108
+			}
109
+		}
110
+	}
111
+
112
+
113
+	/**
114
+	 * @return void
115
+	 */
116
+	public function setMustUseEventTypes()
117
+	{
118
+		$term_details = array(
119
+			// Attendee's register for the first date-time only
120
+			'single-event'    => array(
121
+				'term' => esc_html__('Single Event', 'event_espresso'),
122
+				'desc' => esc_html__(
123
+					'A single event that spans one or more consecutive days.',
124
+					'event_espresso'
125
+				),
126
+			),
127
+			// example: a party or two-day long workshop
128
+			// Attendee's can register for any of the date-times
129
+			'multi-event'     => array(
130
+				'term' => esc_html__('Multi Event', 'event_espresso'),
131
+				'desc' => esc_html__(
132
+					'Multiple, separate, but related events that occur on consecutive days.',
133
+					'event_espresso'
134
+				),
135
+			),
136
+			// example: a three day music festival or week long conference
137
+			// Attendee's register for the first date-time only
138
+			'event-series'    => array(
139
+				'term' => esc_html__('Event Series', 'event_espresso'),
140
+				'desc' => esc_html__(
141
+					' Multiple events that occur over multiple non-consecutive days.',
142
+					'event_espresso'
143
+				),
144
+			),
145
+			// example: an 8 week introduction to basket weaving course
146
+			// Attendee's can register for any of the date-times.
147
+			'recurring-event' => array(
148
+				'term' => esc_html__('Recurring Event', 'event_espresso'),
149
+				'desc' => esc_html__(
150
+					'Multiple events that occur over multiple non-consecutive days.',
151
+					'event_espresso'
152
+				),
153
+			),
154
+			// example: a yoga class
155
+			'ongoing'         => array(
156
+				'term' => esc_html__('Ongoing Event', 'event_espresso'),
157
+				'desc' => esc_html__(
158
+					'An "event" that people can purchase tickets to gain access for anytime for this event regardless of date times on the event',
159
+					'event_espresso'
160
+				),
161
+			)
162
+			// example: access to a museum
163
+			// 'walk-in' => array( esc_html__('Walk In', 'event_espresso'), esc_html__('Single datetime and single entry recurring events. Attendees register for one or multiple datetimes individually.', 'event_espresso') ),
164
+			// 'reservation' => array( esc_html__('Reservation', 'event_espresso'), esc_html__('Reservations are created by specifying available datetimes and quantities. Attendees choose from the available datetimes and specify the quantity available (if the maximum is greater than 1)') ), //@TODO to avoid confusion we'll implement this in a later iteration > EE4.1
165
+			// 'multiple-session' => array( esc_html__('Multiple Session', 'event_espresso'), esc_html__('Multiple event, multiple datetime, hierarchically organized, custom entry events. Attendees may be required to register for a parent event before being allowed to register for child events. Attendees can register for any combination of child events as long as the datetimes do not conflict. Parent and child events may have additional fees or registration questions.') ), //@TODO to avoid confusion we'll implement this in a later iteration > EE4.1
166
+			// 'appointment' => array( esc_html__('Appointments', 'event_espresso'), esc_html__('Time slotted events where datetimes are generally in hours or minutes. For example, attendees can register for a single 15 minute or 1 hour time slot and this type of availability frequently reoccurs.', 'event_espresso') )
167
+		);
168
+		$this->setMustUseTerms('espresso_event_type', $term_details);
169
+	}
170
+
171
+
172
+	/**
173
+	 * wrapper method for handling the setting up of initial terms in the db (if they don't already exist).
174
+	 * Note this should ONLY be used for terms that always must be present.  Be aware that if an initial term is
175
+	 * deleted then it WILL be recreated.
176
+	 *
177
+	 * @param string $taxonomy     The name of the taxonomy
178
+	 * @param array  $term_details An array of term details indexed by slug and containing Name of term, and
179
+	 *                             description as the elements in the array
180
+	 * @return void
181
+	 */
182
+	public function setMustUseTerms($taxonomy, $term_details)
183
+	{
184
+		$term_details = (array) $term_details;
185
+		foreach ($term_details as $slug => $details) {
186
+			if (isset($details['term'], $details['desc']) && ! term_exists($slug, $taxonomy)) {
187
+				$insert_arr = array(
188
+					'slug'        => $slug,
189
+					'description' => $details['desc'],
190
+				);
191
+				wp_insert_term($details['term'], $taxonomy, $insert_arr);
192
+			}
193
+		}
194
+	}
195 195
 }
Please login to merge, or discard this patch.
core/domain/services/custom_post_types/RegisterCustomPostTypes.php 1 patch
Indentation   +221 added lines, -221 removed lines patch added patch discarded remove patch
@@ -18,240 +18,240 @@
 block discarded – undo
18 18
 class RegisterCustomPostTypes
19 19
 {
20 20
 
21
-    /**
22
-     * @var CustomPostTypeDefinitions $custom_post_types
23
-     */
24
-    public $custom_post_types;
21
+	/**
22
+	 * @var CustomPostTypeDefinitions $custom_post_types
23
+	 */
24
+	public $custom_post_types;
25 25
 
26
-    /**
27
-     * @var WP_Post_Type[] $wp_post_types
28
-     */
29
-    public $wp_post_types = array();
26
+	/**
27
+	 * @var WP_Post_Type[] $wp_post_types
28
+	 */
29
+	public $wp_post_types = array();
30 30
 
31 31
 
32
-    /**
33
-     * RegisterCustomPostTypes constructor.
34
-     *
35
-     * @param CustomPostTypeDefinitions $custom_post_types
36
-     */
37
-    public function __construct(CustomPostTypeDefinitions $custom_post_types)
38
-    {
39
-        $this->custom_post_types = $custom_post_types;
40
-    }
32
+	/**
33
+	 * RegisterCustomPostTypes constructor.
34
+	 *
35
+	 * @param CustomPostTypeDefinitions $custom_post_types
36
+	 */
37
+	public function __construct(CustomPostTypeDefinitions $custom_post_types)
38
+	{
39
+		$this->custom_post_types = $custom_post_types;
40
+	}
41 41
 
42 42
 
43
-    /**
44
-     * @return WP_Post_Type[]
45
-     */
46
-    public function getRegisteredCustomPostTypes()
47
-    {
48
-        return $this->wp_post_types;
49
-    }
43
+	/**
44
+	 * @return WP_Post_Type[]
45
+	 */
46
+	public function getRegisteredCustomPostTypes()
47
+	{
48
+		return $this->wp_post_types;
49
+	}
50 50
 
51 51
 
52
-    /**
53
-     * @return void
54
-     * @throws DomainException
55
-     */
56
-    public function registerCustomPostTypes()
57
-    {
58
-        $custom_post_types = $this->custom_post_types->getDefinitions();
59
-        foreach ($custom_post_types as $custom_post_type => $CPT) {
60
-            $this->wp_post_types[ $custom_post_type ] = $this->registerCustomPostType(
61
-                $custom_post_type,
62
-                $CPT['singular_name'],
63
-                $CPT['plural_name'],
64
-                $CPT['singular_slug'],
65
-                $CPT['plural_slug'],
66
-                $CPT['args']
67
-            );
68
-        }
69
-    }
52
+	/**
53
+	 * @return void
54
+	 * @throws DomainException
55
+	 */
56
+	public function registerCustomPostTypes()
57
+	{
58
+		$custom_post_types = $this->custom_post_types->getDefinitions();
59
+		foreach ($custom_post_types as $custom_post_type => $CPT) {
60
+			$this->wp_post_types[ $custom_post_type ] = $this->registerCustomPostType(
61
+				$custom_post_type,
62
+				$CPT['singular_name'],
63
+				$CPT['plural_name'],
64
+				$CPT['singular_slug'],
65
+				$CPT['plural_slug'],
66
+				$CPT['args']
67
+			);
68
+		}
69
+	}
70 70
 
71 71
 
72
-    /**
73
-     * Registers a new custom post type. Sets default settings given only the following params.
74
-     * Returns the registered post type object, or an error object.
75
-     *
76
-     * @param string $post_type          the actual post type name
77
-     *                                   IMPORTANT:
78
-     *                                   this must match what the slug is for admin pages related to this CPT
79
-     *                                   Also any models must use this slug as well
80
-     * @param string $singular_name      a pre-internationalized string for the singular name of the objects
81
-     * @param string $plural_name        a pre-internationalized string for the plural name of the objects
82
-     * @param string $singular_slug
83
-     * @param string $plural_slug
84
-     * @param array  $override_arguments exactly like $args as described in
85
-     *                                   http://codex.wordpress.org/Function_Reference/register_post_type
86
-     * @return WP_Post_Type|WP_Error
87
-     * @throws DomainException
88
-     */
89
-    public function registerCustomPostType(
90
-        $post_type,
91
-        $singular_name,
92
-        $plural_name,
93
-        $singular_slug = '',
94
-        $plural_slug = '',
95
-        array $override_arguments = array()
96
-    ) {
97
-        $wp_post_type = register_post_type(
98
-            $post_type,
99
-            $this->prepareArguments(
100
-                $post_type,
101
-                $singular_name,
102
-                $plural_name,
103
-                $singular_slug,
104
-                $plural_slug,
105
-                $override_arguments
106
-            )
107
-        );
108
-        if ($wp_post_type instanceof WP_Error) {
109
-            throw new DomainException($wp_post_type->get_error_message());
110
-        }
111
-        return $wp_post_type;
112
-    }
72
+	/**
73
+	 * Registers a new custom post type. Sets default settings given only the following params.
74
+	 * Returns the registered post type object, or an error object.
75
+	 *
76
+	 * @param string $post_type          the actual post type name
77
+	 *                                   IMPORTANT:
78
+	 *                                   this must match what the slug is for admin pages related to this CPT
79
+	 *                                   Also any models must use this slug as well
80
+	 * @param string $singular_name      a pre-internationalized string for the singular name of the objects
81
+	 * @param string $plural_name        a pre-internationalized string for the plural name of the objects
82
+	 * @param string $singular_slug
83
+	 * @param string $plural_slug
84
+	 * @param array  $override_arguments exactly like $args as described in
85
+	 *                                   http://codex.wordpress.org/Function_Reference/register_post_type
86
+	 * @return WP_Post_Type|WP_Error
87
+	 * @throws DomainException
88
+	 */
89
+	public function registerCustomPostType(
90
+		$post_type,
91
+		$singular_name,
92
+		$plural_name,
93
+		$singular_slug = '',
94
+		$plural_slug = '',
95
+		array $override_arguments = array()
96
+	) {
97
+		$wp_post_type = register_post_type(
98
+			$post_type,
99
+			$this->prepareArguments(
100
+				$post_type,
101
+				$singular_name,
102
+				$plural_name,
103
+				$singular_slug,
104
+				$plural_slug,
105
+				$override_arguments
106
+			)
107
+		);
108
+		if ($wp_post_type instanceof WP_Error) {
109
+			throw new DomainException($wp_post_type->get_error_message());
110
+		}
111
+		return $wp_post_type;
112
+	}
113 113
 
114 114
 
115
-    /**
116
-     * @param string $post_type          the actual post type name
117
-     * @param string $singular_name      a pre-internationalized string for the singular name of the objects
118
-     * @param string $plural_name        a pre-internationalized string for the plural name of the objects
119
-     * @param string $singular_slug
120
-     * @param string $plural_slug
121
-     * @param array  $override_arguments The default values set in this function will be overridden
122
-     *                                   by whatever you set in $override_arguments
123
-     * @return array
124
-     */
125
-    protected function prepareArguments(
126
-        $post_type,
127
-        $singular_name,
128
-        $plural_name,
129
-        $singular_slug,
130
-        $plural_slug,
131
-        array $override_arguments = array()
132
-    ) {
133
-        // verify plural slug and singular slug, if they aren't we'll use $singular_name and $plural_name
134
-        $singular_slug = ! empty($singular_slug) ? $singular_slug : $singular_name;
135
-        $plural_slug = ! empty($plural_slug) ? $plural_slug : $plural_name;
136
-        $labels = $this->getLabels(
137
-            $singular_name,
138
-            $plural_name,
139
-            $singular_slug,
140
-            $plural_slug
141
-        );
142
-        // note the page_templates arg in the supports index is something specific to EE.
143
-        // WordPress doesn't actually have that in their register_post_type api.
144
-        $arguments = $this->getDefaultArguments($labels, $post_type, $plural_slug);
145
-        if ($override_arguments) {
146
-            if (isset($override_arguments['labels'])) {
147
-                $labels = array_merge($arguments['labels'], $override_arguments['labels']);
148
-            }
149
-            $arguments = array_merge($arguments, $override_arguments);
150
-            $arguments['labels'] = $labels;
151
-        }
152
-        return $arguments;
153
-    }
115
+	/**
116
+	 * @param string $post_type          the actual post type name
117
+	 * @param string $singular_name      a pre-internationalized string for the singular name of the objects
118
+	 * @param string $plural_name        a pre-internationalized string for the plural name of the objects
119
+	 * @param string $singular_slug
120
+	 * @param string $plural_slug
121
+	 * @param array  $override_arguments The default values set in this function will be overridden
122
+	 *                                   by whatever you set in $override_arguments
123
+	 * @return array
124
+	 */
125
+	protected function prepareArguments(
126
+		$post_type,
127
+		$singular_name,
128
+		$plural_name,
129
+		$singular_slug,
130
+		$plural_slug,
131
+		array $override_arguments = array()
132
+	) {
133
+		// verify plural slug and singular slug, if they aren't we'll use $singular_name and $plural_name
134
+		$singular_slug = ! empty($singular_slug) ? $singular_slug : $singular_name;
135
+		$plural_slug = ! empty($plural_slug) ? $plural_slug : $plural_name;
136
+		$labels = $this->getLabels(
137
+			$singular_name,
138
+			$plural_name,
139
+			$singular_slug,
140
+			$plural_slug
141
+		);
142
+		// note the page_templates arg in the supports index is something specific to EE.
143
+		// WordPress doesn't actually have that in their register_post_type api.
144
+		$arguments = $this->getDefaultArguments($labels, $post_type, $plural_slug);
145
+		if ($override_arguments) {
146
+			if (isset($override_arguments['labels'])) {
147
+				$labels = array_merge($arguments['labels'], $override_arguments['labels']);
148
+			}
149
+			$arguments = array_merge($arguments, $override_arguments);
150
+			$arguments['labels'] = $labels;
151
+		}
152
+		return $arguments;
153
+	}
154 154
 
155 155
 
156
-    /**
157
-     * @param string $singular_name
158
-     * @param string $plural_name
159
-     * @param string $singular_slug
160
-     * @param string $plural_slug
161
-     * @return array
162
-     */
163
-    private function getLabels($singular_name, $plural_name, $singular_slug, $plural_slug)
164
-    {
165
-        return array(
166
-            'name'               => $plural_name,
167
-            'singular_name'      => $singular_name,
168
-            'singular_slug'      => $singular_slug,
169
-            'plural_slug'        => $plural_slug,
170
-            'add_new'            => sprintf(
171
-                esc_html_x('Add %s', 'Add Event', 'event_espresso'),
172
-                $singular_name
173
-            ),
174
-            'add_new_item'       => sprintf(
175
-                esc_html_x('Add New %s', 'Add New Event', 'event_espresso'),
176
-                $singular_name
177
-            ),
178
-            'edit_item'          => sprintf(
179
-                esc_html_x('Edit %s', 'Edit Event', 'event_espresso'),
180
-                $singular_name
181
-            ),
182
-            'new_item'           => sprintf(
183
-                esc_html_x('New %s', 'New Event', 'event_espresso'),
184
-                $singular_name
185
-            ),
186
-            'all_items'          => sprintf(
187
-                esc_html_x('All %s', 'All Events', 'event_espresso'),
188
-                $plural_name
189
-            ),
190
-            'view_item'          => sprintf(
191
-                esc_html_x('View %s', 'View Event', 'event_espresso'),
192
-                $singular_name
193
-            ),
194
-            'search_items'       => sprintf(
195
-                esc_html_x('Search %s', 'Search Events', 'event_espresso'),
196
-                $plural_name
197
-            ),
198
-            'not_found'          => sprintf(
199
-                esc_html_x('No %s found', 'No Events found', 'event_espresso'),
200
-                $plural_name
201
-            ),
202
-            'not_found_in_trash' => sprintf(
203
-                esc_html_x('No %s found in Trash', 'No Events found in Trash', 'event_espresso'),
204
-                $plural_name
205
-            ),
206
-            'parent_item_colon'  => '',
207
-            'menu_name'          => $plural_name,
208
-        );
209
-    }
156
+	/**
157
+	 * @param string $singular_name
158
+	 * @param string $plural_name
159
+	 * @param string $singular_slug
160
+	 * @param string $plural_slug
161
+	 * @return array
162
+	 */
163
+	private function getLabels($singular_name, $plural_name, $singular_slug, $plural_slug)
164
+	{
165
+		return array(
166
+			'name'               => $plural_name,
167
+			'singular_name'      => $singular_name,
168
+			'singular_slug'      => $singular_slug,
169
+			'plural_slug'        => $plural_slug,
170
+			'add_new'            => sprintf(
171
+				esc_html_x('Add %s', 'Add Event', 'event_espresso'),
172
+				$singular_name
173
+			),
174
+			'add_new_item'       => sprintf(
175
+				esc_html_x('Add New %s', 'Add New Event', 'event_espresso'),
176
+				$singular_name
177
+			),
178
+			'edit_item'          => sprintf(
179
+				esc_html_x('Edit %s', 'Edit Event', 'event_espresso'),
180
+				$singular_name
181
+			),
182
+			'new_item'           => sprintf(
183
+				esc_html_x('New %s', 'New Event', 'event_espresso'),
184
+				$singular_name
185
+			),
186
+			'all_items'          => sprintf(
187
+				esc_html_x('All %s', 'All Events', 'event_espresso'),
188
+				$plural_name
189
+			),
190
+			'view_item'          => sprintf(
191
+				esc_html_x('View %s', 'View Event', 'event_espresso'),
192
+				$singular_name
193
+			),
194
+			'search_items'       => sprintf(
195
+				esc_html_x('Search %s', 'Search Events', 'event_espresso'),
196
+				$plural_name
197
+			),
198
+			'not_found'          => sprintf(
199
+				esc_html_x('No %s found', 'No Events found', 'event_espresso'),
200
+				$plural_name
201
+			),
202
+			'not_found_in_trash' => sprintf(
203
+				esc_html_x('No %s found in Trash', 'No Events found in Trash', 'event_espresso'),
204
+				$plural_name
205
+			),
206
+			'parent_item_colon'  => '',
207
+			'menu_name'          => $plural_name,
208
+		);
209
+	}
210 210
 
211 211
 
212
-    /**
213
-     * @param array  $labels
214
-     * @param string $post_type
215
-     * @param string $plural_slug
216
-     * @return array
217
-     */
218
-    private function getDefaultArguments(array $labels, $post_type, $plural_slug)
219
-    {
220
-        return array(
221
-            'labels'             => $labels,
222
-            'public'             => true,
223
-            'publicly_queryable' => true,
224
-            'show_ui'            => false,
225
-            'show_ee_ui'         => true,
226
-            'show_in_menu'       => false,
227
-            'show_in_nav_menus'  => false,
228
-            'query_var'          => true,
229
-            'rewrite'            => apply_filters(
230
-                'FHEE__EventEspresso_core_domain_entities_custom_post_types_RegisterCustomPostTypes__getDefaultArguments__rewrite',
231
-                // legacy filter applied for now,
232
-                // later on we'll run a has_filter($tag) check and throw a doing_it_wrong() notice
233
-                apply_filters(
234
-                    'FHEE__EE_Register_CPTs__register_CPT__rewrite',
235
-                    array('slug' => $plural_slug),
236
-                    $post_type
237
-                ),
238
-                $post_type,
239
-                $plural_slug
240
-            ),
241
-            'capability_type'    => 'post',
242
-            'map_meta_cap'       => true,
243
-            'has_archive'        => true,
244
-            'hierarchical'       => false,
245
-            'menu_position'      => null,
246
-            'supports'           => array(
247
-                'title',
248
-                'editor',
249
-                'author',
250
-                'thumbnail',
251
-                'excerpt',
252
-                'custom-fields',
253
-                'comments',
254
-            ),
255
-        );
256
-    }
212
+	/**
213
+	 * @param array  $labels
214
+	 * @param string $post_type
215
+	 * @param string $plural_slug
216
+	 * @return array
217
+	 */
218
+	private function getDefaultArguments(array $labels, $post_type, $plural_slug)
219
+	{
220
+		return array(
221
+			'labels'             => $labels,
222
+			'public'             => true,
223
+			'publicly_queryable' => true,
224
+			'show_ui'            => false,
225
+			'show_ee_ui'         => true,
226
+			'show_in_menu'       => false,
227
+			'show_in_nav_menus'  => false,
228
+			'query_var'          => true,
229
+			'rewrite'            => apply_filters(
230
+				'FHEE__EventEspresso_core_domain_entities_custom_post_types_RegisterCustomPostTypes__getDefaultArguments__rewrite',
231
+				// legacy filter applied for now,
232
+				// later on we'll run a has_filter($tag) check and throw a doing_it_wrong() notice
233
+				apply_filters(
234
+					'FHEE__EE_Register_CPTs__register_CPT__rewrite',
235
+					array('slug' => $plural_slug),
236
+					$post_type
237
+				),
238
+				$post_type,
239
+				$plural_slug
240
+			),
241
+			'capability_type'    => 'post',
242
+			'map_meta_cap'       => true,
243
+			'has_archive'        => true,
244
+			'hierarchical'       => false,
245
+			'menu_position'      => null,
246
+			'supports'           => array(
247
+				'title',
248
+				'editor',
249
+				'author',
250
+				'thumbnail',
251
+				'excerpt',
252
+				'custom-fields',
253
+				'comments',
254
+			),
255
+		);
256
+	}
257 257
 }
Please login to merge, or discard this patch.
core/domain/services/validation/email/strategies/Basic.php 2 patches
Indentation   +102 added lines, -102 removed lines patch added patch discarded remove patch
@@ -15,112 +15,112 @@
 block discarded – undo
15 15
 class Basic implements EmailValidatorInterface
16 16
 {
17 17
 
18
-    /**
19
-     * @param string $email_address
20
-     * @return bool
21
-     * @throws EmailValidationException
22
-     */
23
-    public function validate($email_address)
24
-    {
25
-        if (! preg_match('/^.+\@\S+$/', $email_address)) {
26
-            // email not in correct {string}@{string} format
27
-            throw new EmailValidationException(
28
-                esc_html__('Email does not have the required @ sign.', 'event_espresso')
29
-            );
30
-        }
31
-        $atIndex = $this->getAtIndex($email_address);
32
-        $local = $this->getLocalPartOfEmail($email_address, $atIndex);
33
-        $localLen = strlen($local);
34
-        if ($localLen < 1) {
35
-            // no local part
36
-            throw new EmailValidationException(
37
-                esc_html__('Email local-part (before the @) is required.', 'event_espresso')
38
-            );
39
-        }
40
-        if ($localLen > 64) {
41
-            // local part length exceeded
42
-            throw new EmailValidationException(
43
-                esc_html__('Email local-part (before the @) is too long.', 'event_espresso')
44
-            );
45
-        }
46
-        if ($local[0] === '.') {
47
-            // local part starts with '.'
48
-            throw new EmailValidationException(
49
-                esc_html__('Email local-part (before the @) must not begin with a period.', 'event_espresso')
50
-            );
51
-        }
52
-        if ($local[ $localLen - 1 ] === '.') {
53
-            // local part starts or ends with '.'
54
-            throw new EmailValidationException(
55
-                esc_html__('Email local-part (before the @) must not end with a period.', 'event_espresso')
56
-            );
57
-        }
58
-        if (preg_match('/\\.\\./', $local)) {
59
-            // local part has two consecutive dots
60
-            throw new EmailValidationException(
61
-                esc_html__(
62
-                    'Email local-part (before the @) must not have two consecutive periods.',
63
-                    'event_espresso'
64
-                )
65
-            );
66
-        }
67
-        $domain = $this->getDomainPartOfEmail($email_address, $atIndex);
68
-        $domainLen = strlen($domain);
69
-        if ($domainLen < 1) {
70
-            throw new EmailValidationException(
71
-                esc_html__('Email domain (after the @) is required.', 'event_espresso')
72
-            );
73
-        }
74
-        if ($domainLen > 255) {
75
-            // domain part length exceeded
76
-            throw new EmailValidationException(
77
-                esc_html__('Email domain (after the @) is too long.', 'event_espresso')
78
-            );
79
-        }
80
-        if (preg_match('/\\.\\./', $domain)) {
81
-            // domain part has two consecutive dots
82
-            throw new EmailValidationException(
83
-                esc_html__('Email domain (after the @) must not have two consecutive periods.', 'event_espresso')
84
-            );
85
-        }
86
-        return true;
87
-    }
18
+	/**
19
+	 * @param string $email_address
20
+	 * @return bool
21
+	 * @throws EmailValidationException
22
+	 */
23
+	public function validate($email_address)
24
+	{
25
+		if (! preg_match('/^.+\@\S+$/', $email_address)) {
26
+			// email not in correct {string}@{string} format
27
+			throw new EmailValidationException(
28
+				esc_html__('Email does not have the required @ sign.', 'event_espresso')
29
+			);
30
+		}
31
+		$atIndex = $this->getAtIndex($email_address);
32
+		$local = $this->getLocalPartOfEmail($email_address, $atIndex);
33
+		$localLen = strlen($local);
34
+		if ($localLen < 1) {
35
+			// no local part
36
+			throw new EmailValidationException(
37
+				esc_html__('Email local-part (before the @) is required.', 'event_espresso')
38
+			);
39
+		}
40
+		if ($localLen > 64) {
41
+			// local part length exceeded
42
+			throw new EmailValidationException(
43
+				esc_html__('Email local-part (before the @) is too long.', 'event_espresso')
44
+			);
45
+		}
46
+		if ($local[0] === '.') {
47
+			// local part starts with '.'
48
+			throw new EmailValidationException(
49
+				esc_html__('Email local-part (before the @) must not begin with a period.', 'event_espresso')
50
+			);
51
+		}
52
+		if ($local[ $localLen - 1 ] === '.') {
53
+			// local part starts or ends with '.'
54
+			throw new EmailValidationException(
55
+				esc_html__('Email local-part (before the @) must not end with a period.', 'event_espresso')
56
+			);
57
+		}
58
+		if (preg_match('/\\.\\./', $local)) {
59
+			// local part has two consecutive dots
60
+			throw new EmailValidationException(
61
+				esc_html__(
62
+					'Email local-part (before the @) must not have two consecutive periods.',
63
+					'event_espresso'
64
+				)
65
+			);
66
+		}
67
+		$domain = $this->getDomainPartOfEmail($email_address, $atIndex);
68
+		$domainLen = strlen($domain);
69
+		if ($domainLen < 1) {
70
+			throw new EmailValidationException(
71
+				esc_html__('Email domain (after the @) is required.', 'event_espresso')
72
+			);
73
+		}
74
+		if ($domainLen > 255) {
75
+			// domain part length exceeded
76
+			throw new EmailValidationException(
77
+				esc_html__('Email domain (after the @) is too long.', 'event_espresso')
78
+			);
79
+		}
80
+		if (preg_match('/\\.\\./', $domain)) {
81
+			// domain part has two consecutive dots
82
+			throw new EmailValidationException(
83
+				esc_html__('Email domain (after the @) must not have two consecutive periods.', 'event_espresso')
84
+			);
85
+		}
86
+		return true;
87
+	}
88 88
 
89 89
 
90
-    /**
91
-     * returns the location of the @ symbol
92
-     *
93
-     * @param string $email_address
94
-     * @return bool|string
95
-     */
96
-    protected function getAtIndex($email_address)
97
-    {
98
-        return strrpos($email_address, '@');
99
-    }
90
+	/**
91
+	 * returns the location of the @ symbol
92
+	 *
93
+	 * @param string $email_address
94
+	 * @return bool|string
95
+	 */
96
+	protected function getAtIndex($email_address)
97
+	{
98
+		return strrpos($email_address, '@');
99
+	}
100 100
 
101 101
 
102
-    /**
103
-     * Gets the local part of the email
104
-     *
105
-     * @param string   $email_address
106
-     * @param bool|int $atIndex
107
-     * @return bool|string
108
-     */
109
-    protected function getLocalPartOfEmail($email_address, $atIndex)
110
-    {
111
-        return substr($email_address, 0, $atIndex);
112
-    }
102
+	/**
103
+	 * Gets the local part of the email
104
+	 *
105
+	 * @param string   $email_address
106
+	 * @param bool|int $atIndex
107
+	 * @return bool|string
108
+	 */
109
+	protected function getLocalPartOfEmail($email_address, $atIndex)
110
+	{
111
+		return substr($email_address, 0, $atIndex);
112
+	}
113 113
 
114 114
 
115
-    /**
116
-     * Gets the domain part of the email
117
-     *
118
-     * @param string   $email_address
119
-     * @param bool|int $atIndex
120
-     * @return bool|string
121
-     */
122
-    protected function getDomainPartOfEmail($email_address, $atIndex)
123
-    {
124
-        return substr($email_address, $atIndex + 1);
125
-    }
115
+	/**
116
+	 * Gets the domain part of the email
117
+	 *
118
+	 * @param string   $email_address
119
+	 * @param bool|int $atIndex
120
+	 * @return bool|string
121
+	 */
122
+	protected function getDomainPartOfEmail($email_address, $atIndex)
123
+	{
124
+		return substr($email_address, $atIndex + 1);
125
+	}
126 126
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
      */
23 23
     public function validate($email_address)
24 24
     {
25
-        if (! preg_match('/^.+\@\S+$/', $email_address)) {
25
+        if ( ! preg_match('/^.+\@\S+$/', $email_address)) {
26 26
             // email not in correct {string}@{string} format
27 27
             throw new EmailValidationException(
28 28
                 esc_html__('Email does not have the required @ sign.', 'event_espresso')
@@ -49,7 +49,7 @@  discard block
 block discarded – undo
49 49
                 esc_html__('Email local-part (before the @) must not begin with a period.', 'event_espresso')
50 50
             );
51 51
         }
52
-        if ($local[ $localLen - 1 ] === '.') {
52
+        if ($local[$localLen - 1] === '.') {
53 53
             // local part starts or ends with '.'
54 54
             throw new EmailValidationException(
55 55
                 esc_html__('Email local-part (before the @) must not end with a period.', 'event_espresso')
Please login to merge, or discard this patch.
core/domain/services/registration/CopyRegistrationService.php 2 patches
Indentation   +139 added lines, -139 removed lines patch added patch discarded remove patch
@@ -26,149 +26,149 @@
 block discarded – undo
26 26
 {
27 27
 
28 28
 
29
-    /**
30
-     * @param EE_Registration $target_registration
31
-     * @param EE_Registration $registration_to_copy
32
-     * @return bool
33
-     * @throws UnexpectedEntityException
34
-     * @throws EntityNotFoundException
35
-     * @throws RuntimeException
36
-     * @throws EE_Error
37
-     */
38
-    public function copyRegistrationDetails(
39
-        EE_Registration $target_registration,
40
-        EE_Registration $registration_to_copy
41
-    ) {
42
-        // copy attendee
43
-        $target_registration->set_attendee_id($registration_to_copy->attendee_ID());
44
-        $target_registration->updateStatusBasedOnTotalPaid(false);
45
-        $target_registration->save();
46
-        // get answers to previous reg questions
47
-        $answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
48
-        // get questions to new event reg form
49
-        $new_event = $target_registration->event();
50
-        $question_groups = $new_event->question_groups(
51
-            array(
52
-                array(
53
-                    'Event.EVT_ID'                     => $new_event->ID(),
54
-                    'Event_Question_Group.EQG_primary' => $registration_to_copy->is_primary_registrant(),
55
-                ),
56
-                'order_by' => array('QSG_order' => 'ASC'),
57
-            )
58
-        );
59
-        foreach ($question_groups as $question_group) {
60
-            if ($question_group instanceof \EE_Question_Group) {
61
-                foreach ($question_group->questions() as $question) {
62
-                    if ($question instanceof EE_Question) {
63
-                        $this->generateNewAnswer(
64
-                            $question,
65
-                            $target_registration,
66
-                            $answers
67
-                        );
68
-                    }
69
-                }
70
-            }
71
-        }
72
-        return true;
73
-    }
29
+	/**
30
+	 * @param EE_Registration $target_registration
31
+	 * @param EE_Registration $registration_to_copy
32
+	 * @return bool
33
+	 * @throws UnexpectedEntityException
34
+	 * @throws EntityNotFoundException
35
+	 * @throws RuntimeException
36
+	 * @throws EE_Error
37
+	 */
38
+	public function copyRegistrationDetails(
39
+		EE_Registration $target_registration,
40
+		EE_Registration $registration_to_copy
41
+	) {
42
+		// copy attendee
43
+		$target_registration->set_attendee_id($registration_to_copy->attendee_ID());
44
+		$target_registration->updateStatusBasedOnTotalPaid(false);
45
+		$target_registration->save();
46
+		// get answers to previous reg questions
47
+		$answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
48
+		// get questions to new event reg form
49
+		$new_event = $target_registration->event();
50
+		$question_groups = $new_event->question_groups(
51
+			array(
52
+				array(
53
+					'Event.EVT_ID'                     => $new_event->ID(),
54
+					'Event_Question_Group.EQG_primary' => $registration_to_copy->is_primary_registrant(),
55
+				),
56
+				'order_by' => array('QSG_order' => 'ASC'),
57
+			)
58
+		);
59
+		foreach ($question_groups as $question_group) {
60
+			if ($question_group instanceof \EE_Question_Group) {
61
+				foreach ($question_group->questions() as $question) {
62
+					if ($question instanceof EE_Question) {
63
+						$this->generateNewAnswer(
64
+							$question,
65
+							$target_registration,
66
+							$answers
67
+						);
68
+					}
69
+				}
70
+			}
71
+		}
72
+		return true;
73
+	}
74 74
 
75 75
 
76
-    /**
77
-     * @param EE_Answer[] $answers
78
-     * @return array
79
-     * @throws EE_Error
80
-     */
81
-    protected function reindexAnswersByQuestionId(array $answers)
82
-    {
83
-        $reindexed_answers = array();
84
-        foreach ($answers as $answer) {
85
-            if ($answer instanceof EE_Answer) {
86
-                $reindexed_answers[ $answer->question_ID() ] = $answer->value();
87
-            }
88
-        }
89
-        return $reindexed_answers;
90
-    }
76
+	/**
77
+	 * @param EE_Answer[] $answers
78
+	 * @return array
79
+	 * @throws EE_Error
80
+	 */
81
+	protected function reindexAnswersByQuestionId(array $answers)
82
+	{
83
+		$reindexed_answers = array();
84
+		foreach ($answers as $answer) {
85
+			if ($answer instanceof EE_Answer) {
86
+				$reindexed_answers[ $answer->question_ID() ] = $answer->value();
87
+			}
88
+		}
89
+		return $reindexed_answers;
90
+	}
91 91
 
92 92
 
93
-    /**
94
-     * @param EE_Question      $question
95
-     * @param EE_Registration  $registration
96
-     * @param                  $previous_answers
97
-     * @return EE_Answer
98
-     * @throws UnexpectedEntityException
99
-     * @throws EE_Error
100
-     */
101
-    protected function generateNewAnswer(
102
-        EE_Question $question,
103
-        EE_Registration $registration,
104
-        $previous_answers
105
-    ) {
106
-        $old_answer_value = isset($previous_answers[ $question->ID() ])
107
-            ? $previous_answers[ $question->ID() ]
108
-            : '';
109
-        $new_answer = EE_Answer::new_instance(
110
-            array(
111
-                'QST_ID'    => $question->ID(),
112
-                'REG_ID'    => $registration->ID(),
113
-                'ANS_value' => $old_answer_value,
114
-            )
115
-        );
116
-        if (! $new_answer instanceof EE_Answer) {
117
-            throw new UnexpectedEntityException($new_answer, 'EE_Answer');
118
-        }
119
-        $new_answer->save();
120
-        return $new_answer;
121
-    }
93
+	/**
94
+	 * @param EE_Question      $question
95
+	 * @param EE_Registration  $registration
96
+	 * @param                  $previous_answers
97
+	 * @return EE_Answer
98
+	 * @throws UnexpectedEntityException
99
+	 * @throws EE_Error
100
+	 */
101
+	protected function generateNewAnswer(
102
+		EE_Question $question,
103
+		EE_Registration $registration,
104
+		$previous_answers
105
+	) {
106
+		$old_answer_value = isset($previous_answers[ $question->ID() ])
107
+			? $previous_answers[ $question->ID() ]
108
+			: '';
109
+		$new_answer = EE_Answer::new_instance(
110
+			array(
111
+				'QST_ID'    => $question->ID(),
112
+				'REG_ID'    => $registration->ID(),
113
+				'ANS_value' => $old_answer_value,
114
+			)
115
+		);
116
+		if (! $new_answer instanceof EE_Answer) {
117
+			throw new UnexpectedEntityException($new_answer, 'EE_Answer');
118
+		}
119
+		$new_answer->save();
120
+		return $new_answer;
121
+	}
122 122
 
123 123
 
124
-    /**
125
-     * @param EE_Registration $target_registration
126
-     * @param EE_Registration $registration_to_copy
127
-     * @return bool
128
-     * @throws RuntimeException
129
-     * @throws UnexpectedEntityException
130
-     * @throws EE_Error
131
-     */
132
-    public function copyPaymentDetails(
133
-        EE_Registration $target_registration,
134
-        EE_Registration $registration_to_copy
135
-    ) {
136
-        $save = false;
137
-        $previous_registration_payments = $registration_to_copy->registration_payments();
138
-        $new_registration_payment_total = 0;
139
-        $registration_to_copy_total = $registration_to_copy->paid();
140
-        foreach ($previous_registration_payments as $previous_registration_payment) {
141
-            if ($previous_registration_payment instanceof EE_Registration_Payment
142
-                && $previous_registration_payment->payment() instanceof EE_Payment
143
-                && $previous_registration_payment->payment()->is_approved()
144
-            ) {
145
-                $payment_amount = $previous_registration_payment->amount();
146
-                $new_registration_payment = EE_Registration_Payment::new_instance(
147
-                    array(
148
-                        'REG_ID'     => $target_registration->ID(),
149
-                        'PAY_ID'     => $previous_registration_payment->payment()->ID(),
150
-                        'RPY_amount' => $payment_amount,
151
-                    )
152
-                );
153
-                if (! $new_registration_payment instanceof EE_Registration_Payment) {
154
-                    throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
155
-                }
156
-                $new_registration_payment->save();
157
-                // if new reg payment is good, then set old reg payment amount to zero
158
-                $previous_registration_payment->set_amount(0);
159
-                $previous_registration_payment->save();
160
-                // now  increment/decrement payment amounts
161
-                $new_registration_payment_total += $payment_amount;
162
-                $registration_to_copy_total -= $payment_amount;
163
-                $save = true;
164
-            }
165
-        }
166
-        if ($save) {
167
-            $target_registration->set_paid($new_registration_payment_total);
168
-            $target_registration->save();
169
-            $registration_to_copy->set_paid($registration_to_copy_total);
170
-            $registration_to_copy->save();
171
-        }
172
-        return true;
173
-    }
124
+	/**
125
+	 * @param EE_Registration $target_registration
126
+	 * @param EE_Registration $registration_to_copy
127
+	 * @return bool
128
+	 * @throws RuntimeException
129
+	 * @throws UnexpectedEntityException
130
+	 * @throws EE_Error
131
+	 */
132
+	public function copyPaymentDetails(
133
+		EE_Registration $target_registration,
134
+		EE_Registration $registration_to_copy
135
+	) {
136
+		$save = false;
137
+		$previous_registration_payments = $registration_to_copy->registration_payments();
138
+		$new_registration_payment_total = 0;
139
+		$registration_to_copy_total = $registration_to_copy->paid();
140
+		foreach ($previous_registration_payments as $previous_registration_payment) {
141
+			if ($previous_registration_payment instanceof EE_Registration_Payment
142
+				&& $previous_registration_payment->payment() instanceof EE_Payment
143
+				&& $previous_registration_payment->payment()->is_approved()
144
+			) {
145
+				$payment_amount = $previous_registration_payment->amount();
146
+				$new_registration_payment = EE_Registration_Payment::new_instance(
147
+					array(
148
+						'REG_ID'     => $target_registration->ID(),
149
+						'PAY_ID'     => $previous_registration_payment->payment()->ID(),
150
+						'RPY_amount' => $payment_amount,
151
+					)
152
+				);
153
+				if (! $new_registration_payment instanceof EE_Registration_Payment) {
154
+					throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
155
+				}
156
+				$new_registration_payment->save();
157
+				// if new reg payment is good, then set old reg payment amount to zero
158
+				$previous_registration_payment->set_amount(0);
159
+				$previous_registration_payment->save();
160
+				// now  increment/decrement payment amounts
161
+				$new_registration_payment_total += $payment_amount;
162
+				$registration_to_copy_total -= $payment_amount;
163
+				$save = true;
164
+			}
165
+		}
166
+		if ($save) {
167
+			$target_registration->set_paid($new_registration_payment_total);
168
+			$target_registration->save();
169
+			$registration_to_copy->set_paid($registration_to_copy_total);
170
+			$registration_to_copy->save();
171
+		}
172
+		return true;
173
+	}
174 174
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -83,7 +83,7 @@  discard block
 block discarded – undo
83 83
         $reindexed_answers = array();
84 84
         foreach ($answers as $answer) {
85 85
             if ($answer instanceof EE_Answer) {
86
-                $reindexed_answers[ $answer->question_ID() ] = $answer->value();
86
+                $reindexed_answers[$answer->question_ID()] = $answer->value();
87 87
             }
88 88
         }
89 89
         return $reindexed_answers;
@@ -103,8 +103,8 @@  discard block
 block discarded – undo
103 103
         EE_Registration $registration,
104 104
         $previous_answers
105 105
     ) {
106
-        $old_answer_value = isset($previous_answers[ $question->ID() ])
107
-            ? $previous_answers[ $question->ID() ]
106
+        $old_answer_value = isset($previous_answers[$question->ID()])
107
+            ? $previous_answers[$question->ID()]
108 108
             : '';
109 109
         $new_answer = EE_Answer::new_instance(
110 110
             array(
@@ -113,7 +113,7 @@  discard block
 block discarded – undo
113 113
                 'ANS_value' => $old_answer_value,
114 114
             )
115 115
         );
116
-        if (! $new_answer instanceof EE_Answer) {
116
+        if ( ! $new_answer instanceof EE_Answer) {
117 117
             throw new UnexpectedEntityException($new_answer, 'EE_Answer');
118 118
         }
119 119
         $new_answer->save();
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
                         'RPY_amount' => $payment_amount,
151 151
                     )
152 152
                 );
153
-                if (! $new_registration_payment instanceof EE_Registration_Payment) {
153
+                if ( ! $new_registration_payment instanceof EE_Registration_Payment) {
154 154
                     throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
155 155
                 }
156 156
                 $new_registration_payment->save();
Please login to merge, or discard this patch.