Completed
Branch ENH/contextual-event-check-in-... (d32e27)
by
unknown
06:40 queued 03:25
created
core/domain/entities/RegUrlLink.php 2 patches
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.
Indentation   +83 added lines, -83 removed lines patch added patch discarded remove patch
@@ -17,97 +17,97 @@
 block discarded – undo
17 17
  */
18 18
 class RegUrlLink
19 19
 {
20
-    /*
20
+	/*
21 21
      * @var string $reg_url_link
22 22
      */
23
-    private $reg_url_link;
23
+	private $reg_url_link;
24 24
 
25 25
 
26
-    /**
27
-     * @param string $reg_url_link
28
-     * @return RegUrlLink
29
-     * @throws InvalidArgumentException
30
-     */
31
-    public static function fromRegUrlLinkString($reg_url_link)
32
-    {
33
-        if (empty($reg_url_link) || ! is_string($reg_url_link)) {
34
-            throw new InvalidArgumentException(
35
-                esc_html__(
36
-                    'You must supply a valid non-empty string to generate a reg_url_link.',
37
-                    'event_espresso'
38
-                )
39
-            );
40
-        }
41
-        return new RegUrlLink(1, '', $reg_url_link);
42
-    }
26
+	/**
27
+	 * @param string $reg_url_link
28
+	 * @return RegUrlLink
29
+	 * @throws InvalidArgumentException
30
+	 */
31
+	public static function fromRegUrlLinkString($reg_url_link)
32
+	{
33
+		if (empty($reg_url_link) || ! is_string($reg_url_link)) {
34
+			throw new InvalidArgumentException(
35
+				esc_html__(
36
+					'You must supply a valid non-empty string to generate a reg_url_link.',
37
+					'event_espresso'
38
+				)
39
+			);
40
+		}
41
+		return new RegUrlLink(1, '', $reg_url_link);
42
+	}
43 43
 
44 44
 
45
-    /**
46
-     * @param EE_Registration $registration
47
-     * @return RegUrlLink
48
-     * @throws EntityNotFoundException
49
-     * @throws EE_Error
50
-     * @throws InvalidArgumentException
51
-     */
52
-    public static function fromRegistration(EE_Registration $registration)
53
-    {
54
-        return new RegUrlLink(
55
-            $registration->count(),
56
-            $registration->ticket_line_item()
57
-        );
58
-    }
45
+	/**
46
+	 * @param EE_Registration $registration
47
+	 * @return RegUrlLink
48
+	 * @throws EntityNotFoundException
49
+	 * @throws EE_Error
50
+	 * @throws InvalidArgumentException
51
+	 */
52
+	public static function fromRegistration(EE_Registration $registration)
53
+	{
54
+		return new RegUrlLink(
55
+			$registration->count(),
56
+			$registration->ticket_line_item()
57
+		);
58
+	}
59 59
 
60 60
 
61
-    /**
62
-     * CreateRegUrlLinkCommand constructor.
63
-     *
64
-     * @param int    $reg_count
65
-     * @param mixed  $base_code
66
-     * @param string $reg_url_link
67
-     * @throws InvalidArgumentException
68
-     */
69
-    public function __construct(
70
-        $reg_count = 1,
71
-        $base_code = '',
72
-        $reg_url_link = ''
73
-    ) {
74
-        if (! empty($reg_url_link) && is_string($reg_url_link)) {
75
-            $this->reg_url_link = apply_filters(
76
-                'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
77
-                $reg_url_link,
78
-                $reg_count,
79
-                $base_code,
80
-                $reg_url_link
81
-            );
82
-            return;
83
-        }
84
-        $reg_count = max(1, absint($reg_count));
85
-        $base_code = $base_code instanceof \EE_Line_Item ? $base_code->code() : $base_code;
86
-        if (empty($base_code) || ! is_string($base_code)) {
87
-            throw new InvalidArgumentException(
88
-                esc_html__(
89
-                    'You must supply a valid EE_Line_Item or a non-empty string to generate a reg_url_link.',
90
-                    'event_espresso'
91
-                )
92
-            );
93
-        }
94
-        $this->reg_url_link = (string) apply_filters(
95
-            'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
96
-            $reg_count . '-' . md5($base_code . microtime()),
97
-            $reg_count,
98
-            $base_code,
99
-            $reg_url_link
100
-        );
101
-    }
61
+	/**
62
+	 * CreateRegUrlLinkCommand constructor.
63
+	 *
64
+	 * @param int    $reg_count
65
+	 * @param mixed  $base_code
66
+	 * @param string $reg_url_link
67
+	 * @throws InvalidArgumentException
68
+	 */
69
+	public function __construct(
70
+		$reg_count = 1,
71
+		$base_code = '',
72
+		$reg_url_link = ''
73
+	) {
74
+		if (! empty($reg_url_link) && is_string($reg_url_link)) {
75
+			$this->reg_url_link = apply_filters(
76
+				'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
77
+				$reg_url_link,
78
+				$reg_count,
79
+				$base_code,
80
+				$reg_url_link
81
+			);
82
+			return;
83
+		}
84
+		$reg_count = max(1, absint($reg_count));
85
+		$base_code = $base_code instanceof \EE_Line_Item ? $base_code->code() : $base_code;
86
+		if (empty($base_code) || ! is_string($base_code)) {
87
+			throw new InvalidArgumentException(
88
+				esc_html__(
89
+					'You must supply a valid EE_Line_Item or a non-empty string to generate a reg_url_link.',
90
+					'event_espresso'
91
+				)
92
+			);
93
+		}
94
+		$this->reg_url_link = (string) apply_filters(
95
+			'FHEE__\EventEspresso\core\domain\entities\RegUrlLink__construct__reg_url_link',
96
+			$reg_count . '-' . md5($base_code . microtime()),
97
+			$reg_count,
98
+			$base_code,
99
+			$reg_url_link
100
+		);
101
+	}
102 102
 
103 103
 
104
-    /**
105
-     * Return the object as a string
106
-     *
107
-     * @return string
108
-     */
109
-    public function __toString()
110
-    {
111
-        return $this->reg_url_link;
112
-    }
104
+	/**
105
+	 * Return the object as a string
106
+	 *
107
+	 * @return string
108
+	 */
109
+	public function __toString()
110
+	{
111
+		return $this->reg_url_link;
112
+	}
113 113
 }
Please login to merge, or discard this patch.
core/domain/entities/GenericAddress.php 1 patch
Indentation   +201 added lines, -201 removed lines patch added patch discarded remove patch
@@ -12,205 +12,205 @@
 block discarded – undo
12 12
  */
13 13
 class GenericAddress implements \EEI_Address
