Completed
Branch dependabot/npm_and_yarn/hosted... (af6e61)
by
unknown
19:17 queued 10:20
created
core/domain/entities/custom_post_types/CustomPostTypeDefinitions.php 2 patches
Indentation   +263 added lines, -263 removed lines patch added patch discarded remove patch
@@ -17,287 +17,287 @@
 block discarded – undo
17 17
 class CustomPostTypeDefinitions
18 18
 {
19 19
 
20
-    /**
21
-     * @var EE_Core_Config
22
-     */
23
-    public $core_config;
20
+	/**
21
+	 * @var EE_Core_Config
22
+	 */
23
+	public $core_config;
24 24
 
25
-    /**
26
-     * @var array $custom_post_types
27
-     */
28
-    private $custom_post_types;
25
+	/**
26
+	 * @var array $custom_post_types
27
+	 */
28
+	private $custom_post_types;
29 29
 
30
-    /**
31
-     * @var LoaderInterface $loader
32
-     */
33
-    private $loader;
30
+	/**
31
+	 * @var LoaderInterface $loader
32
+	 */
33
+	private $loader;
34 34
 
35 35
 
36
-    /**
37
-     * EspressoCustomPostTypeDefinitions constructor.
38
-     *
39
-     * @param EE_Core_Config  $core_config
40
-     * @param LoaderInterface $loader
41
-     */
42
-    public function __construct(EE_Core_Config $core_config, LoaderInterface $loader)
43
-    {
44
-        $this->core_config = $core_config;
45
-        $this->loader = $loader;
46
-        $this->setDefinitions();
47
-    }
36
+	/**
37
+	 * EspressoCustomPostTypeDefinitions constructor.
38
+	 *
39
+	 * @param EE_Core_Config  $core_config
40
+	 * @param LoaderInterface $loader
41
+	 */
42
+	public function __construct(EE_Core_Config $core_config, LoaderInterface $loader)
43
+	{
44
+		$this->core_config = $core_config;
45
+		$this->loader = $loader;
46
+		$this->setDefinitions();
47
+	}
48 48
 
49 49
 
50
-    /**
51
-     * defines Espresso Custom Post Types
52
-     * NOTE the ['args']['page_templates'] array index is something specific to our CPTs
53
-     * and not part of the WP custom post type api.
54
-     *
55
-     * @return void
56
-     */
57
-    private function setDefinitions()
58
-    {
59
-        $this->custom_post_types = array(
60
-            'espresso_events'    => array(
61
-                'singular_name' => esc_html__('Event', 'event_espresso'),
62
-                'plural_name'   => esc_html__('Events', 'event_espresso'),
63
-                'singular_slug' => esc_html__('event', 'event_espresso'),
64
-                'plural_slug'   => $this->core_config->event_cpt_slug,
65
-                'class_name'    => 'EE_Event',
66
-                'model_name'    => 'EEM_Event',
67
-                'args'          => array(
68
-                    'public'            => true,
69
-                    'show_in_nav_menus' => true,
70
-                    'capability_type'   => 'event',
71
-                    'capabilities'      => array(
72
-                        'edit_post'              => 'ee_edit_event',
73
-                        'read_post'              => 'ee_read_event',
74
-                        'delete_post'            => 'ee_delete_event',
75
-                        'edit_posts'             => 'ee_edit_events',
76
-                        'edit_others_posts'      => 'ee_edit_others_events',
77
-                        'publish_posts'          => 'ee_publish_events',
78
-                        'read_private_posts'     => 'ee_read_private_events',
79
-                        'delete_posts'           => 'ee_delete_events',
80
-                        'delete_private_posts'   => 'ee_delete_private_events',
81
-                        'delete_published_posts' => 'ee_delete_published_events',
82
-                        'delete_others_posts'    => 'ee_delete_others_events',
83
-                        'edit_private_posts'     => 'ee_edit_private_events',
84
-                        'edit_published_posts'   => 'ee_edit_published_events',
85
-                    ),
86
-                    'taxonomies'        => array(
87
-                        'espresso_event_categories',
88
-                        'espresso_event_type',
89
-                        'post_tag',
90
-                    ),
91
-                    'page_templates'    => true,
92
-                ),
93
-            ),
94
-            'espresso_venues'    => array(
95
-                'singular_name' => esc_html__('Venue', 'event_espresso'),
96
-                'plural_name'   => esc_html__('Venues', 'event_espresso'),
97
-                'singular_slug' => esc_html__('venue', 'event_espresso'),
98
-                'plural_slug'   => esc_html__('venues', 'event_espresso'),
99
-                'class_name'    => 'EE_Venue',
100
-                'model_name'    => 'EEM_Venue',
101
-                'args'          => array(
102
-                    'public'            => true,
103
-                    'show_in_nav_menus' => false, // by default this doesn't show for decaf,
104
-                    'capability_type'   => 'venue',
105
-                    'capabilities'      => array(
106
-                        'edit_post'              => 'ee_edit_venue',
107
-                        'read_post'              => 'ee_read_venue',
108
-                        'delete_post'            => 'ee_delete_venue',
109
-                        'edit_posts'             => 'ee_edit_venues',
110
-                        'edit_others_posts'      => 'ee_edit_others_venues',
111
-                        'publish_posts'          => 'ee_publish_venues',
112
-                        'read_private_posts'     => 'ee_read_private_venues',
113
-                        'delete_posts'           => 'ee_delete_venues',
114
-                        'delete_private_posts'   => 'ee_delete_private_venues',
115
-                        'delete_published_posts' => 'ee_delete_published_venues',
116
-                        'delete_others_posts'    => 'ee_edit_others_venues',
117
-                        'edit_private_posts'     => 'ee_edit_private_venues',
118
-                        'edit_published_posts'   => 'ee_edit_published_venues',
119
-                    ),
120
-                    'taxonomies'        => array(
121
-                        'espresso_venue_categories',
122
-                        'post_tag',
123
-                    ),
124
-                    'page_templates'    => true,
125
-                ),
126
-            ),
127
-            'espresso_attendees' => array(
128
-                'singular_name' => esc_html__('Contact', 'event_espresso'),
129
-                'plural_name'   => esc_html__('Contacts', 'event_espresso'),
130
-                'singular_slug' => esc_html__('contact', 'event_espresso'),
131
-                'plural_slug'   => esc_html__('contacts', 'event_espresso'),
132
-                'class_name'    => 'EE_Attendee',
133
-                'model_name'    => 'EEM_Attendee',
134
-                'args'          => array(
135
-                    'public'             => false,
136
-                    'publicly_queryable' => false,
137
-                    'hierarchical'       => false,
138
-                    'has_archive'        => false,
139
-                    'supports'           => array(
140
-                        'editor',
141
-                        'thumbnail',
142
-                        'excerpt',
143
-                        'custom-fields',
144
-                        'comments',
145
-                    ),
146
-                    'taxonomies'         => array('post_tag'),
147
-                    'capability_type'    => 'contact',
148
-                    'capabilities'       => array(
149
-                        'edit_post'              => 'ee_edit_contact',
150
-                        'read_post'              => 'ee_read_contact',
151
-                        'delete_post'            => 'ee_delete_contact',
152
-                        'edit_posts'             => 'ee_edit_contacts',
153
-                        'edit_others_posts'      => 'ee_edit_contacts',
154
-                        'publish_posts'          => 'ee_edit_contacts',
155
-                        'read_private_posts'     => 'ee_edit_contacts',
156
-                        'delete_posts'           => 'ee_delete_contacts',
157
-                        'delete_private_posts'   => 'ee_delete_contacts',
158
-                        'delete_published_posts' => 'ee_delete_contacts',
159
-                        'delete_others_posts'    => 'ee_delete_contacts',
160
-                        'edit_private_posts'     => 'ee_edit_contacts',
161
-                        'edit_published_posts'   => 'ee_edit_contacts',
162
-                    ),
163
-                ),
164
-            ),
165
-        );
166
-    }
50
+	/**
51
+	 * defines Espresso Custom Post Types
52
+	 * NOTE the ['args']['page_templates'] array index is something specific to our CPTs
53
+	 * and not part of the WP custom post type api.
54
+	 *
55
+	 * @return void
56
+	 */
57
+	private function setDefinitions()
58
+	{
59
+		$this->custom_post_types = array(
60
+			'espresso_events'    => array(
61
+				'singular_name' => esc_html__('Event', 'event_espresso'),
62
+				'plural_name'   => esc_html__('Events', 'event_espresso'),
63
+				'singular_slug' => esc_html__('event', 'event_espresso'),
64
+				'plural_slug'   => $this->core_config->event_cpt_slug,
65
+				'class_name'    => 'EE_Event',
66
+				'model_name'    => 'EEM_Event',
67
+				'args'          => array(
68
+					'public'            => true,
69
+					'show_in_nav_menus' => true,
70
+					'capability_type'   => 'event',
71
+					'capabilities'      => array(
72
+						'edit_post'              => 'ee_edit_event',
73
+						'read_post'              => 'ee_read_event',
74
+						'delete_post'            => 'ee_delete_event',
75
+						'edit_posts'             => 'ee_edit_events',
76
+						'edit_others_posts'      => 'ee_edit_others_events',
77
+						'publish_posts'          => 'ee_publish_events',
78
+						'read_private_posts'     => 'ee_read_private_events',
79
+						'delete_posts'           => 'ee_delete_events',
80
+						'delete_private_posts'   => 'ee_delete_private_events',
81
+						'delete_published_posts' => 'ee_delete_published_events',
82
+						'delete_others_posts'    => 'ee_delete_others_events',
83
+						'edit_private_posts'     => 'ee_edit_private_events',
84
+						'edit_published_posts'   => 'ee_edit_published_events',
85
+					),
86
+					'taxonomies'        => array(
87
+						'espresso_event_categories',
88
+						'espresso_event_type',
89
+						'post_tag',
90
+					),
91
+					'page_templates'    => true,
92
+				),
93
+			),
94
+			'espresso_venues'    => array(
95
+				'singular_name' => esc_html__('Venue', 'event_espresso'),
96
+				'plural_name'   => esc_html__('Venues', 'event_espresso'),
97
+				'singular_slug' => esc_html__('venue', 'event_espresso'),
98
+				'plural_slug'   => esc_html__('venues', 'event_espresso'),
99
+				'class_name'    => 'EE_Venue',
100
+				'model_name'    => 'EEM_Venue',
101
+				'args'          => array(
102
+					'public'            => true,
103
+					'show_in_nav_menus' => false, // by default this doesn't show for decaf,
104
+					'capability_type'   => 'venue',
105
+					'capabilities'      => array(
106
+						'edit_post'              => 'ee_edit_venue',
107
+						'read_post'              => 'ee_read_venue',
108
+						'delete_post'            => 'ee_delete_venue',
109
+						'edit_posts'             => 'ee_edit_venues',
110
+						'edit_others_posts'      => 'ee_edit_others_venues',
111
+						'publish_posts'          => 'ee_publish_venues',
112
+						'read_private_posts'     => 'ee_read_private_venues',
113
+						'delete_posts'           => 'ee_delete_venues',
114
+						'delete_private_posts'   => 'ee_delete_private_venues',
115
+						'delete_published_posts' => 'ee_delete_published_venues',
116
+						'delete_others_posts'    => 'ee_edit_others_venues',
117
+						'edit_private_posts'     => 'ee_edit_private_venues',
118
+						'edit_published_posts'   => 'ee_edit_published_venues',
119
+					),
120
+					'taxonomies'        => array(
121
+						'espresso_venue_categories',
122
+						'post_tag',
123
+					),
124
+					'page_templates'    => true,
125
+				),
126
+			),
127
+			'espresso_attendees' => array(
128
+				'singular_name' => esc_html__('Contact', 'event_espresso'),
129
+				'plural_name'   => esc_html__('Contacts', 'event_espresso'),
130
+				'singular_slug' => esc_html__('contact', 'event_espresso'),
131
+				'plural_slug'   => esc_html__('contacts', 'event_espresso'),
132
+				'class_name'    => 'EE_Attendee',
133
+				'model_name'    => 'EEM_Attendee',
134
+				'args'          => array(
135
+					'public'             => false,
136
+					'publicly_queryable' => false,
137
+					'hierarchical'       => false,
138
+					'has_archive'        => false,
139
+					'supports'           => array(
140
+						'editor',
141
+						'thumbnail',
142
+						'excerpt',
143
+						'custom-fields',
144
+						'comments',
145
+					),
146
+					'taxonomies'         => array('post_tag'),
147
+					'capability_type'    => 'contact',
148
+					'capabilities'       => array(
149
+						'edit_post'              => 'ee_edit_contact',
150
+						'read_post'              => 'ee_read_contact',
151
+						'delete_post'            => 'ee_delete_contact',
152
+						'edit_posts'             => 'ee_edit_contacts',
153
+						'edit_others_posts'      => 'ee_edit_contacts',
154
+						'publish_posts'          => 'ee_edit_contacts',
155
+						'read_private_posts'     => 'ee_edit_contacts',
156
+						'delete_posts'           => 'ee_delete_contacts',
157
+						'delete_private_posts'   => 'ee_delete_contacts',
158
+						'delete_published_posts' => 'ee_delete_contacts',
159
+						'delete_others_posts'    => 'ee_delete_contacts',
160
+						'edit_private_posts'     => 'ee_edit_contacts',
161
+						'edit_published_posts'   => 'ee_edit_contacts',
162
+					),
163
+				),
164
+			),
165
+		);
166
+	}
167 167
 
168 168
 
169
-    /**
170
-     * @return array
171
-     */
172
-    public function getDefinitions()
173
-    {
174
-        return (array) apply_filters(
175
-            'FHEE__EventEspresso_core_domain_entities_custom_post_types_CustomPostTypeDefinitions__getCustomPostTypes',
176
-            // legacy filter applied for now,
177
-            // later on we'll run a has_filter($tag) check and throw a doing_it_wrong() notice
178
-            apply_filters(
179
-                'FHEE__EE_Register_CPTs__get_CPTs__cpts',
180
-                $this->custom_post_types
181
-            )
182
-        );
183
-    }
169
+	/**
170
+	 * @return array
171
+	 */
172
+	public function getDefinitions()
173
+	{
174
+		return (array) apply_filters(
175
+			'FHEE__EventEspresso_core_domain_entities_custom_post_types_CustomPostTypeDefinitions__getCustomPostTypes',
176
+			// legacy filter applied for now,
177
+			// later on we'll run a has_filter($tag) check and throw a doing_it_wrong() notice
178
+			apply_filters(
179
+				'FHEE__EE_Register_CPTs__get_CPTs__cpts',
180
+				$this->custom_post_types
181
+			)
182
+		);
183
+	}
184 184
 
185 185
 
186
-    /**
187
-     * @return array
188
-     */
189
-    public function getCustomPostTypeSlugs()
190
-    {
191
-        return array_keys($this->getDefinitions());
192
-    }
186
+	/**
187
+	 * @return array
188
+	 */
189
+	public function getCustomPostTypeSlugs()
190
+	{
191
+		return array_keys($this->getDefinitions());
192
+	}
193 193
 
194 194
 
195
-    /**
196
-     * This basically goes through the CPT array and returns only CPT's
197
-     * that have the ['args']['public'] option set as false
198
-     *
199
-     * @return array
200
-     */
201
-    public function getPrivateCustomPostTypes()
202
-    {
203
-        $private_CPTs = array();
204
-        foreach ($this->getDefinitions() as $CPT => $details) {
205
-            if (empty($details['args']['public'])) {
206
-                $private_CPTs[ $CPT ] = $details;
207
-            }
208
-        }
209
-        return $private_CPTs;
210
-    }
195
+	/**
196
+	 * This basically goes through the CPT array and returns only CPT's
197
+	 * that have the ['args']['public'] option set as false
198
+	 *
199
+	 * @return array
200
+	 */
201
+	public function getPrivateCustomPostTypes()
202
+	{
203
+		$private_CPTs = array();
204
+		foreach ($this->getDefinitions() as $CPT => $details) {
205
+			if (empty($details['args']['public'])) {
206
+				$private_CPTs[ $CPT ] = $details;
207
+			}
208
+		}
209
+		return $private_CPTs;
210
+	}
211 211
 
212 212
 
213
-    /**
214
-     * This returns the corresponding model name for cpts registered by EE.
215
-     *
216
-     * @param string $post_type_slug    If a slug is included, then attempt to retrieve
217
-     *                                  the model name for the given cpt slug.
218
-     *                                  Otherwise if empty, then we'll return
219
-     *                                  all cpt model names for cpts registered in EE.
220
-     * @return array                    Empty array if no matching model names for the given slug
221
-     *                                  or an array of model names indexed by post type slug.
222
-     */
223
-    public function getCustomPostTypeModelNames($post_type_slug = '')
224
-    {
225
-        $cpts = $this->getDefinitions();
226
-        // first if slug passed in...
227
-        if (! empty($post_type_slug)) {
228
-            // check that slug and cpt match
229
-            if (! isset($cpts[ $post_type_slug ])) {
230
-                return array();
231
-            }
232
-            if (empty($cpts[ $post_type_slug ]['class_name'])
233
-                && empty($cpts[ $post_type_slug ]['model_name'])
234
-            ) {
235
-                return array();
236
-            }
237
-            // k let's get the model name for this cpt.
238
-            return $this->getCustomPostTypeModelName($post_type_slug, $cpts[ $post_type_slug ]);
239
-        }
240
-        // if we made it here then we're returning an array of cpt model names indexed by post_type_slug.
241
-        $cpt_models = array();
242
-        foreach ($cpts as $slug => $args) {
243
-            $model = $this->getCustomPostTypeModelName($post_type_slug, $cpts[ $post_type_slug ]);
244
-            if (! empty($model)) {
245
-                $cpt_models[ $slug ] = $model;
246
-            }
247
-        }
248
-        return $cpt_models;
249
-    }
213
+	/**
214
+	 * This returns the corresponding model name for cpts registered by EE.
215
+	 *
216
+	 * @param string $post_type_slug    If a slug is included, then attempt to retrieve
217
+	 *                                  the model name for the given cpt slug.
218
+	 *                                  Otherwise if empty, then we'll return
219
+	 *                                  all cpt model names for cpts registered in EE.
220
+	 * @return array                    Empty array if no matching model names for the given slug
221
+	 *                                  or an array of model names indexed by post type slug.
222
+	 */
223
+	public function getCustomPostTypeModelNames($post_type_slug = '')
224
+	{
225
+		$cpts = $this->getDefinitions();
226
+		// first if slug passed in...
227
+		if (! empty($post_type_slug)) {
228
+			// check that slug and cpt match
229
+			if (! isset($cpts[ $post_type_slug ])) {
230
+				return array();
231
+			}
232
+			if (empty($cpts[ $post_type_slug ]['class_name'])
233
+				&& empty($cpts[ $post_type_slug ]['model_name'])
234
+			) {
235
+				return array();
236
+			}
237
+			// k let's get the model name for this cpt.
238
+			return $this->getCustomPostTypeModelName($post_type_slug, $cpts[ $post_type_slug ]);
239
+		}
240
+		// if we made it here then we're returning an array of cpt model names indexed by post_type_slug.
241
+		$cpt_models = array();
242
+		foreach ($cpts as $slug => $args) {
243
+			$model = $this->getCustomPostTypeModelName($post_type_slug, $cpts[ $post_type_slug ]);
244
+			if (! empty($model)) {
245
+				$cpt_models[ $slug ] = $model;
246
+			}
247
+		}
248
+		return $cpt_models;
249
+	}
250 250
 
251 251
 
252
-    /**
253
-     * @param       $post_type_slug
254
-     * @param array $cpt
255
-     * @return array
256
-     */
257
-    private function getCustomPostTypeModelName($post_type_slug, array $cpt)
258
-    {
259
-        if (! empty($cpt['model_name'])) {
260
-            return array($post_type_slug => $cpt['model_name']);
261
-        }
262
-        if (! empty($cpt['class_name'])) {
263
-            return array(
264
-                $post_type_slug => $this->deriveCptModelNameFromClassName($cpt['class_name']),
265
-            );
266
-        }
267
-        return array();
268
-    }
252
+	/**
253
+	 * @param       $post_type_slug
254
+	 * @param array $cpt
255
+	 * @return array
256
+	 */
257
+	private function getCustomPostTypeModelName($post_type_slug, array $cpt)
258
+	{
259
+		if (! empty($cpt['model_name'])) {
260
+			return array($post_type_slug => $cpt['model_name']);
261
+		}
262
+		if (! empty($cpt['class_name'])) {
263
+			return array(
264
+				$post_type_slug => $this->deriveCptModelNameFromClassName($cpt['class_name']),
265
+			);
266
+		}
267
+		return array();
268
+	}
269 269
 
270 270
 
271
-    /**
272
-     * @param string $class_name
273
-     * @return string
274
-     */
275
-    private function deriveCptModelNameFromClassName($class_name)
276
-    {
277
-        return str_replace('EE', 'EEM', $class_name);
278
-    }
271
+	/**
272
+	 * @param string $class_name
273
+	 * @return string
274
+	 */
275
+	private function deriveCptModelNameFromClassName($class_name)
276
+	{
277
+		return str_replace('EE', 'EEM', $class_name);
278
+	}
279 279
 
280 280
 
281
-    /**
282
-     * This instantiates cpt models related to the cpts registered via EE.
283
-     *
284
-     * @since 4.6.16.rc.000
285
-     * @param string $post_type_slug If valid slug is provided, then will instantiate the model only for
286
-     *                               the cpt matching the given slug.  Otherwise all cpt models will be
287
-     *                               instantiated (if possible).
288
-     * @return EEM_CPT_Base[]        successful instantiation will return an array of successfully instantiated
289
-     *                               EEM models indexed by post slug.
290
-     */
291
-    public function getCustomPostTypeModels($post_type_slug = '')
292
-    {
293
-        $cpt_model_names = $this->getCustomPostTypeModelNames($post_type_slug);
294
-        $instantiated = array();
295
-        foreach ($cpt_model_names as $slug => $model_name) {
296
-            $model = $this->loader->getShared($model_name);
297
-            if ($model instanceof EEM_CPT_Base) {
298
-                $instantiated[ $slug ] = $model;
299
-            }
300
-        }
301
-        return $instantiated;
302
-    }
281
+	/**
282
+	 * This instantiates cpt models related to the cpts registered via EE.
283
+	 *
284
+	 * @since 4.6.16.rc.000
285
+	 * @param string $post_type_slug If valid slug is provided, then will instantiate the model only for
286
+	 *                               the cpt matching the given slug.  Otherwise all cpt models will be
287
+	 *                               instantiated (if possible).
288
+	 * @return EEM_CPT_Base[]        successful instantiation will return an array of successfully instantiated
289
+	 *                               EEM models indexed by post slug.
290
+	 */
291
+	public function getCustomPostTypeModels($post_type_slug = '')
292
+	{
293
+		$cpt_model_names = $this->getCustomPostTypeModelNames($post_type_slug);
294
+		$instantiated = array();
295
+		foreach ($cpt_model_names as $slug => $model_name) {
296
+			$model = $this->loader->getShared($model_name);
297
+			if ($model instanceof EEM_CPT_Base) {
298
+				$instantiated[ $slug ] = $model;
299
+			}
300
+		}
301
+		return $instantiated;
302
+	}
303 303
 }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -203,7 +203,7 @@  discard block
 block discarded – undo