14 14
 {
15
-    // phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore
16
-    private $_address = '';
17
-
18
-    private $_address2 = '';
19
-
20
-    private $_city = '';
21
-
22
-    private $_state_ID = '';
23
-
24
-    private $_state_obj = '';
25
-
26
-    private $_zip = '';
27
-
28
-    private $_country_ID = '';
29
-
30
-    private $_country_obj = '';
31
-    // phpcs:enable
32
-
33
-    // phpcs:disable PSR2.Methods.MethodDeclaration.Underscore
34
-    /**
35
-     * @param string               $address
36
-     * @param string               $address2
37
-     * @param string               $city
38
-     * @param \EE_State | string   $state
39
-     * @param string               $zip
40
-     * @param \EE_Country | string $country
41
-     * @return GenericAddress
42
-     */
43
-    public function __construct($address, $address2, $city, $state, $zip, $country)
44
-    {
45
-        $this->_address = $address;
46
-        $this->_address2 = $address2;
47
-        $this->_city = $city;
48
-        if ($state instanceof \EE_State) {
49
-            $this->_state_obj = $state;
50
-        } else {
51
-            $this->_state_ID = $state;
52
-            $this->_state_obj = $this->_get_state_obj();
53
-        }
54
-        $this->_zip = $zip;
55
-        if ($country instanceof \EE_Country) {
56
-            $this->_country_obj = $country;
57
-        } else {
58
-            $this->_country_ID = $country;
59
-            $this->_country_obj = $this->_get_country_obj();
60
-        }
61
-    }
62
-
63
-
64
-    /**
65
-     * @return string
66
-     */
67
-    public function address()
68
-    {
69
-        return $this->_address;
70
-    }
71
-
72
-
73
-    /**
74
-     * @return string
75
-     */
76
-    public function address2()
77
-    {
78
-        return $this->_address2;
79
-    }
80
-
81
-
82
-    /**
83
-     * @return string
84
-     */
85
-    public function city()
86
-    {
87
-        return $this->_city;
88
-    }
89
-
90
-    // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
91
-
92
-    /**
93
-     * @return \EE_State
94
-     */
95
-    private function _get_state_obj()
96
-    {
97
-        return $this->_state_obj instanceof \EE_State
98
-            ? $this->_state_obj
99
-            : \EE_Registry::instance()->load_model('State')->get_one_by_ID($this->_state_ID);
100
-    }
101
-
102
-
103
-    /**
104
-     * @return string
105
-     */
106
-    public function state_ID()
107
-    {
108
-        return $this->_state_ID;
109
-    }
110
-
111
-
112
-    /**
113
-     * @return string
114
-     */
115
-    public function state_abbrev()
116
-    {
117
-        return $this->state_obj() instanceof \EE_State
118
-            ? $this->state_obj()->abbrev()
119
-            : '';
120
-    }
121
-
122
-
123
-    /**
124
-     * @return string
125
-     */
126
-    public function state_name()
127
-    {
128
-        return $this->state_obj() instanceof \EE_State
129
-            ? $this->state_obj()->name()
130
-            : '';
131
-    }
132
-
133
-
134
-    /**
135
-     * @return \EE_State
136
-     */
137
-    public function state_obj()
138
-    {
139
-        return $this->_state_obj;
140
-    }
141
-
142
-
143
-    /**
144
-     * @return string
145
-     */
146
-    public function state()
147
-    {
148
-        if (apply_filters('FHEE__EEI_Address__state__use_abbreviation', true, $this->state_obj())) {
149
-            return $this->state_obj()->abbrev();
150
-        } else {
151
-            return $this->state_name();
152
-        }
153
-    }
154
-
155
-
156
-    /**
157
-     * @return \EE_Country
158
-     */
159
-    private function _get_country_obj()
160
-    {
161
-        return $this->_country_obj instanceof \EE_Country
162
-            ? $this->_country_obj
163
-            : \EE_Registry::instance()->load_model('Country')->get_one_by_ID($this->_country_ID);
164
-    }
165
-
166
-
167
-    /**
168
-     * @return string
169
-     */
170
-    public function country_ID()
171
-    {
172
-        return $this->_country_ID;
173
-    }
174
-
175
-
176
-    /**
177
-     * @return string
178
-     */
179
-    public function country_name()
180
-    {
181
-        return $this->country_obj() instanceof \EE_Country
182
-            ? $this->country_obj()->name()
183
-            : '';
184
-    }
185
-
186
-
187
-    /**
188
-     * @return \EE_Country
189
-     */
190
-    public function country_obj()
191
-    {
192
-        return $this->_country_obj;
193
-    }
194
-
195
-
196
-    /**
197
-     * @return string
198
-     */
199
-    public function country()
200
-    {
201
-        if (apply_filters('FHEE__EEI_Address__country__use_abbreviation', true, $this->country_obj())) {
202
-            return $this->country_ID();
203
-        } else {
204
-            return $this->country_name();
205
-        }
206
-    }
207
-
208
-
209
-    /**
210
-     * @return string
211
-     */
212
-    public function zip()
213
-    {
214
-        return $this->_zip;
215
-    }
15
+	// phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore
16
+	private $_address = '';
17
+
18
+	private $_address2 = '';
19
+
20
+	private $_city = '';
21
+
22
+	private $_state_ID = '';
23
+
24
+	private $_state_obj = '';
25
+
26
+	private $_zip = '';
27
+
28
+	private $_country_ID = '';
29
+
30
+	private $_country_obj = '';
31
+	// phpcs:enable
32
+
33
+	// phpcs:disable PSR2.Methods.MethodDeclaration.Underscore
34
+	/**
35
+	 * @param string               $address
36
+	 * @param string               $address2
37
+	 * @param string               $city
38
+	 * @param \EE_State | string   $state
39
+	 * @param string               $zip
40
+	 * @param \EE_Country | string $country
41
+	 * @return GenericAddress
42
+	 */
43
+	public function __construct($address, $address2, $city, $state, $zip, $country)
44
+	{
45
+		$this->_address = $address;
46
+		$this->_address2 = $address2;
47
+		$this->_city = $city;
48
+		if ($state instanceof \EE_State) {
49
+			$this->_state_obj = $state;
50
+		} else {
51
+			$this->_state_ID = $state;
52
+			$this->_state_obj = $this->_get_state_obj();
53
+		}
54
+		$this->_zip = $zip;
55
+		if ($country instanceof \EE_Country) {
56
+			$this->_country_obj = $country;
57
+		} else {
58
+			$this->_country_ID = $country;
59
+			$this->_country_obj = $this->_get_country_obj();
60
+		}
61
+	}
62
+
63
+
64
+	/**
65
+	 * @return string
66
+	 */
67
+	public function address()
68
+	{
69
+		return $this->_address;
70
+	}
71
+
72
+
73
+	/**
74
+	 * @return string
75
+	 */
76
+	public function address2()
77
+	{
78
+		return $this->_address2;
79
+	}
80
+
81
+
82
+	/**
83
+	 * @return string
84
+	 */
85
+	public function city()
86
+	{
87
+		return $this->_city;
88
+	}
89
+
90
+	// phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
91
+
92
+	/**
93
+	 * @return \EE_State
94
+	 */
95
+	private function _get_state_obj()
96
+	{
97
+		return $this->_state_obj instanceof \EE_State
98
+			? $this->_state_obj
99
+			: \EE_Registry::instance()->load_model('State')->get_one_by_ID($this->_state_ID);
100
+	}
101
+
102
+
103
+	/**
104
+	 * @return string
105
+	 */
106
+	public function state_ID()
107
+	{
108
+		return $this->_state_ID;
109
+	}
110
+
111
+
112
+	/**
113
+	 * @return string
114
+	 */
115
+	public function state_abbrev()
116
+	{
117
+		return $this->state_obj() instanceof \EE_State
118
+			? $this->state_obj()->abbrev()
119
+			: '';
120
+	}
121
+
122
+
123
+	/**
124
+	 * @return string
125
+	 */
126
+	public function state_name()
127
+	{
128
+		return $this->state_obj() instanceof \EE_State
129
+			? $this->state_obj()->name()
130
+			: '';
131
+	}
132
+
133
+
134
+	/**
135
+	 * @return \EE_State
136
+	 */
137
+	public function state_obj()
138
+	{
139
+		return $this->_state_obj;
140
+	}
141
+
142
+
143
+	/**
144
+	 * @return string
145
+	 */
146
+	public function state()
147
+	{
148
+		if (apply_filters('FHEE__EEI_Address__state__use_abbreviation', true, $this->state_obj())) {
149
+			return $this->state_obj()->abbrev();
150
+		} else {
151
+			return $this->state_name();
152
+		}
153
+	}
154
+
155
+
156
+	/**
157
+	 * @return \EE_Country
158
+	 */
159
+	private function _get_country_obj()
160
+	{
161
+		return $this->_country_obj instanceof \EE_Country
162
+			? $this->_country_obj
163
+			: \EE_Registry::instance()->load_model('Country')->get_one_by_ID($this->_country_ID);
164
+	}
165
+
166
+
167
+	/**
168
+	 * @return string
169
+	 */
170
+	public function country_ID()
171
+	{
172
+		return $this->_country_ID;
173
+	}
174
+
175
+
176
+	/**
177
+	 * @return string
178
+	 */
179
+	public function country_name()
180
+	{
181
+		return $this->country_obj() instanceof \EE_Country
182
+			? $this->country_obj()->name()
183
+			: '';
184
+	}
185
+
186
+
187
+	/**
188
+	 * @return \EE_Country
189
+	 */
190
+	public function country_obj()
191
+	{
192
+		return $this->_country_obj;
193
+	}
194
+
195
+
196
+	/**
197
+	 * @return string
198
+	 */
199
+	public function country()
200
+	{
201
+		if (apply_filters('FHEE__EEI_Address__country__use_abbreviation', true, $this->country_obj())) {
202
+			return $this->country_ID();
203
+		} else {
204
+			return $this->country_name();
205
+		}
206
+	}
207
+
208
+
209
+	/**
210
+	 * @return string
211
+	 */
212
+	public function zip()
213
+	{
214
+		return $this->_zip;
215
+	}
216 216
 }
Please login to merge, or discard this patch.
core/domain/services/wp_queries/EventListQuery.php 2 patches
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.
Indentation   +194 added lines, -194 removed lines patch added patch discarded remove patch
@@ -15,198 +15,198 @@
 block discarded – undo
15 15
  */
16 16
 class EventListQuery extends WP_Query
17 17
 {
18
-    /**
19
-     * @var string $title
20
-     */
21
-    private $title;
22
-
23
-    /**
24
-     * @var integer $limit
25
-     */
26
-    private $limit = 10;
27
-
28
-    /**
29
-     * @var string $css_class
30
-     */
31
-    private $css_class;
32
-
33
-    /**
34
-     * @var boolean $show_expired
35
-     */
36
-    private $show_expired = false;
37
-
38
-    /**
39
-     * @var string $month
40
-     */
41
-    private $month;
42
-
43
-    /**
44
-     * @var string $category_slug
45
-     */
46
-    private $category_slug;
47
-
48
-    /**
49
-     * @var string $order_by
50
-     */
51
-    private $order_by;
52
-
53
-    /**
54
-     * @var string $sort
55
-     */
56
-    private $sort;
57
-
58
-    /**
59
-     * @var boolean $show_title
60
-     */
61
-    private $show_title = true;
62
-
63
-
64
-    /**
65
-     * EE_Event_List_Query Constructor     *
66
-     *
67
-     * @param array $args
68
-     */
69
-    public function __construct($args = array())
70
-    {
71
-        $args = $this->parseArgs((array) $args);
72
-        $this->setupEventQueryHelper();
73
-        $this->setupFilters();
74
-        $args = $this->getQueryArgs($args);
75
-        // run the query
76
-        parent::__construct($args);
77
-    }
78
-
79
-
80
-    /**
81
-     * @param array $args
82
-     * @return array
83
-     */
84
-    private function parseArgs(array $args)
85
-    {
86
-        // incoming args could be a mix of WP query args + EE shortcode args
87
-        foreach ($args as $property => $value) {
88
-            // if the arg is a property of this class, then it's an EE shortcode arg
89
-            if (property_exists($this, $property) && ! property_exists('WP_Query', $property)) {
90
-                // set the property value
91
-                $this->{$property} = $value;
92
-                // then remove it from the array of args that will later be passed to WP_Query()
93
-                unset($args[ $property ]);
94
-            }
95
-        }
96
-        return $args;
97
-    }
98
-
99
-
100
-    private function setupEventQueryHelper()
101
-    {
102
-        // add query filters
103
-        EEH_Event_Query::add_query_filters();
104
-        // set params that will get used by the filters
105
-        EEH_Event_Query::set_query_params(
106
-            $this->month,
107
-            $this->category_slug,
108
-            $this->show_expired,
109
-            $this->order_by,
110
-            $this->sort
111
-        );
112
-    }
113
-
114
-
115
-    private function setupFilters()
116
-    {
117
-        // first off, let's remove any filters from previous queries
118
-        remove_filter(
119
-            'FHEE__archive_espresso_events_template__show_header',
120
-            array($this, 'show_event_list_title')
121
-        );
122
-        remove_filter(
123
-            'FHEE__archive_espresso_events_template__upcoming_events_h1',
124
-            array($this, 'event_list_title')
125
-        );
126
-        remove_all_filters('FHEE__content_espresso_events__event_class');
127
-        // Event List Title ?
128
-        add_filter(
129
-            'FHEE__archive_espresso_events_template__show_header',
130
-            array($this, 'show_event_list_title')
131
-        );
132
-        add_filter(
133
-            'FHEE__archive_espresso_events_template__upcoming_events_h1',
134
-            array($this, 'event_list_title'),
135
-            10,
136
-            1
137
-        );
138
-        // add the css class
139
-        add_filter(
140
-            'FHEE__content_espresso_events__event_class',
141
-            array($this, 'event_list_css'),
142
-            10,
143
-            1
144
-        );
145
-    }
146
-
147
-
148
-    private function getQueryArgs(array $args)
149
-    {
150
-        // the current "page" we are viewing
151
-        $paged = max(1, get_query_var('paged'));
152
-        // Force these args
153
-        return array_merge(
154
-            $args,
155
-            array(
156
-                'post_type'              => 'espresso_events',
157
-                'posts_per_page'         => $this->limit,
158
-                'update_post_term_cache' => false,
159
-                'update_post_meta_cache' => false,
160
-                'paged'                  => $paged,
161
-                'offset'                 => ($paged - 1) * $this->limit,
162
-            )
163
-        );
164
-    }
165
-
166
-    // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
167
-
168
-    /**
169
-     * show_event_list_title
170
-     *
171
-     * @return boolean
172
-     */
173
-    public function show_event_list_title()
174
-    {
175
-        return filter_var(
176
-            $this->show_title,
177
-            FILTER_VALIDATE_BOOLEAN
178
-        );
179
-    }
180
-
181
-
182
-    /**
183
-     * callback for FHEE__archive_espresso_events_template__upcoming_events_h1 filter
184
-     *
185
-     * @param string $event_list_title
186
-     * @return    string
187
-     */
188
-    public function event_list_title($event_list_title = '')
189
-    {
190
-        if (! empty($this->title)) {
191
-            return $this->title;
192
-        }
193
-        return $event_list_title;
194
-    }
195
-
196
-
197
-    /**
198
-     * callback for FHEE__content_espresso_events__event_class filter
199
-     *
200
-     * @param string $event_list_css
201
-     * @return string
202
-     */
203
-    public function event_list_css($event_list_css = '')
204
-    {
205
-        $event_list_css .= ! empty($event_list_css) ? ' ' : '';
206
-        $event_list_css .= ! empty($this->css_class) ? $this->css_class : '';
207
-        $event_list_css .= ! empty($event_list_css) ? ' ' : '';
208
-        $event_list_css .= ! empty($this->category_slug) ? $this->category_slug : '';
209
-        return $event_list_css;
210
-    }
211
-    // phpcs:enable
18
+	/**
19
+	 * @var string $title
20
+	 */
21
+	private $title;
22
+
23
+	/**
24
+	 * @var integer $limit
25
+	 */
26
+	private $limit = 10;
27
+
28
+	/**
29
+	 * @var string $css_class
30
+	 */
31
+	private $css_class;
32
+
33
+	/**
34
+	 * @var boolean $show_expired
35
+	 */
36
+	private $show_expired = false;
37
+
38
+	/**
39
+	 * @var string $month
40
+	 */
41
+	private $month;
42
+
43
+	/**
44
+	 * @var string $category_slug
45
+	 */
46
+	private $category_slug;
47
+
48
+	/**
49
+	 * @var string $order_by
50
+	 */
51
+	private $order_by;
52
+
53
+	/**
54
+	 * @var string $sort
55
+	 */
56
+	private $sort;
57
+
58
+	/**
59
+	 * @var boolean $show_title
60
+	 */
61
+	private $show_title = true;
62
+
63
+
64
+	/**
65
+	 * EE_Event_List_Query Constructor     *
66
+	 *
67
+	 * @param array $args
68
+	 */
69
+	public function __construct($args = array())
70
+	{
71
+		$args = $this->parseArgs((array) $args);
72
+		$this->setupEventQueryHelper();
73
+		$this->setupFilters();
74
+		$args = $this->getQueryArgs($args);
75
+		// run the query
76
+		parent::__construct($args);
77
+	}
78
+
79
+
80
+	/**
81
+	 * @param array $args
82
+	 * @return array
83
+	 */
84
+	private function parseArgs(array $args)
85
+	{
86
+		// incoming args could be a mix of WP query args + EE shortcode args
87
+		foreach ($args as $property => $value) {
88
+			// if the arg is a property of this class, then it's an EE shortcode arg
89
+			if (property_exists($this, $property) && ! property_exists('WP_Query', $property)) {
90
+				// set the property value
91
+				$this->{$property} = $value;
92
+				// then remove it from the array of args that will later be passed to WP_Query()
93
+				unset($args[ $property ]);
94
+			}
95
+		}
96
+		return $args;
97
+	}
98
+
99
+
100
+	private function setupEventQueryHelper()
101
+	{
102
+		// add query filters
103
+		EEH_Event_Query::add_query_filters();
104
+		// set params that will get used by the filters
105
+		EEH_Event_Query::set_query_params(
106
+			$this->month,
107
+			$this->category_slug,
108
+			$this->show_expired,
109
+			$this->order_by,
110
+			$this->sort
111
+		);
112
+	}
113
+
114
+
115
+	private function setupFilters()
116
+	{
117
+		// first off, let's remove any filters from previous queries
118
+		remove_filter(
119
+			'FHEE__archive_espresso_events_template__show_header',
120
+			array($this, 'show_event_list_title')
121
+		);
122
+		remove_filter(
123
+			'FHEE__archive_espresso_events_template__upcoming_events_h1',
124
+			array($this, 'event_list_title')
125
+		);
126
+		remove_all_filters('FHEE__content_espresso_events__event_class');
127
+		// Event List Title ?
128
+		add_filter(
129
+			'FHEE__archive_espresso_events_template__show_header',
130
+			array($this, 'show_event_list_title')
131
+		);
132
+		add_filter(
133
+			'FHEE__archive_espresso_events_template__upcoming_events_h1',
134
+			array($this, 'event_list_title'),
135
+			10,
136
+			1
137
+		);
138
+		// add the css class
139
+		add_filter(
140
+			'FHEE__content_espresso_events__event_class',
141
+			array($this, 'event_list_css'),
142
+			10,
143
+			1
144
+		);
145
+	}
146
+
147
+
148
+	private function getQueryArgs(array $args)
149
+	{
150
+		// the current "page" we are viewing
151
+		$paged = max(1, get_query_var('paged'));
152
+		// Force these args
153
+		return array_merge(
154
+			$args,
155
+			array(
156
+				'post_type'              => 'espresso_events',
157
+				'posts_per_page'         => $this->limit,
158
+				'update_post_term_cache' => false,
159
+				'update_post_meta_cache' => false,
160
+				'paged'                  => $paged,
161
+				'offset'                 => ($paged - 1) * $this->limit,
162
+			)
163
+		);
164
+	}
165
+
166
+	// phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
167
+
168
+	/**
169
+	 * show_event_list_title
170
+	 *
171
+	 * @return boolean
172
+	 */
173
+	public function show_event_list_title()
174
+	{
175
+		return filter_var(
176
+			$this->show_title,
177
+			FILTER_VALIDATE_BOOLEAN
178
+		);
179
+	}
180
+
181
+
182
+	/**
183
+	 * callback for FHEE__archive_espresso_events_template__upcoming_events_h1 filter
184
+	 *
185
+	 * @param string $event_list_title
186
+	 * @return    string
187
+	 */
188
+	public function event_list_title($event_list_title = '')
189
+	{
190
+		if (! empty($this->title)) {
191
+			return $this->title;
192
+		}
193
+		return $event_list_title;
194
+	}
195
+
196
+
197
+	/**
198
+	 * callback for FHEE__content_espresso_events__event_class filter
199
+	 *
200
+	 * @param string $event_list_css
201
+	 * @return string
202
+	 */
203
+	public function event_list_css($event_list_css = '')
204
+	{
205
+		$event_list_css .= ! empty($event_list_css) ? ' ' : '';
206
+		$event_list_css .= ! empty($this->css_class) ? $this->css_class : '';
207
+		$event_list_css .= ! empty($event_list_css) ? ' ' : '';
208
+		$event_list_css .= ! empty($this->category_slug) ? $this->category_slug : '';
209
+		return $event_list_css;
210
+	}
211
+	// phpcs:enable
212 212
 }
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
@@ -27,102 +27,102 @@
 block discarded – undo
27 27
  */
28 28
 class CreateRegistrationService extends DomainService