203 203
         $private_CPTs = array();
204 204
         foreach ($this->getDefinitions() as $CPT => $details) {
205 205
             if (empty($details['args']['public'])) {
206
-                $private_CPTs[ $CPT ] = $details;
206
+                $private_CPTs[$CPT] = $details;
207 207
             }
208 208
         }
209 209
         return $private_CPTs;
@@ -224,25 +224,25 @@  discard block
 block discarded – undo
224 224
     {
225 225
         $cpts = $this->getDefinitions();
226 226
         // first if slug passed in...
227
-        if (! empty($post_type_slug)) {
227
+        if ( ! empty($post_type_slug)) {
228 228
             // check that slug and cpt match
229
-            if (! isset($cpts[ $post_type_slug ])) {
229
+            if ( ! isset($cpts[$post_type_slug])) {
230 230
                 return array();
231 231
             }
232
-            if (empty($cpts[ $post_type_slug ]['class_name'])
233
-                && empty($cpts[ $post_type_slug ]['model_name'])
232
+            if (empty($cpts[$post_type_slug]['class_name'])
233
+                && empty($cpts[$post_type_slug]['model_name'])
234 234
             ) {
235 235
                 return array();
236 236
             }
237 237
             // k let's get the model name for this cpt.
238
-            return $this->getCustomPostTypeModelName($post_type_slug, $cpts[ $post_type_slug ]);
238
+            return $this->getCustomPostTypeModelName($post_type_slug, $cpts[$post_type_slug]);
239 239
         }
240 240
         // if we made it here then we're returning an array of cpt model names indexed by post_type_slug.
241 241
         $cpt_models = array();
242 242
         foreach ($cpts as $slug => $args) {
243
-            $model = $this->getCustomPostTypeModelName($post_type_slug, $cpts[ $post_type_slug ]);
244
-            if (! empty($model)) {
245
-                $cpt_models[ $slug ] = $model;
243
+            $model = $this->getCustomPostTypeModelName($post_type_slug, $cpts[$post_type_slug]);
244
+            if ( ! empty($model)) {
245
+                $cpt_models[$slug] = $model;
246 246
             }
247 247
         }
248 248
         return $cpt_models;
@@ -256,10 +256,10 @@  discard block
 block discarded – undo
256 256
      */
257 257
     private function getCustomPostTypeModelName($post_type_slug, array $cpt)
258 258
     {
259
-        if (! empty($cpt['model_name'])) {
259
+        if ( ! empty($cpt['model_name'])) {
260 260
             return array($post_type_slug => $cpt['model_name']);
261 261
         }
262
-        if (! empty($cpt['class_name'])) {
262
+        if ( ! empty($cpt['class_name'])) {
263 263
             return array(
264 264
                 $post_type_slug => $this->deriveCptModelNameFromClassName($cpt['class_name']),
265 265
             );
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
         foreach ($cpt_model_names as $slug => $model_name) {
296 296
             $model = $this->loader->getShared($model_name);
297 297
             if ($model instanceof EEM_CPT_Base) {
298
-                $instantiated[ $slug ] = $model;
298
+                $instantiated[$slug] = $model;
299 299
             }
300 300
         }
301 301
         return $instantiated;
Please login to merge, or discard this patch.
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/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/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/CreateRegistrationService.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -70,14 +70,14 @@
 block discarded – undo
70 70
                 'REG_code'        => $reg_code,
71 71
             )
72 72
         );
73
-        if (! $registration instanceof EE_Registration) {
73
+        if ( ! $registration instanceof EE_Registration) {
74 74
             throw new UnexpectedEntityException($registration, 'EE_Registration');
75 75
         }
76 76
         // save registration so that we have an ID
77 77
         $registration->save();
78 78
         // track reservation on reg but don't adjust ticket and datetime reserved counts
79 79
         // because that is done as soon as the tickets are added/removed from the cart
80
-        $registration->reserve_ticket(false, 'CreateRegistrationService:' . __LINE__);
80
+        $registration->reserve_ticket(false, 'CreateRegistrationService:'.__LINE__);
81 81
         $registration->_add_relation_to($event, 'Event', array(), $event->ID());
82 82
         $registration->_add_relation_to($ticket, 'Ticket', array(), $ticket->ID());
83 83
         $transaction->_add_relation_to($registration, 'Registration', array(), $registration->ID());
Please login to merge, or discard this patch.
Indentation   +94 added lines, -94 removed lines patch added patch discarded remove patch
@@ -29,102 +29,102 @@
 block discarded – undo
29 29
 {
30 30
 
31 31
 
32
-    /**
33
-     * @param EE_Event        $event
34
-     * @param EE_Transaction  $transaction
35
-     * @param EE_Ticket       $ticket
36
-     * @param EE_Line_Item    $ticket_line_item
37
-     * @param                 $reg_count
38
-     * @param                 $reg_group_size
39
-     * @param string          $reg_status
40
-     * @return EE_Registration
41
-     * @throws OutOfRangeException
42
-     * @throws EE_Error
43
-     * @throws UnexpectedEntityException
44
-     */
45
-    public function create(
46
-        EE_Event $event,
47
-        EE_Transaction $transaction,
48
-        EE_Ticket $ticket,
49
-        EE_Line_Item $ticket_line_item,
50
-        $reg_count,
51
-        $reg_group_size,
52
-        $reg_status = EEM_Registration::status_id_incomplete
53
-    ) {
54
-        $registrations = $transaction->registrations();
55
-        $reg_count = $reg_count ? $reg_count : count($registrations) + 1;
56
-        $reg_url_link = new RegUrlLink($reg_count, $ticket_line_item);
57
-        $reg_code = new RegCode($reg_url_link, $transaction, $ticket);
58
-        // generate new EE_Registration
59
-        $registration = EE_Registration::new_instance(
60
-            array(
61
-                'EVT_ID'          => $event->ID(),
62
-                'TXN_ID'          => $transaction->ID(),
63
-                'TKT_ID'          => $ticket->ID(),
64
-                'STS_ID'          => $reg_status,
65
-                'REG_final_price' => $this->resolveFinalPrice($transaction, $ticket, $ticket_line_item),
66
-                'REG_session'     => EE_Registry::instance()->SSN->id(),
67
-                'REG_count'       => $reg_count,
68
-                'REG_group_size'  => $reg_group_size ? $reg_group_size : $this->incrementRegGroupSize($registrations),
69
-                'REG_url_link'    => $reg_url_link,
70
-                'REG_code'        => $reg_code,
71
-            )
72
-        );
73
-        if (! $registration instanceof EE_Registration) {
74
-            throw new UnexpectedEntityException($registration, 'EE_Registration');
75
-        }
76
-        // save registration so that we have an ID
77
-        $registration->save();
78
-        // track reservation on reg but don't adjust ticket and datetime reserved counts
79
-        // because that is done as soon as the tickets are added/removed from the cart
80
-        $registration->reserve_ticket(false, 'CreateRegistrationService:' . __LINE__);
81
-        $registration->_add_relation_to($event, 'Event', array(), $event->ID());
82
-        $registration->_add_relation_to($ticket, 'Ticket', array(), $ticket->ID());
83
-        $transaction->_add_relation_to($registration, 'Registration', array(), $registration->ID());
84
-        $registration->save();
85
-        return $registration;
86
-    }
32
+	/**
33
+	 * @param EE_Event        $event
34
+	 * @param EE_Transaction  $transaction
35
+	 * @param EE_Ticket       $ticket
36
+	 * @param EE_Line_Item    $ticket_line_item
37
+	 * @param                 $reg_count
38
+	 * @param                 $reg_group_size
39
+	 * @param string          $reg_status
40
+	 * @return EE_Registration
41
+	 * @throws OutOfRangeException
42
+	 * @throws EE_Error
43
+	 * @throws UnexpectedEntityException
44
+	 */
45
+	public function create(
46
+		EE_Event $event,
47
+		EE_Transaction $transaction,
48
+		EE_Ticket $ticket,
49
+		EE_Line_Item $ticket_line_item,
50
+		$reg_count,
51
+		$reg_group_size,
52
+		$reg_status = EEM_Registration::status_id_incomplete
53
+	) {
54
+		$registrations = $transaction->registrations();
55
+		$reg_count = $reg_count ? $reg_count : count($registrations) + 1;
56
+		$reg_url_link = new RegUrlLink($reg_count, $ticket_line_item);
57
+		$reg_code = new RegCode($reg_url_link, $transaction, $ticket);
58
+		// generate new EE_Registration
59
+		$registration = EE_Registration::new_instance(
60
+			array(
61
+				'EVT_ID'          => $event->ID(),
62
+				'TXN_ID'          => $transaction->ID(),
63
+				'TKT_ID'          => $ticket->ID(),
64
+				'STS_ID'          => $reg_status,
65
+				'REG_final_price' => $this->resolveFinalPrice($transaction, $ticket, $ticket_line_item),
66
+				'REG_session'     => EE_Registry::instance()->SSN->id(),
67
+				'REG_count'       => $reg_count,
68
+				'REG_group_size'  => $reg_group_size ? $reg_group_size : $this->incrementRegGroupSize($registrations),
69
+				'REG_url_link'    => $reg_url_link,
70
+				'REG_code'        => $reg_code,
71
+			)
72
+		);
73
+		if (! $registration instanceof EE_Registration) {
74
+			throw new UnexpectedEntityException($registration, 'EE_Registration');
75
+		}
76
+		// save registration so that we have an ID
77
+		$registration->save();
78
+		// track reservation on reg but don't adjust ticket and datetime reserved counts
79
+		// because that is done as soon as the tickets are added/removed from the cart
80
+		$registration->reserve_ticket(false, 'CreateRegistrationService:' . __LINE__);
81
+		$registration->_add_relation_to($event, 'Event', array(), $event->ID());
82
+		$registration->_add_relation_to($ticket, 'Ticket', array(), $ticket->ID());
83
+		$transaction->_add_relation_to($registration, 'Registration', array(), $registration->ID());
84
+		$registration->save();
85
+		return $registration;
86
+	}
87 87
 
88 88
 
89
-    /**
90
-     * @param EE_Transaction $transaction
91
-     * @param EE_Ticket      $ticket
92
-     * @param EE_Line_Item   $ticket_line_item
93
-     * @return float
94
-     * @throws EE_Error
95
-     * @throws OutOfRangeException
96
-     */
97
-    protected function resolveFinalPrice(
98
-        EE_Transaction $transaction,
99
-        EE_Ticket $ticket,
100
-        EE_Line_Item $ticket_line_item
101
-    ) {
102
-        $final_price = EEH_Line_Item::calculate_final_price_for_ticket_line_item(
103
-            $transaction->total_line_item(),
104
-            $ticket_line_item
105
-        );
106
-        $final_price = $final_price !== null ? $final_price : $ticket->get_ticket_total_with_taxes();
107
-        return (float) $final_price;
108
-    }
89
+	/**
90
+	 * @param EE_Transaction $transaction
91
+	 * @param EE_Ticket      $ticket
92
+	 * @param EE_Line_Item   $ticket_line_item
93
+	 * @return float
94
+	 * @throws EE_Error
95
+	 * @throws OutOfRangeException
96
+	 */
97
+	protected function resolveFinalPrice(
98
+		EE_Transaction $transaction,
99
+		EE_Ticket $ticket,
100
+		EE_Line_Item $ticket_line_item
101
+	) {
102
+		$final_price = EEH_Line_Item::calculate_final_price_for_ticket_line_item(
103
+			$transaction->total_line_item(),
104
+			$ticket_line_item
105
+		);
106
+		$final_price = $final_price !== null ? $final_price : $ticket->get_ticket_total_with_taxes();
107
+		return (float) $final_price;
108
+	}
109 109
 
110 110
 
111
-    /**
112
-     * @param  EE_Registration[] $registrations
113
-     * @param  boolean           $update_existing_registrations
114
-     * @return int
115
-     * @throws EE_Error
116
-     */
117
-    protected function incrementRegGroupSize(array $registrations, $update_existing_registrations = true)
118
-    {
119
-        $new_reg_group_size = count($registrations) + 1;
120
-        if ($update_existing_registrations) {
121
-            foreach ($registrations as $registration) {
122
-                if ($registration instanceof EE_Registration) {
123
-                    $registration->set_group_size($new_reg_group_size);
124
-                    $registration->save();
125
-                }
126
-            }
127
-        }
128
-        return $new_reg_group_size;
129
-    }
111
+	/**
112
+	 * @param  EE_Registration[] $registrations
113
+	 * @param  boolean           $update_existing_registrations
114
+	 * @return int
115
+	 * @throws EE_Error
116
+	 */
117
+	protected function incrementRegGroupSize(array $registrations, $update_existing_registrations = true)
118
+	{
119
+		$new_reg_group_size = count($registrations) + 1;
120
+		if ($update_existing_registrations) {
121
+			foreach ($registrations as $registration) {
122
+				if ($registration instanceof EE_Registration) {
123
+					$registration->set_group_size($new_reg_group_size);
124
+					$registration->save();
125
+				}
126
+			}
127
+		}
128
+		return $new_reg_group_size;
129
+	}
130 130
 }
Please login to merge, or discard this patch.
core/domain/services/registration/CopyRegistrationService.php 2 patches
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.
Indentation   +141 added lines, -141 removed lines patch added patch discarded remove patch
@@ -27,151 +27,151 @@
 block discarded – undo
27 27
 {
28 28
 
29 29
 
30
-    /**
31
-     * @param EE_Registration $target_registration
32
-     * @param EE_Registration $registration_to_copy
33
-     * @return bool
34
-     * @throws UnexpectedEntityException
35
-     * @throws EntityNotFoundException
36
-     * @throws RuntimeException
37
-     * @throws EE_Error
38
-     */
39
-    public function copyRegistrationDetails(
40
-        EE_Registration $target_registration,
41
-        EE_Registration $registration_to_copy
42
-    ) {
43
-        // copy attendee
44
-        $target_registration->set_attendee_id($registration_to_copy->attendee_ID());
45
-        $target_registration->updateStatusBasedOnTotalPaid(false);
46
-        $target_registration->save();
47
-        // get answers to previous reg questions
48
-        $answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
49
-        // get questions to new event reg form
50
-        $new_event = $target_registration->event();
51
-        $field_name = 'Event_Question_Group.'
52
-            . EEM_Event_Question_Group::instance()->fieldNameForContext(
53
-                $registration_to_copy->is_primary_registrant()
54
-            );
55
-        $question_groups = $new_event->question_groups([
56
-                [
57
-                    'Event.EVT_ID' => $new_event->ID(),
58
-                    $field_name => true,
59
-                ],
60
-                'order_by' => ['QSG_order' => 'ASC'],
61
-            ]);
62
-        foreach ($question_groups as $question_group) {
63
-            if ($question_group instanceof \EE_Question_Group) {
64
-                foreach ($question_group->questions() as $question) {
65
-                    if ($question instanceof EE_Question) {
66
-                        $this->generateNewAnswer(
67
-                            $question,
68
-                            $target_registration,
69
-                            $answers
70
-                        );
71
-                    }
72
-                }
73
-            }
74
-        }
75
-        return true;
76
-    }
30
+	/**
31
+	 * @param EE_Registration $target_registration
32
+	 * @param EE_Registration $registration_to_copy
33
+	 * @return bool
34
+	 * @throws UnexpectedEntityException
35
+	 * @throws EntityNotFoundException
36
+	 * @throws RuntimeException
37
+	 * @throws EE_Error
38
+	 */
39
+	public function copyRegistrationDetails(
40
+		EE_Registration $target_registration,
41
+		EE_Registration $registration_to_copy
42
+	) {
43
+		// copy attendee
44
+		$target_registration->set_attendee_id($registration_to_copy->attendee_ID());
45
+		$target_registration->updateStatusBasedOnTotalPaid(false);
46
+		$target_registration->save();
47
+		// get answers to previous reg questions
48
+		$answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
49
+		// get questions to new event reg form
50
+		$new_event = $target_registration->event();
51
+		$field_name = 'Event_Question_Group.'
52
+			. EEM_Event_Question_Group::instance()->fieldNameForContext(
53
+				$registration_to_copy->is_primary_registrant()
54
+			);
55
+		$question_groups = $new_event->question_groups([
56
+				[
57
+					'Event.EVT_ID' => $new_event->ID(),
58
+					$field_name => true,
59
+				],
60
+				'order_by' => ['QSG_order' => 'ASC'],
61
+			]);
62
+		foreach ($question_groups as $question_group) {
63
+			if ($question_group instanceof \EE_Question_Group) {
64
+				foreach ($question_group->questions() as $question) {
65
+					if ($question instanceof EE_Question) {
66
+						$this->generateNewAnswer(
67
+							$question,
68
+							$target_registration,
69
+							$answers
70
+						);
71
+					}
72
+				}
73
+			}
74
+		}
75
+		return true;
76
+	}
77 77
 
78 78
 
79
-    /**
80
-     * @param EE_Answer[] $answers
81
-     * @return array
82
-     * @throws EE_Error
83
-     */
84
-    protected function reindexAnswersByQuestionId(array $answers)
85
-    {
86
-        $reindexed_answers = array();
87
-        foreach ($answers as $answer) {
88
-            if ($answer instanceof EE_Answer) {
89
-                $reindexed_answers[ $answer->question_ID() ] = $answer->value();
90
-            }
91
-        }
92
-        return $reindexed_answers;
93
-    }
79
+	/**
80
+	 * @param EE_Answer[] $answers
81
+	 * @return array
82
+	 * @throws EE_Error
83
+	 */
84
+	protected function reindexAnswersByQuestionId(array $answers)
85
+	{
86
+		$reindexed_answers = array();
87
+		foreach ($answers as $answer) {
88
+			if ($answer instanceof EE_Answer) {
89
+				$reindexed_answers[ $answer->question_ID() ] = $answer->value();
90
+			}
91
+		}
92
+		return $reindexed_answers;
93
+	}
94 94
 
95 95
 
96
-    /**
97
-     * @param EE_Question      $question
98
-     * @param EE_Registration  $registration
99
-     * @param                  $previous_answers
100
-     * @return EE_Answer
101
-     * @throws UnexpectedEntityException
102
-     * @throws EE_Error
103
-     */
104
-    protected function generateNewAnswer(
105
-        EE_Question $question,
106
-        EE_Registration $registration,
107
-        $previous_answers
108
-    ) {
109
-        $old_answer_value = isset($previous_answers[ $question->ID() ])
110
-            ? $previous_answers[ $question->ID() ]
111
-            : '';
112
-        $new_answer = EE_Answer::new_instance(
113
-            array(
114
-                'QST_ID'    => $question->ID(),
115
-                'REG_ID'    => $registration->ID(),
116
-                'ANS_value' => $old_answer_value,
117
-            )
118
-        );
119
-        if (! $new_answer instanceof EE_Answer) {
120
-            throw new UnexpectedEntityException($new_answer, 'EE_Answer');
121
-        }
122
-        $new_answer->save();
123
-        return $new_answer;
124
-    }
96
+	/**
97
+	 * @param EE_Question      $question
98
+	 * @param EE_Registration  $registration
99
+	 * @param                  $previous_answers
100
+	 * @return EE_Answer
101
+	 * @throws UnexpectedEntityException
102
+	 * @throws EE_Error
103
+	 */
104
+	protected function generateNewAnswer(
105
+		EE_Question $question,
106
+		EE_Registration $registration,
107
+		$previous_answers
108
+	) {
109
+		$old_answer_value = isset($previous_answers[ $question->ID() ])
110
+			? $previous_answers[ $question->ID() ]
111
+			: '';
112
+		$new_answer = EE_Answer::new_instance(
113
+			array(
114
+				'QST_ID'    => $question->ID(),
115
+				'REG_ID'    => $registration->ID(),
116
+				'ANS_value' => $old_answer_value,
117
+			)
118
+		);
119
+		if (! $new_answer instanceof EE_Answer) {
120
+			throw new UnexpectedEntityException($new_answer, 'EE_Answer');
121
+		}
122
+		$new_answer->save();
123
+		return $new_answer;
124
+	}
125 125
 
126 126
 
127
-    /**
128
-     * @param EE_Registration $target_registration
129
-     * @param EE_Registration $registration_to_copy
130
-     * @return bool
131
-     * @throws RuntimeException
132
-     * @throws UnexpectedEntityException
133
-     * @throws EE_Error
134
-     */
135
-    public function copyPaymentDetails(
136
-        EE_Registration $target_registration,
137
-        EE_Registration $registration_to_copy
138
-    ) {
139
-        $save = false;
140
-        $previous_registration_payments = $registration_to_copy->registration_payments();
141
-        $new_registration_payment_total = 0;
142
-        $registration_to_copy_total = $registration_to_copy->paid();
143
-        foreach ($previous_registration_payments as $previous_registration_payment) {
144
-            if ($previous_registration_payment instanceof EE_Registration_Payment
145
-                && $previous_registration_payment->payment() instanceof EE_Payment
146
-                && $previous_registration_payment->payment()->is_approved()
147
-            ) {
148
-                $payment_amount = $previous_registration_payment->amount();
149
-                $new_registration_payment = EE_Registration_Payment::new_instance(
150
-                    array(
151
-                        'REG_ID'     => $target_registration->ID(),
152
-                        'PAY_ID'     => $previous_registration_payment->payment()->ID(),
153
-                        'RPY_amount' => $payment_amount,
154
-                    )
155
-                );
156
-                if (! $new_registration_payment instanceof EE_Registration_Payment) {
157
-                    throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
158
-                }
159
-                $new_registration_payment->save();
160
-                // if new reg payment is good, then set old reg payment amount to zero
161
-                $previous_registration_payment->set_amount(0);
162
-                $previous_registration_payment->save();
163
-                // now  increment/decrement payment amounts
164
-                $new_registration_payment_total += $payment_amount;
165
-                $registration_to_copy_total -= $payment_amount;
166
-                $save = true;
167
-            }
168
-        }
169
-        if ($save) {
170
-            $target_registration->set_paid($new_registration_payment_total);
171
-            $target_registration->save();
172
-            $registration_to_copy->set_paid($registration_to_copy_total);
173
-            $registration_to_copy->save();
174
-        }
175
-        return true;
176
-    }
127
+	/**
128
+	 * @param EE_Registration $target_registration
129
+	 * @param EE_Registration $registration_to_copy
130
+	 * @return bool
131
+	 * @throws RuntimeException
132
+	 * @throws UnexpectedEntityException
133
+	 * @throws EE_Error
134
+	 */
135
+	public function copyPaymentDetails(
136
+		EE_Registration $target_registration,
137
+		EE_Registration $registration_to_copy
138
+	) {
139
+		$save = false;
140
+		$previous_registration_payments = $registration_to_copy->registration_payments();
141
+		$new_registration_payment_total = 0;
142
+		$registration_to_copy_total = $registration_to_copy->paid();
143
+		foreach ($previous_registration_payments as $previous_registration_payment) {
144
+			if ($previous_registration_payment instanceof EE_Registration_Payment
145
+				&& $previous_registration_payment->payment() instanceof EE_Payment
146
+				&& $previous_registration_payment->payment()->is_approved()
147
+			) {
148
+				$payment_amount = $previous_registration_payment->amount();
149
+				$new_registration_payment = EE_Registration_Payment::new_instance(
150
+					array(
151
+						'REG_ID'     => $target_registration->ID(),
152
+						'PAY_ID'     => $previous_registration_payment->payment()->ID(),
153
+						'RPY_amount' => $payment_amount,
154
+					)
155
+				);
156
+				if (! $new_registration_payment instanceof EE_Registration_Payment) {
157
+					throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
158
+				}
159
+				$new_registration_payment->save();
160
+				// if new reg payment is good, then set old reg payment amount to zero
161
+				$previous_registration_payment->set_amount(0);
162
+				$previous_registration_payment->save();
163
+				// now  increment/decrement payment amounts
164
+				$new_registration_payment_total += $payment_amount;
165
+				$registration_to_copy_total -= $payment_amount;
166
+				$save = true;
167
+			}
168
+		}
169
+		if ($save) {
170
+			$target_registration->set_paid($new_registration_payment_total);
171
+			$target_registration->save();
172
+			$registration_to_copy->set_paid($registration_to_copy_total);
173
+			$registration_to_copy->save();
174
+		}
175
+		return true;
176
+	}
177 177
 }
Please login to merge, or discard this patch.
core/domain/services/pue/Stats.php 2 patches
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -76,9 +76,9 @@  discard block
 block discarded – undo
76 76
     public function statsCallback()
77 77
     {
78 78
         // returns a callback that can is used to retrieve the stats to send along to the pue server.
79
-        return function () {
79
+        return function() {
80 80
             // we only send stats one a week, so let's see if our stat timestamp has expired.
81
-            if (! $this->sendStats()) {
81
+            if ( ! $this->sendStats()) {
82 82
                 return array();
83 83
             }
84 84
             return $this->stats_gatherer->stats();
@@ -126,9 +126,9 @@  discard block
 block discarded – undo
126 126
      */
127 127
     public static function optinText($extra = true)
128 128
     {
129
-        if (! $extra) {
129
+        if ( ! $extra) {
130 130
             echo '<h2 class="ee-admin-settings-hdr" '
131
-                 . (! $extra ? 'id="UXIP_settings"' : '')
131
+                 . ( ! $extra ? 'id="UXIP_settings"' : '')
132 132
                  . '>'
133 133
                  . esc_html__('User eXperience Improvement Program (UXIP)', 'event_espresso')
134 134
                  . EEH_Template::get_help_tab_link('organization_logo_info')
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
                 ),
160 160
                 '<a href="https://eventespresso.com/about/user-experience-improvement-program-uxip/" target="_blank">',
161 161
                 '</a>',
162
-                '<a href="' . $settings_url . '" target="_blank">',
162
+                '<a href="'.$settings_url.'" target="_blank">',
163 163
                 '</a>'
164 164
             );
165 165
         }
@@ -173,14 +173,14 @@  discard block
 block discarded – undo
173 173
     {
174 174
         wp_register_script(
175 175
             'ee-data-optin-js',
176
-            EE_GLOBAL_ASSETS_URL . 'scripts/ee-data-optin.js',
176
+            EE_GLOBAL_ASSETS_URL.'scripts/ee-data-optin.js',
177 177
             array('jquery'),
178 178
             EVENT_ESPRESSO_VERSION,
179 179
             true
180 180
         );
181 181
         wp_register_style(
182 182
             'ee-data-optin-css',
183
-            EE_GLOBAL_ASSETS_URL . 'css/ee-data-optin.css',
183
+            EE_GLOBAL_ASSETS_URL.'css/ee-data-optin.css',
184 184
             array(),
185 185
             EVENT_ESPRESSO_VERSION
186 186
         );
Please login to merge, or discard this patch.
Indentation   +201 added lines, -201 removed lines patch added patch discarded remove patch
@@ -19,86 +19,86 @@  discard block
 block discarded – undo
19 19
 class Stats
20 20
 {
21 21
 
22
-    const OPTIONS_KEY_EXPIRY_TIMESTAMP_FOR_SENDING_STATS = 'ee_uxip_stats_expiry';
23
-
24
-    /**
25
-     * @var Config
26
-     */
27
-    private $config;
28
-
29
-
30
-    /**
31
-     * @var StatsGatherer
32
-     */
33
-    private $stats_gatherer;
34
-
35
-
36
-    /**
37
-     * @var EE_Maintenance_Mode
38
-     */
39
-    private $maintenance_mode;
40
-
41
-    public function __construct(
42
-        Config $config,
43
-        EE_Maintenance_Mode $maintenance_mode,
44
-        StatsGatherer $stats_gatherer
45
-    ) {
46
-        $this->config = $config;
47
-        $this->maintenance_mode = $maintenance_mode;
48
-        $this->stats_gatherer = $stats_gatherer;
49
-        $this->setUxipNotices();
50
-    }
51
-
52
-
53
-    /**
54
-     * Displays uxip opt-in notice if necessary.
55
-     */
56
-    private function setUxipNotices()
57
-    {
58
-        if ($this->canDisplayNotices()) {
59
-            add_action('admin_notices', array($this, 'optinNotice'));
60
-            add_action('admin_enqueue_scripts', array($this, 'enqueueScripts'));
61
-            add_action('wp_ajax_espresso_data_optin', array($this, 'ajaxHandler'));
62
-        }
63
-    }
64
-
65
-
66
-    /**
67
-     * This returns the callback that PluginUpdateEngineChecker will use for getting any extra stats to send.
68
-     *
69
-     * @return Closure
70
-     */
71
-    public function statsCallback()
72
-    {
73
-        // returns a callback that can is used to retrieve the stats to send along to the pue server.
74
-        return function () {
75
-            // we only send stats one a week, so let's see if our stat timestamp has expired.
76
-            if (! $this->sendStats()) {
77
-                return array();
78
-            }
79
-            return $this->stats_gatherer->stats();
80
-        };
81
-    }
82
-
83
-
84
-    /**
85
-     * Return whether notices can be displayed or not
86
-     *
87
-     * @return bool
88
-     */
89
-    private function canDisplayNotices()
90
-    {
91
-        return ! $this->config->hasNotifiedForUxip()
92
-               && $this->maintenance_mode->level() !== EE_Maintenance_Mode::level_2_complete_maintenance;
93
-    }
94
-
95
-
96
-    /**
97
-     * Callback for the admin_notices hook that outputs the UXIP optin-in notice.
98
-     */
99
-    public function optinNotice()
100
-    {
101
-        ?>
22
+	const OPTIONS_KEY_EXPIRY_TIMESTAMP_FOR_SENDING_STATS = 'ee_uxip_stats_expiry';
23
+
24
+	/**
25
+	 * @var Config
26
+	 */
27
+	private $config;
28
+
29
+
30
+	/**
31
+	 * @var StatsGatherer
32
+	 */
33
+	private $stats_gatherer;
34
+
35
+
36
+	/**
37
+	 * @var EE_Maintenance_Mode
38
+	 */
39
+	private $maintenance_mode;
40
+
41
+	public function __construct(
42
+		Config $config,
43
+		EE_Maintenance_Mode $maintenance_mode,
44
+		StatsGatherer $stats_gatherer
45
+	) {
46
+		$this->config = $config;
47
+		$this->maintenance_mode = $maintenance_mode;
48
+		$this->stats_gatherer = $stats_gatherer;
49
+		$this->setUxipNotices();
50
+	}
51
+
52
+
53
+	/**
54
+	 * Displays uxip opt-in notice if necessary.
55
+	 */
56
+	private function setUxipNotices()
57
+	{
58
+		if ($this->canDisplayNotices()) {
59
+			add_action('admin_notices', array($this, 'optinNotice'));
60
+			add_action('admin_enqueue_scripts', array($this, 'enqueueScripts'));
61
+			add_action('wp_ajax_espresso_data_optin', array($this, 'ajaxHandler'));
62
+		}
63
+	}
64
+
65
+
66
+	/**
67
+	 * This returns the callback that PluginUpdateEngineChecker will use for getting any extra stats to send.
68
+	 *
69
+	 * @return Closure
70
+	 */
71
+	public function statsCallback()
72
+	{
73
+		// returns a callback that can is used to retrieve the stats to send along to the pue server.
74
+		return function () {
75
+			// we only send stats one a week, so let's see if our stat timestamp has expired.
76
+			if (! $this->sendStats()) {
77
+				return array();
78
+			}
79
+			return $this->stats_gatherer->stats();
80
+		};
81
+	}
82
+
83
+
84
+	/**
85
+	 * Return whether notices can be displayed or not
86
+	 *
87
+	 * @return bool
88
+	 */
89
+	private function canDisplayNotices()
90
+	{
91
+		return ! $this->config->hasNotifiedForUxip()
92
+			   && $this->maintenance_mode->level() !== EE_Maintenance_Mode::level_2_complete_maintenance;
93
+	}
94
+
95
+
96
+	/**
97
+	 * Callback for the admin_notices hook that outputs the UXIP optin-in notice.
98
+	 */
99
+	public function optinNotice()
100
+	{
101
+		?>
102 102
         <div class="updated data-collect-optin" id="espresso-data-collect-optin-container">
103 103
             <div id="data-collect-optin-options-container">
104 104
                 <span class="dashicons dashicons-admin-site"></span>
@@ -111,125 +111,125 @@  discard block
 block discarded – undo
111 111
             </div>
112 112
         </div>
113 113
         <?php
114
-    }
115
-
116
-
117
-    /**
118
-     * Retrieves the optin text (static so it can be used in multiple places as necessary).
119
-     *
120
-     * @param bool $extra
121
-     */
122
-    public static function optinText($extra = true)
123
-    {
124
-        if (! $extra) {
125
-            echo '<h2 class="ee-admin-settings-hdr" '
126
-                 . (! $extra ? 'id="UXIP_settings"' : '')
127
-                 . '>'
128
-                 . esc_html__('User eXperience Improvement Program (UXIP)', 'event_espresso')
129
-                 . EEH_Template::get_help_tab_link('organization_logo_info')
130
-                 . '</h2>';
131
-            printf(
132
-                esc_html__(
133
-                    '%1$sPlease help us make Event Espresso better and vote for your favorite features.%2$s The %3$sUser eXperience Improvement Program (UXIP)%4$s, has been created so when you use Event Espresso you are voting for the features and settings that are important to you. The UXIP helps us understand how you use our products and services, track problems and in what context. If you opt-out of the UXIP you essentially elect for us to disregard how you use Event Espresso as we build new features and make changes. Participation in the program is completely voluntary and it is disabled by default. The end results of the UXIP are software improvements to better meet your needs. The data we collect will never be sold, traded, or misused in any way. %5$sPlease see our %6$sPrivacy Policy%7$s for more information.',
134
-                    'event_espresso'
135
-                ),
136
-                '<p><em>',
137
-                '</em></p>',
138
-                '<a href="https://eventespresso.com/about/user-experience-improvement-program-uxip/" target="_blank">',
139
-                '</a>',
140
-                '<br><br>',
141
-                '<a href="https://eventespresso.com/about/privacy-policy/" target="_blank">',
142
-                '</a>'
143
-            );
144
-        } else {
145
-            $settings_url = EEH_URL::add_query_args_and_nonce(
146
-                array('action' => 'default'),
147
-                admin_url('admin.php?page=espresso_general_settings')
148
-            );
149
-            $settings_url .= '#UXIP_settings';
150
-            printf(
151
-                esc_html__(
152
-                    'The Event Espresso UXIP feature is not yet active on your site. For %1$smore info%2$s and to opt-in %3$sclick here%4$s.',
153
-                    'event_espresso'
154
-                ),
155
-                '<a href="https://eventespresso.com/about/user-experience-improvement-program-uxip/" target="_blank">',
156
-                '</a>',
157
-                '<a href="' . $settings_url . '" target="_blank">',
158
-                '</a>'
159
-            );
160
-        }
161
-    }
162
-
163
-
164
-    /**
165
-     * Callback for admin_enqueue_scripts that sets up the scripts and styles for the uxip notice
166
-     */
167
-    public function enqueueScripts()
168
-    {
169
-        wp_register_script(
170
-            'ee-data-optin-js',
171
-            EE_GLOBAL_ASSETS_URL . 'scripts/ee-data-optin.js',
172
-            array('jquery'),
173
-            EVENT_ESPRESSO_VERSION,
174
-            true
175
-        );
176
-        wp_register_style(
177
-            'ee-data-optin-css',
178
-            EE_GLOBAL_ASSETS_URL . 'css/ee-data-optin.css',
179
-            array(),
180
-            EVENT_ESPRESSO_VERSION
181
-        );
182
-
183
-        wp_enqueue_script('ee-data-optin-js');
184
-        wp_enqueue_style('ee-data-optin-css');
185
-    }
186
-
187
-
188
-    /**
189
-     * Callback for wp_ajax_espresso_data_optin that handles the ajax request
190
-     */
191
-    public function ajaxHandler()
192
-    {
193
-        // verify nonce
194
-        if (isset($_POST['nonce']) && ! wp_verify_nonce($_POST['nonce'], 'ee-data-optin')) {
195
-            exit();
196
-        }
197
-
198
-        // update has notified option
199
-        $this->config->setHasNotifiedAboutUxip();
200
-        exit();
201
-    }
202
-
203
-
204
-    /**
205
-     * Used to determine whether additional stats are sent.
206
-     */
207
-    private function sendStats()
208
-    {
209
-        return $this->config->isOptedInForUxip()
210
-               && $this->maintenance_mode->level() !== EE_Maintenance_Mode::level_2_complete_maintenance
211
-               && $this->statSendTimestampExpired();
212
-    }
213
-
214
-
215
-    /**
216
-     * Returns true when the timestamp used to track whether stats get sent (currently a weekly interval) is expired.
217
-     * Returns false otherwise.
218
-     *
219
-     * @return bool
220
-     */
221
-    private function statSendTimestampExpired()
222
-    {
223
-        $current_expiry = get_option(self::OPTIONS_KEY_EXPIRY_TIMESTAMP_FOR_SENDING_STATS, null);
224
-        if ($current_expiry === null) {
225
-            add_option(self::OPTIONS_KEY_EXPIRY_TIMESTAMP_FOR_SENDING_STATS, time() + WEEK_IN_SECONDS, '', 'no');
226
-            return true;
227
-        }
228
-
229
-        if (time() > (int) $current_expiry) {
230
-            update_option(self::OPTIONS_KEY_EXPIRY_TIMESTAMP_FOR_SENDING_STATS, time() + WEEK_IN_SECONDS);
231
-            return true;
232
-        }
233
-        return false;
234
-    }
114
+	}
115
+
116
+
117
+	/**
118
+	 * Retrieves the optin text (static so it can be used in multiple places as necessary).
119
+	 *
120
+	 * @param bool $extra
121
+	 */
122
+	public static function optinText($extra = true)
123
+	{
124
+		if (! $extra) {
125
+			echo '<h2 class="ee-admin-settings-hdr" '
126
+				 . (! $extra ? 'id="UXIP_settings"' : '')
127
+				 . '>'
128
+				 . esc_html__('User eXperience Improvement Program (UXIP)', 'event_espresso')
129
+				 . EEH_Template::get_help_tab_link('organization_logo_info')
130
+				 . '</h2>';
131
+			printf(
132
+				esc_html__(
133
+					'%1$sPlease help us make Event Espresso better and vote for your favorite features.%2$s The %3$sUser eXperience Improvement Program (UXIP)%4$s, has been created so when you use Event Espresso you are voting for the features and settings that are important to you. The UXIP helps us understand how you use our products and services, track problems and in what context. If you opt-out of the UXIP you essentially elect for us to disregard how you use Event Espresso as we build new features and make changes. Participation in the program is completely voluntary and it is disabled by default. The end results of the UXIP are software improvements to better meet your needs. The data we collect will never be sold, traded, or misused in any way. %5$sPlease see our %6$sPrivacy Policy%7$s for more information.',
134
+					'event_espresso'
135
+				),
136
+				'<p><em>',
137
+				'</em></p>',
138
+				'<a href="https://eventespresso.com/about/user-experience-improvement-program-uxip/" target="_blank">',
139
+				'</a>',
140
+				'<br><br>',
141
+				'<a href="https://eventespresso.com/about/privacy-policy/" target="_blank">',
142
+				'</a>'
143
+			);
144
+		} else {
145
+			$settings_url = EEH_URL::add_query_args_and_nonce(
146
+				array('action' => 'default'),
147
+				admin_url('admin.php?page=espresso_general_settings')
148
+			);
149
+			$settings_url .= '#UXIP_settings';
150
+			printf(
151
+				esc_html__(
152
+					'The Event Espresso UXIP feature is not yet active on your site. For %1$smore info%2$s and to opt-in %3$sclick here%4$s.',
153
+					'event_espresso'
154
+				),
155
+				'<a href="https://eventespresso.com/about/user-experience-improvement-program-uxip/" target="_blank">',
156
+				'</a>',
157
+				'<a href="' . $settings_url . '" target="_blank">',
158
+				'</a>'
159
+			);
160
+		}
161
+	}
162
+
163
+
164
+	/**
165
+	 * Callback for admin_enqueue_scripts that sets up the scripts and styles for the uxip notice
166
+	 */
167
+	public function enqueueScripts()
168
+	{
169
+		wp_register_script(
170
+			'ee-data-optin-js',
171
+			EE_GLOBAL_ASSETS_URL . 'scripts/ee-data-optin.js',
172
+			array('jquery'),
173
+			EVENT_ESPRESSO_VERSION,
174
+			true
175
+		);
176
+		wp_register_style(
177
+			'ee-data-optin-css',
178
+			EE_GLOBAL_ASSETS_URL . 'css/ee-data-optin.css',
179
+			array(),
180
+			EVENT_ESPRESSO_VERSION
181
+		);
182
+
183
+		wp_enqueue_script('ee-data-optin-js');
184
+		wp_enqueue_style('ee-data-optin-css');
185
+	}
186
+
187
+
188
+	/**
189
+	 * Callback for wp_ajax_espresso_data_optin that handles the ajax request
190
+	 */
191
+	public function ajaxHandler()
192
+	{
193
+		// verify nonce
194
+		if (isset($_POST['nonce']) && ! wp_verify_nonce($_POST['nonce'], 'ee-data-optin')) {
195
+			exit();
196
+		}
197
+
198
+		// update has notified option
199
+		$this->config->setHasNotifiedAboutUxip();
200
+		exit();
201
+	}
202
+
203
+
204
+	/**
205
+	 * Used to determine whether additional stats are sent.
206
+	 */
207
+	private function sendStats()
208
+	{
209
+		return $this->config->isOptedInForUxip()
210
+			   && $this->maintenance_mode->level() !== EE_Maintenance_Mode::level_2_complete_maintenance
211
+			   && $this->statSendTimestampExpired();
212
+	}
213
+
214
+
215
+	/**
216
+	 * Returns true when the timestamp used to track whether stats get sent (currently a weekly interval) is expired.
217
+	 * Returns false otherwise.
218
+	 *
219
+	 * @return bool
220
+	 */
221
+	private function statSendTimestampExpired()
222
+	{
223
+		$current_expiry = get_option(self::OPTIONS_KEY_EXPIRY_TIMESTAMP_FOR_SENDING_STATS, null);
224
+		if ($current_expiry === null) {
225
+			add_option(self::OPTIONS_KEY_EXPIRY_TIMESTAMP_FOR_SENDING_STATS, time() + WEEK_IN_SECONDS, '', 'no');
226
+			return true;
227
+		}
228
+
229
+		if (time() > (int) $current_expiry) {
230
+			update_option(self::OPTIONS_KEY_EXPIRY_TIMESTAMP_FOR_SENDING_STATS, time() + WEEK_IN_SECONDS);
231
+			return true;
232
+		}
233
+		return false;
234
+	}
235 235
 }
Please login to merge, or discard this patch.