29 29
 {
30
-    /**
31
-     * @param EE_Event        $event
32
-     * @param EE_Transaction  $transaction
33
-     * @param EE_Ticket       $ticket
34
-     * @param EE_Line_Item    $ticket_line_item
35
-     * @param                 $reg_count
36
-     * @param                 $reg_group_size
37
-     * @param string          $reg_status
38
-     * @return EE_Registration
39
-     * @throws OutOfRangeException
40
-     * @throws EE_Error
41
-     * @throws UnexpectedEntityException
42
-     */
43
-    public function create(
44
-        EE_Event $event,
45
-        EE_Transaction $transaction,
46
-        EE_Ticket $ticket,
47
-        EE_Line_Item $ticket_line_item,
48
-        $reg_count,
49
-        $reg_group_size,
50
-        $reg_status = EEM_Registration::status_id_incomplete
51
-    ) {
52
-        $registrations = $transaction->registrations();
53
-        $reg_count = $reg_count ? $reg_count : count($registrations) + 1;
54
-        $reg_url_link = new RegUrlLink($reg_count, $ticket_line_item);
55
-        $reg_code = new RegCode($reg_url_link, $transaction, $ticket);
56
-        // generate new EE_Registration
57
-        $registration = EE_Registration::new_instance(
58
-            array(
59
-                'EVT_ID'          => $event->ID(),
60
-                'TXN_ID'          => $transaction->ID(),
61
-                'TKT_ID'          => $ticket->ID(),
62
-                'STS_ID'          => $reg_status,
63
-                'REG_final_price' => $this->resolveFinalPrice($transaction, $ticket, $ticket_line_item),
64
-                'REG_session'     => EE_Registry::instance()->SSN->id(),
65
-                'REG_count'       => $reg_count,
66
-                'REG_group_size'  => $reg_group_size ? $reg_group_size : $this->incrementRegGroupSize($registrations),
67
-                'REG_url_link'    => $reg_url_link,
68
-                'REG_code'        => $reg_code,
69
-            )
70
-        );
71
-        if (! $registration instanceof EE_Registration) {
72
-            throw new UnexpectedEntityException($registration, 'EE_Registration');
73
-        }
74
-        // save registration so that we have an ID
75
-        $registration->save();
76
-        // track reservation on reg but don't adjust ticket and datetime reserved counts
77
-        // because that is done as soon as the tickets are added/removed from the cart
78
-        $registration->reserve_ticket(false, 'CreateRegistrationService:' . __LINE__);
79
-        $registration->_add_relation_to($event, 'Event', array(), $event->ID());
80
-        $registration->_add_relation_to($ticket, 'Ticket', array(), $ticket->ID());
81
-        $transaction->_add_relation_to($registration, 'Registration', array(), $registration->ID());
82
-        $registration->save();
83
-        return $registration;
84
-    }
30
+	/**
31
+	 * @param EE_Event        $event
32
+	 * @param EE_Transaction  $transaction
33
+	 * @param EE_Ticket       $ticket
34
+	 * @param EE_Line_Item    $ticket_line_item
35
+	 * @param                 $reg_count
36
+	 * @param                 $reg_group_size
37
+	 * @param string          $reg_status
38
+	 * @return EE_Registration
39
+	 * @throws OutOfRangeException
40
+	 * @throws EE_Error
41
+	 * @throws UnexpectedEntityException
42
+	 */
43
+	public function create(
44
+		EE_Event $event,
45
+		EE_Transaction $transaction,
46
+		EE_Ticket $ticket,
47
+		EE_Line_Item $ticket_line_item,
48
+		$reg_count,
49
+		$reg_group_size,
50
+		$reg_status = EEM_Registration::status_id_incomplete
51
+	) {
52
+		$registrations = $transaction->registrations();
53
+		$reg_count = $reg_count ? $reg_count : count($registrations) + 1;
54
+		$reg_url_link = new RegUrlLink($reg_count, $ticket_line_item);
55
+		$reg_code = new RegCode($reg_url_link, $transaction, $ticket);
56
+		// generate new EE_Registration
57
+		$registration = EE_Registration::new_instance(
58
+			array(
59
+				'EVT_ID'          => $event->ID(),
60
+				'TXN_ID'          => $transaction->ID(),
61
+				'TKT_ID'          => $ticket->ID(),
62
+				'STS_ID'          => $reg_status,
63
+				'REG_final_price' => $this->resolveFinalPrice($transaction, $ticket, $ticket_line_item),
64
+				'REG_session'     => EE_Registry::instance()->SSN->id(),
65
+				'REG_count'       => $reg_count,
66
+				'REG_group_size'  => $reg_group_size ? $reg_group_size : $this->incrementRegGroupSize($registrations),
67
+				'REG_url_link'    => $reg_url_link,
68
+				'REG_code'        => $reg_code,
69
+			)
70
+		);
71
+		if (! $registration instanceof EE_Registration) {
72
+			throw new UnexpectedEntityException($registration, 'EE_Registration');
73
+		}
74
+		// save registration so that we have an ID
75
+		$registration->save();
76
+		// track reservation on reg but don't adjust ticket and datetime reserved counts
77
+		// because that is done as soon as the tickets are added/removed from the cart
78
+		$registration->reserve_ticket(false, 'CreateRegistrationService:' . __LINE__);
79
+		$registration->_add_relation_to($event, 'Event', array(), $event->ID());
80
+		$registration->_add_relation_to($ticket, 'Ticket', array(), $ticket->ID());
81
+		$transaction->_add_relation_to($registration, 'Registration', array(), $registration->ID());
82
+		$registration->save();
83
+		return $registration;
84
+	}
85 85
 
86 86
 
87
-    /**
88
-     * @param EE_Transaction $transaction
89
-     * @param EE_Ticket      $ticket
90
-     * @param EE_Line_Item   $ticket_line_item
91
-     * @return float
92
-     * @throws EE_Error
93
-     * @throws OutOfRangeException
94
-     */
95
-    protected function resolveFinalPrice(
96
-        EE_Transaction $transaction,
97
-        EE_Ticket $ticket,
98
-        EE_Line_Item $ticket_line_item
99
-    ) {
100
-        $final_price = EEH_Line_Item::calculate_final_price_for_ticket_line_item(
101
-            $transaction->total_line_item(),
102
-            $ticket_line_item
103
-        );
104
-        $final_price = $final_price !== null ? $final_price : $ticket->get_ticket_total_with_taxes();
105
-        return (float) $final_price;
106
-    }
87
+	/**
88
+	 * @param EE_Transaction $transaction
89
+	 * @param EE_Ticket      $ticket
90
+	 * @param EE_Line_Item   $ticket_line_item
91
+	 * @return float
92
+	 * @throws EE_Error
93
+	 * @throws OutOfRangeException
94
+	 */
95
+	protected function resolveFinalPrice(
96
+		EE_Transaction $transaction,
97
+		EE_Ticket $ticket,
98
+		EE_Line_Item $ticket_line_item
99
+	) {
100
+		$final_price = EEH_Line_Item::calculate_final_price_for_ticket_line_item(
101
+			$transaction->total_line_item(),
102
+			$ticket_line_item
103
+		);
104
+		$final_price = $final_price !== null ? $final_price : $ticket->get_ticket_total_with_taxes();
105
+		return (float) $final_price;
106
+	}
107 107
 
108 108
 
109
-    /**
110
-     * @param  EE_Registration[] $registrations
111
-     * @param  boolean           $update_existing_registrations
112
-     * @return int
113
-     * @throws EE_Error
114
-     */
115
-    protected function incrementRegGroupSize(array $registrations, $update_existing_registrations = true)
116
-    {
117
-        $new_reg_group_size = count($registrations) + 1;
118
-        if ($update_existing_registrations) {
119
-            foreach ($registrations as $registration) {
120
-                if ($registration instanceof EE_Registration) {
121
-                    $registration->set_group_size($new_reg_group_size);
122
-                    $registration->save();
123
-                }
124
-            }
125
-        }
126
-        return $new_reg_group_size;
127
-    }
109
+	/**
110
+	 * @param  EE_Registration[] $registrations
111
+	 * @param  boolean           $update_existing_registrations
112
+	 * @return int
113
+	 * @throws EE_Error
114
+	 */
115
+	protected function incrementRegGroupSize(array $registrations, $update_existing_registrations = true)
116
+	{
117
+		$new_reg_group_size = count($registrations) + 1;
118
+		if ($update_existing_registrations) {
119
+			foreach ($registrations as $registration) {
120
+				if ($registration instanceof EE_Registration) {
121
+					$registration->set_group_size($new_reg_group_size);
122
+					$registration->save();
123
+				}
124
+			}
125
+		}
126
+		return $new_reg_group_size;
127
+	}
128 128
 }
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   +142 added lines, -142 removed lines patch added patch discarded remove patch
@@ -25,152 +25,152 @@
 block discarded – undo
25 25
  */
26 26
 class CopyRegistrationService extends DomainService
27 27
 {
28
-    /**
29
-     * @param EE_Registration $target_registration
30
-     * @param EE_Registration $registration_to_copy
31
-     * @return bool
32
-     * @throws UnexpectedEntityException
33
-     * @throws EntityNotFoundException
34
-     * @throws RuntimeException
35
-     * @throws EE_Error
36
-     */
37
-    public function copyRegistrationDetails(
38
-        EE_Registration $target_registration,
39
-        EE_Registration $registration_to_copy
40
-    ) {
41
-        // copy attendee
42
-        $target_registration->set_attendee_id($registration_to_copy->attendee_ID());
43
-        $target_registration->updateStatusBasedOnTotalPaid(false);
44
-        $target_registration->save();
45
-        // get answers to previous reg questions
46
-        $answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
47
-        // get questions to new event reg form
48
-        $new_event = $target_registration->event();
49
-        $field_name = 'Event_Question_Group.'
50
-            . EEM_Event_Question_Group::instance()->fieldNameForContext(
51
-                $registration_to_copy->is_primary_registrant()
52
-            );
53
-        $question_groups = $new_event->question_groups([
54
-                [
55
-                    'Event.EVT_ID' => $new_event->ID(),
56
-                    $field_name => true,
57
-                ],
58
-                'order_by' => ['QSG_order' => 'ASC'],
59
-            ]);
60
-        foreach ($question_groups as $question_group) {
61
-            if ($question_group instanceof \EE_Question_Group) {
62
-                foreach ($question_group->questions() as $question) {
63
-                    if ($question instanceof EE_Question) {
64
-                        $this->generateNewAnswer(
65
-                            $question,
66
-                            $target_registration,
67
-                            $answers
68
-                        );
69
-                    }
70
-                }
71
-            }
72
-        }
73
-        return true;
74
-    }
28
+	/**
29
+	 * @param EE_Registration $target_registration
30
+	 * @param EE_Registration $registration_to_copy
31
+	 * @return bool
32
+	 * @throws UnexpectedEntityException
33
+	 * @throws EntityNotFoundException
34
+	 * @throws RuntimeException
35
+	 * @throws EE_Error
36
+	 */
37
+	public function copyRegistrationDetails(
38
+		EE_Registration $target_registration,
39
+		EE_Registration $registration_to_copy
40
+	) {
41
+		// copy attendee
42
+		$target_registration->set_attendee_id($registration_to_copy->attendee_ID());
43
+		$target_registration->updateStatusBasedOnTotalPaid(false);
44
+		$target_registration->save();
45
+		// get answers to previous reg questions
46
+		$answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
47
+		// get questions to new event reg form
48
+		$new_event = $target_registration->event();
49
+		$field_name = 'Event_Question_Group.'
50
+			. EEM_Event_Question_Group::instance()->fieldNameForContext(
51
+				$registration_to_copy->is_primary_registrant()
52
+			);
53
+		$question_groups = $new_event->question_groups([
54
+				[
55
+					'Event.EVT_ID' => $new_event->ID(),
56
+					$field_name => true,
57
+				],
58
+				'order_by' => ['QSG_order' => 'ASC'],
59
+			]);
60
+		foreach ($question_groups as $question_group) {
61
+			if ($question_group instanceof \EE_Question_Group) {
62
+				foreach ($question_group->questions() as $question) {
63
+					if ($question instanceof EE_Question) {
64
+						$this->generateNewAnswer(
65
+							$question,
66
+							$target_registration,
67
+							$answers
68
+						);
69
+					}
70
+				}
71
+			}
72
+		}
73
+		return true;
74
+	}
75 75
 
76 76
 
77
-    /**
78
-     * @param EE_Answer[] $answers
79
-     * @return array
80
-     * @throws EE_Error
81
-     */
82
-    protected function reindexAnswersByQuestionId(array $answers)
83
-    {
84
-        $reindexed_answers = array();
85
-        foreach ($answers as $answer) {
86
-            if ($answer instanceof EE_Answer) {
87
-                $reindexed_answers[ $answer->question_ID() ] = $answer->value();
88
-            }
89
-        }
90
-        return $reindexed_answers;
91
-    }
77
+	/**
78
+	 * @param EE_Answer[] $answers
79
+	 * @return array
80
+	 * @throws EE_Error
81
+	 */
82
+	protected function reindexAnswersByQuestionId(array $answers)
83
+	{
84
+		$reindexed_answers = array();
85
+		foreach ($answers as $answer) {
86
+			if ($answer instanceof EE_Answer) {
87
+				$reindexed_answers[ $answer->question_ID() ] = $answer->value();
88
+			}
89
+		}
90
+		return $reindexed_answers;
91
+	}
92 92
 
93 93
 
94
-    /**
95
-     * @param EE_Question      $question
96
-     * @param EE_Registration  $registration
97
-     * @param                  $previous_answers
98
-     * @return EE_Answer
99
-     * @throws UnexpectedEntityException
100
-     * @throws EE_Error
101
-     */
102
-    protected function generateNewAnswer(
103
-        EE_Question $question,
104
-        EE_Registration $registration,
105
-        $previous_answers
106
-    ) {
107
-        $old_answer_value = isset($previous_answers[ $question->ID() ])
108
-            ? $previous_answers[ $question->ID() ]
109
-            : '';
110
-        $new_answer = EE_Answer::new_instance(
111
-            array(
112
-                'QST_ID'    => $question->ID(),
113
-                'REG_ID'    => $registration->ID(),
114
-                'ANS_value' => $old_answer_value,
115
-            )
116
-        );
117
-        if (! $new_answer instanceof EE_Answer) {
118
-            throw new UnexpectedEntityException($new_answer, 'EE_Answer');
119
-        }
120
-        $new_answer->save();
121
-        return $new_answer;
122
-    }
94
+	/**
95
+	 * @param EE_Question      $question
96
+	 * @param EE_Registration  $registration
97
+	 * @param                  $previous_answers
98
+	 * @return EE_Answer
99
+	 * @throws UnexpectedEntityException
100
+	 * @throws EE_Error
101
+	 */
102
+	protected function generateNewAnswer(
103
+		EE_Question $question,
104
+		EE_Registration $registration,
105
+		$previous_answers
106
+	) {
107
+		$old_answer_value = isset($previous_answers[ $question->ID() ])
108
+			? $previous_answers[ $question->ID() ]
109
+			: '';
110
+		$new_answer = EE_Answer::new_instance(
111
+			array(
112
+				'QST_ID'    => $question->ID(),
113
+				'REG_ID'    => $registration->ID(),
114
+				'ANS_value' => $old_answer_value,
115
+			)
116
+		);
117
+		if (! $new_answer instanceof EE_Answer) {
118
+			throw new UnexpectedEntityException($new_answer, 'EE_Answer');
119
+		}
120
+		$new_answer->save();
121
+		return $new_answer;
122
+	}
123 123
 
124 124
 
125
-    /**
126
-     * @param EE_Registration $target_registration
127
-     * @param EE_Registration $registration_to_copy
128
-     * @return bool
129
-     * @throws RuntimeException
130
-     * @throws UnexpectedEntityException
131
-     * @throws EE_Error
132
-     */
133
-    public function copyPaymentDetails(
134
-        EE_Registration $target_registration,
135
-        EE_Registration $registration_to_copy
136
-    ) {
137
-        $save = false;
138
-        $previous_registration_payments = $registration_to_copy->registration_payments();
139
-        $new_registration_payment_total = 0;
140
-        $registration_to_copy_total = $registration_to_copy->paid();
141
-        foreach ($previous_registration_payments as $previous_registration_payment) {
142
-            if (
143
-                $previous_registration_payment instanceof EE_Registration_Payment
144
-                && $previous_registration_payment->payment() instanceof EE_Payment
145
-                && $previous_registration_payment->payment()->is_approved()
146
-            ) {
147
-                $payment_amount = $previous_registration_payment->amount();
148
-                $new_registration_payment = EE_Registration_Payment::new_instance(
149
-                    array(
150
-                        'REG_ID'     => $target_registration->ID(),
151
-                        'PAY_ID'     => $previous_registration_payment->payment()->ID(),
152
-                        'RPY_amount' => $payment_amount,
153
-                    )
154
-                );
155
-                if (! $new_registration_payment instanceof EE_Registration_Payment) {
156
-                    throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
157
-                }
158
-                $new_registration_payment->save();
159
-                // if new reg payment is good, then set old reg payment amount to zero
160
-                $previous_registration_payment->set_amount(0);
161
-                $previous_registration_payment->save();
162
-                // now  increment/decrement payment amounts
163
-                $new_registration_payment_total += $payment_amount;
164
-                $registration_to_copy_total -= $payment_amount;
165
-                $save = true;
166
-            }
167
-        }
168
-        if ($save) {
169
-            $target_registration->set_paid($new_registration_payment_total);
170
-            $target_registration->save();
171
-            $registration_to_copy->set_paid($registration_to_copy_total);
172
-            $registration_to_copy->save();
173
-        }
174
-        return true;
175
-    }
125
+	/**
126
+	 * @param EE_Registration $target_registration
127
+	 * @param EE_Registration $registration_to_copy
128
+	 * @return bool
129
+	 * @throws RuntimeException
130
+	 * @throws UnexpectedEntityException
131
+	 * @throws EE_Error
132
+	 */
133
+	public function copyPaymentDetails(
134
+		EE_Registration $target_registration,
135
+		EE_Registration $registration_to_copy
136
+	) {
137
+		$save = false;
138
+		$previous_registration_payments = $registration_to_copy->registration_payments();
139
+		$new_registration_payment_total = 0;
140
+		$registration_to_copy_total = $registration_to_copy->paid();
141
+		foreach ($previous_registration_payments as $previous_registration_payment) {
142
+			if (
143
+				$previous_registration_payment instanceof EE_Registration_Payment
144
+				&& $previous_registration_payment->payment() instanceof EE_Payment
145
+				&& $previous_registration_payment->payment()->is_approved()
146
+			) {
147
+				$payment_amount = $previous_registration_payment->amount();
148
+				$new_registration_payment = EE_Registration_Payment::new_instance(
149
+					array(
150
+						'REG_ID'     => $target_registration->ID(),
151
+						'PAY_ID'     => $previous_registration_payment->payment()->ID(),
152
+						'RPY_amount' => $payment_amount,
153
+					)
154
+				);
155
+				if (! $new_registration_payment instanceof EE_Registration_Payment) {
156
+					throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
157
+				}
158
+				$new_registration_payment->save();
159
+				// if new reg payment is good, then set old reg payment amount to zero
160
+				$previous_registration_payment->set_amount(0);
161
+				$previous_registration_payment->save();
162
+				// now  increment/decrement payment amounts
163
+				$new_registration_payment_total += $payment_amount;
164
+				$registration_to_copy_total -= $payment_amount;
165
+				$save = true;
166
+			}
167
+		}
168
+		if ($save) {
169
+			$target_registration->set_paid($new_registration_payment_total);
170
+			$target_registration->save();
171
+			$registration_to_copy->set_paid($registration_to_copy_total);
172
+			$registration_to_copy->save();
173
+		}
174
+		return true;
175
+	}
176 176
 }
Please login to merge, or discard this patch.
acceptance_tests/Helpers/MessagesAdmin.php 1 patch
Indentation   +290 added lines, -290 removed lines patch added patch discarded remove patch
@@ -10,294 +10,294 @@
 block discarded – undo
10 10
  */
11 11
 trait MessagesAdmin
12 12
 {
13
-    /**
14
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
15
-     *                                  a string.
16
-     */
17
-    public function amOnMessagesActivityListTablePage($additional_params = '')
18
-    {
19
-        $this->actor()->amOnAdminPage(MessagesPage::messageActivityListTableUrl($additional_params));
20
-    }
21
-
22
-    /**
23
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
24
-     *                                  a string.
25
-     */
26
-    public function amOnDefaultMessageTemplateListTablePage($additional_params = '')
27
-    {
28
-        $this->actor()->amOnAdminPage(MessagesPage::defaultMessageTemplateListTableUrl($additional_params));
29
-    }
30
-
31
-
32
-    /**
33
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
34
-     *                                  a string.
35
-     */
36
-    public function amOnCustomMessageTemplateListTablePage($additional_params = '')
37
-    {
38
-        $this->actor()->amOnAdminPage(MessagesPage::customMessageTemplateListTableUrl($additional_params));
39
-    }
40
-
41
-
42
-    /**
43
-     * Directs to message settings page
44
-     */
45
-    public function amOnMessageSettingsPage()
46
-    {
47
-        $this->actor()->amOnAdminPage(MessagesPage::messageSettingsUrl());
48
-    }
49
-
50
-
51
-    public function activateMessageTypeForMessenger($message_type_slug, $messenger_slug = 'email')
52
-    {
53
-        $this->actor()->dragAndDrop(
54
-            MessagesPage::draggableSettingsBoxSelectorForMessageTypeAndMessenger($message_type_slug, $messenger_slug),
55
-            MessagesPage::MESSAGES_SETTINGS_ACTIVE_MESSAGE_TYPES_CONTAINER_SELECTOR
56
-        );
57
-    }
58
-
59
-
60
-    /**
61
-     * Assumes you are already on the list table page that has the ui for editing the template.
62
-     * @param string $message_type_slug
63
-     * @param string $context [optional] if you want to click directly to the given context in the editor
64
-     */
65
-    public function clickToEditMessageTemplateByMessageType($message_type_slug, $context = '')
66
-    {
67
-        $this->actor()->click(MessagesPage::editMessageTemplateClassByMessageType($message_type_slug, $context));
68
-    }
69
-
70
-
71
-    /**
72
-     * Use this action to verify that the count for the given text in the specified field is as expected.  For example
73
-     * filling the condition of, "There should only be 1 instance of `[email protected]` in all the 'to' column.
74
-     *
75
-     * @param int    $expected_occurence_count
76
-     * @param string $text_to_check_for
77
-     * @param string $field
78
-     * @param string $message_type_label
79
-     * @param string $message_status
80
-     * @param string $messenger
81
-     * @param string $context
82
-     */
83
-    public function verifyMatchingCountofTextInMessageActivityListTableFor(
84
-        $expected_occurence_count,
85
-        $text_to_check_for,
86
-        $field,
87
-        $message_type_label,
88
-        $message_status = MessagesPage::MESSAGE_STATUS_SENT,
89
-        $messenger = 'Email',
90
-        $context = 'Event Admin'
91
-    ) {
92
-        $elements = $this->actor()->grabMultiple(MessagesPage::messagesActivityListTableCellSelectorFor(
93
-            $field,
94
-            $message_type_label,
95
-            $message_status,
96
-            $messenger,
97
-            $context,
98
-            $text_to_check_for,
99
-            0
100
-        ));
101
-        $actual_count = count($elements);
102
-        $this->actor()->assertEquals(
103
-            $expected_occurence_count,
104
-            $actual_count,
105
-            sprintf(
106
-                'Expected %s of the %s text for the %s field but there were actually %s counted.',
107
-                $expected_occurence_count,
108
-                $text_to_check_for,
109
-                $field,
110
-                $actual_count
111
-            )
112
-        );
113
-    }
114
-
115
-
116
-    /**
117
-     * This will create a custom message template for the given messenger and message type from the context of the
118
-     * default (global) message template list table.
119
-     * Also takes care of verifying the template was created.
120
-     * @param string $message_type_label
121
-     * @param string $messenger_label
122
-     */
123
-    public function createCustomMessageTemplateFromDefaultFor($message_type_label, $messenger_label)
124
-    {
125
-        $this->amOnDefaultMessageTemplateListTablePage();
126
-        $this->actor()->click(
127
-            MessagesPage::createCustomButtonForMessageTypeAndMessenger(
128
-                $message_type_label,
129
-                $messenger_label
130
-            )
131
-        );
132
-        $this->actor()->seeInField('#title', 'New Custom Template');
133
-    }
134
-
135
-
136
-    /**
137
-     * This switches the context of the current messages template to the given reference.
138
-     * @param string $context_reference  This should be the visible label for the option.
139
-     */
140
-    public function switchContextTo($context_reference)
141
-    {
142
-        $this->actor()->selectOption(MessagesPage::MESSAGES_CONTEXT_SWITCHER_SELECTOR, $context_reference);
143
-        $this->actor()->click(MessagesPage::MESSAGES_CONTEXT_SWITCHER_BUTTON_SELECTOR);
144
-        $this->actor()->waitForText($context_reference, 10, 'h1');
145
-    }
146
-
147
-
148
-    /**
149
-     * Toggles Context so its turned off or on (depending on where it started) and verifies the expected state after
150
-     * toggling.
151
-     *
152
-     * @param string $context_string           What context is being switched (used for the expected state text)
153
-     * @param bool   $expected_state_is_active Used to indicate whether the expected state is active (true) or inactive
154
-     *                                         (false)
155
-     */
156
-    public function toggleContextState($context_string, $expected_state_is_active = true)
157
-    {
158
-        $this->actor()->scrollTo(MessagesPage::MESSAGES_CONTEXT_SWITCHER_SELECTOR);
159
-        $this->actor()->click(MessagesPage::MESSAGES_CONTEXT_ACTIVE_STATE_TOGGLE);
160
-        if ($expected_state_is_active) {
161
-            $this->actor()->waitForText("The template for $context_string is currently active.");
162
-        } else {
163
-            $this->actor()->waitForText("The template for $context_string is currently inactive");
164
-        }
165
-    }
166
-
167
-
168
-    /**
169
-     * Triggers saving the message template.
170
-     * @param bool $and_close   Use to indicate to click the Save and Close button.
171
-     */
172
-    public function saveMessageTemplate($and_close = false)
173
-    {
174
-        $this->actor()->scrollTo(MessagesPage::MESSAGES_CONTEXT_SWITCHER_SELECTOR);
175
-        if ($and_close) {
176
-            $this->actor()->click('Save and Close');
177
-        } else {
178
-            $this->actor()->click('Save');
179
-        }
180
-        $this->actor()->waitForText('successfully updated');
181
-    }
182
-
183
-
184
-    /**
185
-     * This takes care of clicking the View Message icon for the given parameters.
186
-     * Assumes you are already viewing the messages activity list table.
187
-     * @param        $message_type_label
188
-     * @param        $message_status
189
-     * @param string $messenger
190
-     * @param string $context
191
-     * @param int    $number_in_set
192
-     */
193
-    public function viewMessageInMessagesListTableFor(
194
-        $message_type_label,
195
-        $message_status = MessagesPage::MESSAGE_STATUS_SENT,
196
-        $messenger = 'Email',
197
-        $context = 'Event Admin',
198
-        $number_in_set = 1
199
-    ) {
200
-        $this->actor()->click(MessagesPage::messagesActivityListTableViewButtonSelectorFor(
201
-            $message_type_label,
202
-            $message_status,
203
-            $messenger,
204
-            $context,
205
-            $number_in_set
206
-        ));
207
-    }
208
-
209
-
210
-    /**
211
-     * Takes care of deleting a message matching the given parameters via the message activity list table.
212
-     * Assumes you are already viewing the messages activity list table.
213
-     * @param        $message_type_label
214
-     * @param        $message_status
215
-     * @param string $messenger
216
-     * @param string $context
217
-     * @param int    $number_in_set
218
-     */
219
-    public function deleteMessageInMessagesListTableFor(
220
-        $message_type_label,
221
-        $message_status = MessagesPage::MESSAGE_STATUS_SENT,
222
-        $messenger = 'Email',
223
-        $context = 'Event Admin',
224
-        $number_in_set = 1
225
-    ) {
226
-        $delete_action_selector = MessagesPage::messagesActivityListTableDeleteActionSelectorFor(
227
-            $message_type_label,
228
-            $message_status,
229
-            $messenger,
230
-            $context,
231
-            $number_in_set
232
-        );
233
-        $cell_selector = MessagesPage::messagesActivityListTableCellSelectorFor(
234
-            'to',
235
-            $message_type_label,
236
-            $message_status,
237
-            $messenger,
238
-            $context,
239
-            '',
240
-            $number_in_set
241
-        );
242
-        $this->actor()->scrollTo($cell_selector, 0, -30);
243
-        $this->actor()->moveMouseOver(
244
-            $cell_selector,
245
-            5,
246
-            5
247
-        );
248
-        $this->actor()->waitForElementVisible(
249
-            $delete_action_selector
250
-        );
251
-        $this->actor()->click(
252
-            $delete_action_selector
253
-        );
254
-        $this->actor()->waitForText('successfully deleted', 20);
255
-    }
256
-
257
-
258
-    /**
259
-     * Assuming you have already triggered the view modal for a single message from the context of the message activity
260
-     * list table, this will take care of validating the given text is in that window.
261
-     * @param string $text_to_view
262
-     */
263
-    public function seeTextInViewMessageModal($text_to_view, $should_not_see = false)
264
-    {
265
-        $this->actor()->wait(2);
266
-        $this->actor()->waitForElementVisible('.ee-admin-dialog-container-inner-content');
267
-        $this->actor()->switchToIframe('message-view-window');
268
-        $should_not_see ? $this->actor()->dontSee($text_to_view) : $this->actor()->see($text_to_view);
269
-        $this->actor()->switchToIframe();
270
-    }
271
-
272
-
273
-    /**
274
-     * This returns the value for the link at the given selector in the message modal.
275
-     * @param string $selector (any selector string accepted by WebDriver)
276
-     */
277
-    public function observeLinkAtSelectorInMessageModal($selector)
278
-    {
279
-        $this->actor()->wait(2);
280
-        $this->actor()->waitForElementVisible('.ee-admin-dialog-container-inner-content');
281
-        $this->actor()->switchToIframe('message-view-window');
282
-        $link = $this->actor()->observeLinkUrlAt($selector);
283
-        $this->actor()->switchToIframe();
284
-        return $link;
285
-    }
286
-
287
-
288
-    /**
289
-     * Assuming you have already triggered the view modal for a single message from the context of the message activity
290
-     * list table, this will take care of validating the given text is NOT that window.
291
-     * @param string $text_to_view
292
-     */
293
-    public function dontSeeTextInViewMessageModal($text_to_view)
294
-    {
295
-        $this->seeTextInViewMessageModal($text_to_view, true);
296
-    }
297
-
298
-
299
-    public function dismissMessageModal()
300
-    {
301
-        $this->actor()->executeJs('window.dialogHelper.closeModal()');
302
-    }
13
+	/**
14
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
15
+	 *                                  a string.
16
+	 */
17
+	public function amOnMessagesActivityListTablePage($additional_params = '')
18
+	{
19
+		$this->actor()->amOnAdminPage(MessagesPage::messageActivityListTableUrl($additional_params));
20
+	}
21
+
22
+	/**
23
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
24
+	 *                                  a string.
25
+	 */
26
+	public function amOnDefaultMessageTemplateListTablePage($additional_params = '')
27
+	{
28
+		$this->actor()->amOnAdminPage(MessagesPage::defaultMessageTemplateListTableUrl($additional_params));
29
+	}
30
+
31
+
32
+	/**
33
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
34
+	 *                                  a string.
35
+	 */
36
+	public function amOnCustomMessageTemplateListTablePage($additional_params = '')
37
+	{
38
+		$this->actor()->amOnAdminPage(MessagesPage::customMessageTemplateListTableUrl($additional_params));
39
+	}
40
+
41
+
42
+	/**
43
+	 * Directs to message settings page
44
+	 */
45
+	public function amOnMessageSettingsPage()
46
+	{
47
+		$this->actor()->amOnAdminPage(MessagesPage::messageSettingsUrl());
48
+	}
49
+
50
+
51
+	public function activateMessageTypeForMessenger($message_type_slug, $messenger_slug = 'email')
52
+	{
53
+		$this->actor()->dragAndDrop(
54
+			MessagesPage::draggableSettingsBoxSelectorForMessageTypeAndMessenger($message_type_slug, $messenger_slug),
55
+			MessagesPage::MESSAGES_SETTINGS_ACTIVE_MESSAGE_TYPES_CONTAINER_SELECTOR
56
+		);
57
+	}
58
+
59
+
60
+	/**
61
+	 * Assumes you are already on the list table page that has the ui for editing the template.
62
+	 * @param string $message_type_slug
63
+	 * @param string $context [optional] if you want to click directly to the given context in the editor
64
+	 */
65
+	public function clickToEditMessageTemplateByMessageType($message_type_slug, $context = '')
66
+	{
67
+		$this->actor()->click(MessagesPage::editMessageTemplateClassByMessageType($message_type_slug, $context));
68
+	}
69
+
70
+
71
+	/**
72
+	 * Use this action to verify that the count for the given text in the specified field is as expected.  For example
73
+	 * filling the condition of, "There should only be 1 instance of `[email protected]` in all the 'to' column.
74
+	 *
75
+	 * @param int    $expected_occurence_count
76
+	 * @param string $text_to_check_for
77
+	 * @param string $field
78
+	 * @param string $message_type_label
79
+	 * @param string $message_status
80
+	 * @param string $messenger
81
+	 * @param string $context
82
+	 */
83
+	public function verifyMatchingCountofTextInMessageActivityListTableFor(
84
+		$expected_occurence_count,
85
+		$text_to_check_for,
86
+		$field,
87
+		$message_type_label,
88
+		$message_status = MessagesPage::MESSAGE_STATUS_SENT,
89
+		$messenger = 'Email',
90
+		$context = 'Event Admin'
91
+	) {
92
+		$elements = $this->actor()->grabMultiple(MessagesPage::messagesActivityListTableCellSelectorFor(
93
+			$field,
94
+			$message_type_label,
95
+			$message_status,
96
+			$messenger,
97
+			$context,
98
+			$text_to_check_for,
99
+			0
100
+		));
101
+		$actual_count = count($elements);
102
+		$this->actor()->assertEquals(
103
+			$expected_occurence_count,
104
+			$actual_count,
105
+			sprintf(
106
+				'Expected %s of the %s text for the %s field but there were actually %s counted.',
107
+				$expected_occurence_count,
108
+				$text_to_check_for,
109
+				$field,
110
+				$actual_count
111
+			)
112
+		);
113
+	}
114
+
115
+
116
+	/**
117
+	 * This will create a custom message template for the given messenger and message type from the context of the
118
+	 * default (global) message template list table.
119
+	 * Also takes care of verifying the template was created.
120
+	 * @param string $message_type_label
121
+	 * @param string $messenger_label
122
+	 */
123
+	public function createCustomMessageTemplateFromDefaultFor($message_type_label, $messenger_label)
124
+	{
125
+		$this->amOnDefaultMessageTemplateListTablePage();
126
+		$this->actor()->click(
127
+			MessagesPage::createCustomButtonForMessageTypeAndMessenger(
128
+				$message_type_label,
129
+				$messenger_label
130
+			)
131
+		);
132
+		$this->actor()->seeInField('#title', 'New Custom Template');
133
+	}
134
+
135
+
136
+	/**
137
+	 * This switches the context of the current messages template to the given reference.
138
+	 * @param string $context_reference  This should be the visible label for the option.
139
+	 */
140
+	public function switchContextTo($context_reference)
141
+	{
142
+		$this->actor()->selectOption(MessagesPage::MESSAGES_CONTEXT_SWITCHER_SELECTOR, $context_reference);
143
+		$this->actor()->click(MessagesPage::MESSAGES_CONTEXT_SWITCHER_BUTTON_SELECTOR);
144
+		$this->actor()->waitForText($context_reference, 10, 'h1');
145
+	}
146
+
147
+
148
+	/**
149
+	 * Toggles Context so its turned off or on (depending on where it started) and verifies the expected state after
150
+	 * toggling.
151
+	 *
152
+	 * @param string $context_string           What context is being switched (used for the expected state text)
153
+	 * @param bool   $expected_state_is_active Used to indicate whether the expected state is active (true) or inactive
154
+	 *                                         (false)
155
+	 */
156
+	public function toggleContextState($context_string, $expected_state_is_active = true)
157
+	{
158
+		$this->actor()->scrollTo(MessagesPage::MESSAGES_CONTEXT_SWITCHER_SELECTOR);
159
+		$this->actor()->click(MessagesPage::MESSAGES_CONTEXT_ACTIVE_STATE_TOGGLE);
160
+		if ($expected_state_is_active) {
161
+			$this->actor()->waitForText("The template for $context_string is currently active.");
162
+		} else {
163
+			$this->actor()->waitForText("The template for $context_string is currently inactive");
164
+		}
165
+	}
166
+
167
+
168
+	/**
169
+	 * Triggers saving the message template.
170
+	 * @param bool $and_close   Use to indicate to click the Save and Close button.
171
+	 */
172
+	public function saveMessageTemplate($and_close = false)
173
+	{
174
+		$this->actor()->scrollTo(MessagesPage::MESSAGES_CONTEXT_SWITCHER_SELECTOR);
175
+		if ($and_close) {
176
+			$this->actor()->click('Save and Close');
177
+		} else {
178
+			$this->actor()->click('Save');
179
+		}
180
+		$this->actor()->waitForText('successfully updated');
181
+	}
182
+
183
+
184
+	/**
185
+	 * This takes care of clicking the View Message icon for the given parameters.
186
+	 * Assumes you are already viewing the messages activity list table.
187
+	 * @param        $message_type_label
188
+	 * @param        $message_status
189
+	 * @param string $messenger
190
+	 * @param string $context
191
+	 * @param int    $number_in_set
192
+	 */
193
+	public function viewMessageInMessagesListTableFor(
194
+		$message_type_label,
195
+		$message_status = MessagesPage::MESSAGE_STATUS_SENT,
196
+		$messenger = 'Email',
197
+		$context = 'Event Admin',
198
+		$number_in_set = 1
199
+	) {
200
+		$this->actor()->click(MessagesPage::messagesActivityListTableViewButtonSelectorFor(
201
+			$message_type_label,
202
+			$message_status,
203
+			$messenger,
204
+			$context,
205
+			$number_in_set
206
+		));
207
+	}
208
+
209
+
210
+	/**
211
+	 * Takes care of deleting a message matching the given parameters via the message activity list table.
212
+	 * Assumes you are already viewing the messages activity list table.
213
+	 * @param        $message_type_label
214
+	 * @param        $message_status
215
+	 * @param string $messenger
216
+	 * @param string $context
217
+	 * @param int    $number_in_set
218
+	 */
219
+	public function deleteMessageInMessagesListTableFor(
220
+		$message_type_label,
221
+		$message_status = MessagesPage::MESSAGE_STATUS_SENT,
222
+		$messenger = 'Email',
223
+		$context = 'Event Admin',
224
+		$number_in_set = 1
225
+	) {
226
+		$delete_action_selector = MessagesPage::messagesActivityListTableDeleteActionSelectorFor(
227
+			$message_type_label,
228
+			$message_status,
229
+			$messenger,
230
+			$context,
231
+			$number_in_set
232
+		);
233
+		$cell_selector = MessagesPage::messagesActivityListTableCellSelectorFor(
234
+			'to',
235
+			$message_type_label,
236
+			$message_status,
237
+			$messenger,
238
+			$context,
239
+			'',
240
+			$number_in_set
241
+		);
242
+		$this->actor()->scrollTo($cell_selector, 0, -30);
243
+		$this->actor()->moveMouseOver(
244
+			$cell_selector,
245
+			5,
246
+			5
247
+		);
248
+		$this->actor()->waitForElementVisible(
249
+			$delete_action_selector
250
+		);
251
+		$this->actor()->click(
252
+			$delete_action_selector
253
+		);
254
+		$this->actor()->waitForText('successfully deleted', 20);
255
+	}
256
+
257
+
258
+	/**
259
+	 * Assuming you have already triggered the view modal for a single message from the context of the message activity
260
+	 * list table, this will take care of validating the given text is in that window.
261
+	 * @param string $text_to_view
262
+	 */
263
+	public function seeTextInViewMessageModal($text_to_view, $should_not_see = false)
264
+	{
265
+		$this->actor()->wait(2);
266
+		$this->actor()->waitForElementVisible('.ee-admin-dialog-container-inner-content');
267
+		$this->actor()->switchToIframe('message-view-window');
268
+		$should_not_see ? $this->actor()->dontSee($text_to_view) : $this->actor()->see($text_to_view);
269
+		$this->actor()->switchToIframe();
270
+	}
271
+
272
+
273
+	/**
274
+	 * This returns the value for the link at the given selector in the message modal.
275
+	 * @param string $selector (any selector string accepted by WebDriver)
276
+	 */
277
+	public function observeLinkAtSelectorInMessageModal($selector)
278
+	{
279
+		$this->actor()->wait(2);
280
+		$this->actor()->waitForElementVisible('.ee-admin-dialog-container-inner-content');
281
+		$this->actor()->switchToIframe('message-view-window');
282
+		$link = $this->actor()->observeLinkUrlAt($selector);
283
+		$this->actor()->switchToIframe();
284
+		return $link;
285
+	}
286
+
287
+
288
+	/**
289
+	 * Assuming you have already triggered the view modal for a single message from the context of the message activity
290
+	 * list table, this will take care of validating the given text is NOT that window.
291
+	 * @param string $text_to_view
292
+	 */
293
+	public function dontSeeTextInViewMessageModal($text_to_view)
294
+	{
295
+		$this->seeTextInViewMessageModal($text_to_view, true);
296
+	}
297
+
298
+
299
+	public function dismissMessageModal()
300
+	{
301
+		$this->actor()->executeJs('window.dialogHelper.closeModal()');
302
+	}
303 303
 }
Please login to merge, or discard this patch.
core/services/assets/AssetRegistrationException.php 1 patch
Indentation   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -16,24 +16,24 @@
 block discarded – undo
16 16
  */
17 17
 class AssetRegistrationException extends RuntimeException
18 18
 {
19
-    /**
20
-     * @param                $script_handle
21
-     * @param string         $message
22
-     * @param int            $code
23
-     * @param Exception|null $previous
24
-     */
25
-    public function __construct($script_handle, $message = '', $code = 0, Exception $previous = null)
26
-    {
27
-        if (empty($message)) {
28
-            $message = sprintf(
29
-                esc_html_x(
30
-                    'The "%1$s" script could not be registered with WordPress core.',
31
-                    'The "script-handle" script could not be registered with WordPress core.',
32
-                    'event_espresso'
33
-                ),
34
-                $script_handle
35
-            );
36
-        }
37
-        parent::__construct($message, $code, $previous);
38
-    }
19
+	/**
20
+	 * @param                $script_handle
21
+	 * @param string         $message
22
+	 * @param int            $code
23
+	 * @param Exception|null $previous
24
+	 */
25
+	public function __construct($script_handle, $message = '', $code = 0, Exception $previous = null)
26
+	{
27
+		if (empty($message)) {
28
+			$message = sprintf(
29
+				esc_html_x(
30
+					'The "%1$s" script could not be registered with WordPress core.',
31
+					'The "script-handle" script could not be registered with WordPress core.',
32
+					'event_espresso'
33
+				),
34
+				$script_handle
35
+			);
36
+		}
37
+		parent::__construct($message, $code, $previous);
38
+	}
39 39
 }
40 40
\ No newline at end of file
Please login to merge, or discard this patch.
core/domain/services/admin/privacy/export/ExportTransaction.php 1 patch
Indentation   +96 added lines, -96 removed lines patch added patch discarded remove patch
@@ -15,106 +15,106 @@
 block discarded – undo
15 15
  */
16 16
 class ExportTransaction implements PersonalDataExporterInterface
17 17
 {
18
-    /**
19
-     * @var EEM_Transaction $transaction_model
20
-     */
21
-    protected $transaction_model;
18
+	/**
19
+	 * @var EEM_Transaction $transaction_model
20
+	 */
21
+	protected $transaction_model;
22 22
 
23
-    /**
24
-     * ExportTransaction constructor.
25
-     *
26
-     * @param $transaction_model
27
-     */
28
-    public function __construct(EEM_Transaction $transaction_model)
29
-    {
30
-        $this->transaction_model = $transaction_model;
31
-    }
23
+	/**
24
+	 * ExportTransaction constructor.
25
+	 *
26
+	 * @param $transaction_model
27
+	 */
28
+	public function __construct(EEM_Transaction $transaction_model)
29
+	{
30
+		$this->transaction_model = $transaction_model;
31
+	}
32 32
 
33 33
 
34
-    /**
35
-     * Returns data for export.
36
-     *
37
-     * @param string    $email_address ,
38
-     * @param int       $page          starts at 1, not 0
39
-     * @return array {
40
-     * @type array      $data          {
41
-     * @type array {
42
-     * @type string     $group_id      (not translated, same for all exports)
43
-     * @type string     $group_label   (translated string)
44
-     * @type string|int $item_id
45
-     * @type array      $data          {
46
-     * @type array {
47
-     * @type string     $name          what's shown in the left-column of the export row
48
-     * @type string     $value         what's showin the right-column of the export row
49
-     *                                 }
50
-     *                                 }
51
-     *                                 }
52
-     *                                 }
53
-     *                                 }
54
-     */
55
-    public function export($email_address, $page = 1)
56
-    {
57
-        $page_size = 10;
58
-        $transactions = $this->transaction_model->get_all(
59
-            array(
60
-                array(
61
-                    'Registration.Attendee.ATT_email' => $email_address,
62
-                ),
63
-                'limit' => array(
64
-                    ($page - 1) * $page_size,
65
-                    $page_size,
66
-                ),
67
-            )
68
-        );
69
-        $export_fields = array_intersect_key(
70
-            EEM_Transaction::instance()->field_settings(),
71
-            array_flip(
72
-                array(
73
-                    'TXN_timestamp',
74
-                    'TXN_total',
75
-                    'TXN_paid',
76
-                    'TXN_session_data',
77
-                )
78
-            )
79
-        );
80
-        $export_items = array();
81
-        $found_something = false;
82
-        foreach ($transactions as $transaction) {
83
-            $found_something = true;
84
-            $data = array();
85
-            foreach ($export_fields as $field_name => $field_obj) {
86
-                if ($field_name === 'TXN_session_data') {
87
-                    $value = $transaction->get_pretty($field_name, 'print_r');
88
-                } else {
89
-                    $value = $transaction->get_pretty($field_name);
90
-                }
91
-                $data[] = array(
92
-                    'name'  => $field_obj->get_nicename(),
93
-                    'value' => $value,
94
-                );
95
-            }
96
-            $export_items[] = array(
97
-                'group_id'    => 'transactions',
98
-                'group_label' => esc_html__('Transactions', 'event_espresso'),
99
-                'item_id'     => $transaction->ID(),
100
-                'data'        => $data,
101
-            );
102
-        }
103
-        return array(
104
-            'data' => $export_items,
105
-            'done' => ! $found_something,
106
-        );
107
-    }
34
+	/**
35
+	 * Returns data for export.
36
+	 *
37
+	 * @param string    $email_address ,
38
+	 * @param int       $page          starts at 1, not 0
39
+	 * @return array {
40
+	 * @type array      $data          {
41
+	 * @type array {
42
+	 * @type string     $group_id      (not translated, same for all exports)
43
+	 * @type string     $group_label   (translated string)
44
+	 * @type string|int $item_id
45
+	 * @type array      $data          {
46
+	 * @type array {
47
+	 * @type string     $name          what's shown in the left-column of the export row
48
+	 * @type string     $value         what's showin the right-column of the export row
49
+	 *                                 }
50
+	 *                                 }
51
+	 *                                 }
52
+	 *                                 }
53
+	 *                                 }
54
+	 */
55
+	public function export($email_address, $page = 1)
56
+	{
57
+		$page_size = 10;
58
+		$transactions = $this->transaction_model->get_all(
59
+			array(
60
+				array(
61
+					'Registration.Attendee.ATT_email' => $email_address,
62
+				),
63
+				'limit' => array(
64
+					($page - 1) * $page_size,
65
+					$page_size,
66
+				),
67
+			)
68
+		);
69
+		$export_fields = array_intersect_key(
70
+			EEM_Transaction::instance()->field_settings(),
71
+			array_flip(
72
+				array(
73
+					'TXN_timestamp',
74
+					'TXN_total',
75
+					'TXN_paid',
76
+					'TXN_session_data',
77
+				)
78
+			)
79
+		);
80
+		$export_items = array();
81
+		$found_something = false;
82
+		foreach ($transactions as $transaction) {
83
+			$found_something = true;
84
+			$data = array();
85
+			foreach ($export_fields as $field_name => $field_obj) {
86
+				if ($field_name === 'TXN_session_data') {
87
+					$value = $transaction->get_pretty($field_name, 'print_r');
88
+				} else {
89
+					$value = $transaction->get_pretty($field_name);
90
+				}
91
+				$data[] = array(
92
+					'name'  => $field_obj->get_nicename(),
93
+					'value' => $value,
94
+				);
95
+			}
96
+			$export_items[] = array(
97
+				'group_id'    => 'transactions',
98
+				'group_label' => esc_html__('Transactions', 'event_espresso'),
99
+				'item_id'     => $transaction->ID(),
100
+				'data'        => $data,
101
+			);
102
+		}
103
+		return array(
104
+			'data' => $export_items,
105
+			'done' => ! $found_something,
106
+		);
107
+	}
108 108
 
109
-    /**
110
-     * Gets the Translated name of this exporter
111
-     *
112
-     * @return string
113
-     */
114
-    public function name()
115
-    {
116
-        return esc_html__('Event Espresso Transaction Exporter', 'event_espresso');
117
-    }
109
+	/**
110
+	 * Gets the Translated name of this exporter
111
+	 *
112
+	 * @return string
113
+	 */
114
+	public function name()
115
+	{
116
+		return esc_html__('Event Espresso Transaction Exporter', 'event_espresso');
117
+	}
118 118
 }
119 119
 // End of file ExportTransaction.php
120 120
 // Location: EventEspresso\core\domain\services\admin\privacy\export/ExportTransaction.php
Please login to merge, or discard this patch.
core/domain/services/admin/privacy/export/ExportCheckins.php 1 patch
Indentation   +100 added lines, -100 removed lines patch added patch discarded remove patch
@@ -16,112 +16,112 @@
 block discarded – undo
16 16
  */
17 17
 class ExportCheckins implements PersonalDataExporterInterface
18 18
 {
19
-    /**
20
-     * @var EEM_Checkin
21
-     */
22
-    protected $checkin_model;
19
+	/**
20
+	 * @var EEM_Checkin
21
+	 */
22
+	protected $checkin_model;
23 23
 
24
-    /**
25
-     * ExportCheckins constructor.
26
-     *
27
-     * @param EEM_Checkin $checkin_model
28
-     */
29
-    public function __construct(EEM_Checkin $checkin_model)
30
-    {
31
-        $this->checkin_model = $checkin_model;
32
-    }
24
+	/**
25
+	 * ExportCheckins constructor.
26
+	 *
27
+	 * @param EEM_Checkin $checkin_model
28
+	 */
29
+	public function __construct(EEM_Checkin $checkin_model)
30
+	{
31
+		$this->checkin_model = $checkin_model;
32
+	}
33 33
 
34 34
 
35
-    /**
36
-     * Returns data for export.
37
-     *
38
-     * @param string    $email_address ,
39
-     * @param int       $page          starts at 1, not 0
40
-     * @return array {
41
-     * @type array      $data          {
42
-     * @type array {
43
-     * @type string     $group_id      (not translated, same for all exports)
44
-     * @type string     $group_label   (translated string)
45
-     * @type string|int $item_id
46
-     * @type array      $data          {
47
-     * @type array {
48
-     * @type string     $name          what's shown in the left-column of the export row
49
-     * @type string     $value         what's showin the right-column of the export row
50
-     *                                 }
51
-     *                                 }
52
-     *                                 }
53
-     *                                 }
54
-     *                                 }
55
-     */
56
-    public function export($email_address, $page = 1)
57
-    {
58
-        $page_size = 10;
59
-        $checkins = $this->checkin_model->get_all(
60
-            array(
61
-                array(
62
-                    'Registration.Attendee.ATT_email' => $email_address,
63
-                ),
64
-                'limit'      => array(
65
-                    ($page - 1) * $page_size,
66
-                    $page_size,
67
-                ),
68
-                'force_join' => array('Registration.Event'),
69
-            )
70
-        );
35
+	/**
36
+	 * Returns data for export.
37
+	 *
38
+	 * @param string    $email_address ,
39
+	 * @param int       $page          starts at 1, not 0
40
+	 * @return array {
41
+	 * @type array      $data          {
42
+	 * @type array {
43
+	 * @type string     $group_id      (not translated, same for all exports)
44
+	 * @type string     $group_label   (translated string)
45
+	 * @type string|int $item_id
46
+	 * @type array      $data          {
47
+	 * @type array {
48
+	 * @type string     $name          what's shown in the left-column of the export row
49
+	 * @type string     $value         what's showin the right-column of the export row
50
+	 *                                 }
51
+	 *                                 }
52
+	 *                                 }
53
+	 *                                 }
54
+	 *                                 }
55
+	 */
56
+	public function export($email_address, $page = 1)
57
+	{
58
+		$page_size = 10;
59
+		$checkins = $this->checkin_model->get_all(
60
+			array(
61
+				array(
62
+					'Registration.Attendee.ATT_email' => $email_address,
63
+				),
64
+				'limit'      => array(
65
+					($page - 1) * $page_size,
66
+					$page_size,
67
+				),
68
+				'force_join' => array('Registration.Event'),
69
+			)
70
+		);
71 71
 
72
-        if (empty($checkins)) {
73
-            return array(
74
-                'data' => array(),
75
-                'done' => true,
76
-            );
77
-        }
72
+		if (empty($checkins)) {
73
+			return array(
74
+				'data' => array(),
75
+				'done' => true,
76
+			);
77
+		}
78 78
 
79
-        $export_items = array();
80
-        foreach ($checkins as $checkin) {
81
-            $reg = $checkin->get_first_related('Registration');
82
-            if ($reg instanceof EE_Registration) {
83
-                $event_name = $reg->event_name();
84
-            } else {
85
-                $event_name = esc_html__('Unknown', 'event_espresso');
86
-            }
87
-            $export_items[] =
88
-                array(
89
-                    'group_id'    => 'check-ins',
90
-                    'group_label' => esc_html__('Event Check-Ins', 'event_espresso'),
91
-                    'item_id'     => $checkin->ID(),
92
-                    'data'        => array(
93
-                        array(
94
-                            'name'  => esc_html__('Time', 'event_espresso'),
95
-                            'value' => $checkin->get_pretty('CHK_timestamp'),
96
-                        ),
97
-                        array(
98
-                            'name'  => esc_html__('Check in/out', 'event_espresso'),
99
-                            'value' => $checkin->get('CHK_in')
100
-                                ? esc_html__('In', 'event_espresso')
101
-                                : esc_html__('Out', 'event_espresso'),
102
-                        ),
103
-                        array(
104
-                            'name'  => esc_html__('Event', 'event_espresso'),
105
-                            'value' => $event_name,
106
-                        ),
107
-                    ),
108
-                );
109
-        }
110
-        return array(
111
-            'data' => $export_items,
112
-            'done' => true,
113
-        );
114
-    }
79
+		$export_items = array();
80
+		foreach ($checkins as $checkin) {
81
+			$reg = $checkin->get_first_related('Registration');
82
+			if ($reg instanceof EE_Registration) {
83
+				$event_name = $reg->event_name();
84
+			} else {
85
+				$event_name = esc_html__('Unknown', 'event_espresso');
86
+			}
87
+			$export_items[] =
88
+				array(
89
+					'group_id'    => 'check-ins',
90
+					'group_label' => esc_html__('Event Check-Ins', 'event_espresso'),
91
+					'item_id'     => $checkin->ID(),
92
+					'data'        => array(
93
+						array(
94
+							'name'  => esc_html__('Time', 'event_espresso'),
95
+							'value' => $checkin->get_pretty('CHK_timestamp'),
96
+						),
97
+						array(
98
+							'name'  => esc_html__('Check in/out', 'event_espresso'),
99
+							'value' => $checkin->get('CHK_in')
100
+								? esc_html__('In', 'event_espresso')
101
+								: esc_html__('Out', 'event_espresso'),
102
+						),
103
+						array(
104
+							'name'  => esc_html__('Event', 'event_espresso'),
105
+							'value' => $event_name,
106
+						),
107
+					),
108
+				);
109
+		}
110
+		return array(
111
+			'data' => $export_items,
112
+			'done' => true,
113
+		);
114
+	}
115 115
 
116
-    /**
117
-     * Gets the Translated name of this exporter
118
-     *
119
-     * @return string
120
-     */
121
-    public function name()
122
-    {
123
-        return esc_html__('Event Espresso Checkins Exporter', 'event_espresso');
124
-    }
116
+	/**
117
+	 * Gets the Translated name of this exporter
118
+	 *
119
+	 * @return string
120
+	 */
121
+	public function name()
122
+	{
123
+		return esc_html__('Event Espresso Checkins Exporter', 'event_espresso');
124
+	}
125 125
 }
126 126
 // End of file ExportCheckins.php
127 127
 // Location: EventEspresso\core\domain\services\admin\privacy\export/ExportCheckins.php
Please login to merge, or discard this patch.