Completed
Branch rest-authorization (c7240a)
by
unknown
13:01 queued 10:45
created
core/db_models/EEM_Term_Relationship.model.php 2 patches
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -58,24 +58,24 @@  discard block
 block discarded – undo
58 58
             'Term_Taxonomy' => new EE_Belongs_To_Relation(),
59 59
         );
60 60
         foreach ($models_this_can_attach_to as $model_name) {
61
-            $this->_model_relations[ $model_name ] = new EE_Belongs_To_Relation();
61
+            $this->_model_relations[$model_name] = new EE_Belongs_To_Relation();
62 62
         }
63 63
         $this->_wp_core_model = true;
64 64
         $this->_indexes = array(
65 65
             'PRIMARY' => new EE_Primary_Key_Index(array('object_id', 'term_taxonomy_id')),
66 66
         );
67 67
         $path_to_event_model = 'Event';
68
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public(
68
+        $this->_cap_restriction_generators[EEM_Base::caps_read] = new EE_Restriction_Generator_Event_Related_Public(
69 69
             $path_to_event_model
70 70
         );
71
-        $this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] =
71
+        $this->_cap_restriction_generators[EEM_Base::caps_read_admin] =
72 72
             new EE_Restriction_Generator_Event_Related_Protected(
73 73
                 $path_to_event_model
74 74
             );
75
-        $this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected(
75
+        $this->_cap_restriction_generators[EEM_Base::caps_edit] = new EE_Restriction_Generator_Event_Related_Protected(
76 76
             $path_to_event_model
77 77
         );
78
-        $this->_cap_restriction_generators[ EEM_Base::caps_delete ] =
78
+        $this->_cap_restriction_generators[EEM_Base::caps_delete] =
79 79
             new EE_Restriction_Generator_Event_Related_Protected(
80 80
                 $path_to_event_model,
81 81
                 EEM_Base::caps_edit
@@ -85,27 +85,27 @@  discard block
 block discarded – undo
85 85
         // and for deleting term relations too
86 86
         $cap_contexts_affected = array(EEM_Base::caps_edit, EEM_Base::caps_delete);
87 87
         foreach ($cap_contexts_affected as $cap_context_affected) {
88
-            $this->_cap_restrictions[ $cap_context_affected ]['ee_assign_event_category'] =
88
+            $this->_cap_restrictions[$cap_context_affected]['ee_assign_event_category'] =
89 89
                 new EE_Default_Where_Conditions(
90 90
                     array(
91
-                        $path_to_tax_model . 'taxonomy*ee_assign_event_category' => array(
91
+                        $path_to_tax_model.'taxonomy*ee_assign_event_category' => array(
92 92
                             '!=',
93 93
                             'espresso_event_categories',
94 94
                         ),
95 95
                     )
96 96
                 );
97
-            $this->_cap_restrictions[ $cap_context_affected ]['ee_assign_venue_category'] =
97
+            $this->_cap_restrictions[$cap_context_affected]['ee_assign_venue_category'] =
98 98
                 new EE_Default_Where_Conditions(
99 99
                     array(
100
-                        $path_to_tax_model . 'taxonomy*ee_assign_venue_category' => array(
100
+                        $path_to_tax_model.'taxonomy*ee_assign_venue_category' => array(
101 101
                             '!=',
102 102
                             'espresso_venue_categories',
103 103
                         ),
104 104
                     )
105 105
                 );
106
-            $this->_cap_restrictions[ $cap_context_affected ]['ee_assign_event_type'] = new EE_Default_Where_Conditions(
106
+            $this->_cap_restrictions[$cap_context_affected]['ee_assign_event_type'] = new EE_Default_Where_Conditions(
107 107
                 array(
108
-                    $path_to_tax_model . 'taxonomy*ee_assign_event_type' => array('!=', 'espresso_event_type'),
108
+                    $path_to_tax_model.'taxonomy*ee_assign_event_type' => array('!=', 'espresso_event_type'),
109 109
                 )
110 110
             );
111 111
         }
@@ -232,7 +232,7 @@  discard block
 block discarded – undo
232 232
     {
233 233
         if ($model === EEM_Term_Relationship::instance()) {
234 234
             $taxonomies = get_taxonomies(array('show_in_rest' => true));
235
-            if (! empty($taxonomies)) {
235
+            if ( ! empty($taxonomies)) {
236 236
                 $model_query_params[0]['Term_Taxonomy.taxonomy'] = array('IN', $taxonomies);
237 237
             }
238 238
         }
Please login to merge, or discard this patch.
Indentation   +223 added lines, -223 removed lines patch added patch discarded remove patch
@@ -9,233 +9,233 @@
 block discarded – undo
9 9
  */
10 10
 class EEM_Term_Relationship extends EEM_Base
11 11
 {
12
-    // private instance of the Attendee object
13
-    protected static $_instance = null;
14
-
15
-
16
-
17
-    /**
18
-     * EEM_Term_Relationship constructor.
19
-     *
20
-     * @param string $timezone
21
-     */
22
-    protected function __construct($timezone = null)
23
-    {
24
-        $this->singular_item = esc_html__('Term Relationship', 'event_espresso');
25
-        $this->plural_item = esc_html__('Term Relationships', 'event_espresso');
26
-        $this->_tables = array(
27
-            'Term_Relationship' => new EE_Primary_Table('term_relationships'),
28
-        );
29
-        $models_this_can_attach_to = array_keys(EE_Registry::instance()->cpt_models());
30
-        $this->_fields = array(
31
-            'Term_Relationship' => array(
32
-                'object_id'        => new EE_Foreign_Key_Int_Field(
33
-                    'object_id',
34
-                    esc_html__('Object(Post) ID', 'event_espresso'),
35
-                    false,
36
-                    0,
37
-                    $models_this_can_attach_to
38
-                ),
39
-                'term_taxonomy_id' => new EE_Foreign_Key_Int_Field(
40
-                    'term_taxonomy_id',
41
-                    esc_html__(
42
-                        'Term (in context of a taxonomy) ID',
43
-                        'event_espresso'
44
-                    ),
45
-                    false,
46
-                    0,
47
-                    'Term_Taxonomy'
48
-                ),
49
-                'term_order'       => new EE_Integer_Field(
50
-                    'term_order',
51
-                    esc_html__('Term Order', 'event_espresso'),
52
-                    false,
53
-                    0
54
-                ),
55
-            ),
56
-        );
57
-        $this->_model_relations = array(
58
-            'Term_Taxonomy' => new EE_Belongs_To_Relation(),
59
-        );
60
-        foreach ($models_this_can_attach_to as $model_name) {
61
-            $this->_model_relations[ $model_name ] = new EE_Belongs_To_Relation();
62
-        }
63
-        $this->_wp_core_model = true;
64
-        $this->_indexes = array(
65
-            'PRIMARY' => new EE_Primary_Key_Index(array('object_id', 'term_taxonomy_id')),
66
-        );
67
-        $path_to_event_model = 'Event';
68
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public(
69
-            $path_to_event_model
70
-        );
71
-        $this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] =
72
-            new EE_Restriction_Generator_Event_Related_Protected(
73
-                $path_to_event_model
74
-            );
75
-        $this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected(
76
-            $path_to_event_model
77
-        );
78
-        $this->_cap_restriction_generators[ EEM_Base::caps_delete ] =
79
-            new EE_Restriction_Generator_Event_Related_Protected(
80
-                $path_to_event_model,
81
-                EEM_Base::caps_edit
82
-            );
83
-        $path_to_tax_model = 'Term_Taxonomy.';
84
-        // add cap restrictions for editing term relations to the "ee_assign_*"
85
-        // and for deleting term relations too
86
-        $cap_contexts_affected = array(EEM_Base::caps_edit, EEM_Base::caps_delete);
87
-        foreach ($cap_contexts_affected as $cap_context_affected) {
88
-            $this->_cap_restrictions[ $cap_context_affected ]['ee_assign_event_category'] =
89
-                new EE_Default_Where_Conditions(
90
-                    array(
91
-                        $path_to_tax_model . 'taxonomy*ee_assign_event_category' => array(
92
-                            '!=',
93
-                            'espresso_event_categories',
94
-                        ),
95
-                    )
96
-                );
97
-            $this->_cap_restrictions[ $cap_context_affected ]['ee_assign_venue_category'] =
98
-                new EE_Default_Where_Conditions(
99
-                    array(
100
-                        $path_to_tax_model . 'taxonomy*ee_assign_venue_category' => array(
101
-                            '!=',
102
-                            'espresso_venue_categories',
103
-                        ),
104
-                    )
105
-                );
106
-            $this->_cap_restrictions[ $cap_context_affected ]['ee_assign_event_type'] = new EE_Default_Where_Conditions(
107
-                array(
108
-                    $path_to_tax_model . 'taxonomy*ee_assign_event_type' => array('!=', 'espresso_event_type'),
109
-                )
110
-            );
111
-        }
112
-        parent::__construct($timezone);
113
-        add_filter(
114
-            'FHEE__Read__create_model_query_params',
115
-            array('EEM_Term_Relationship', 'rest_api_query_params'),
116
-            10,
117
-            3
118
-        );
119
-    }
120
-
121
-
122
-    /**
123
-     * Makes sure all term-taxonomy counts are correct
124
-     *
125
-     * @param int   $term_taxonomy_id the id of the term taxonomy to update. If NULL, updates ALL
126
-     * @global wpdb $wpdb
127
-     * @return int the number of rows affected
128
-     * @throws EE_Error
129
-     */
130
-    public function update_term_taxonomy_counts($term_taxonomy_id = null)
131
-    {
132
-        // because this uses a subquery and sometimes assigning to column to be another column's
133
-        // value, we just write the SQL directly.
134
-        global $wpdb;
135
-
136
-        $query = "
12
+	// private instance of the Attendee object
13
+	protected static $_instance = null;
14
+
15
+
16
+
17
+	/**
18
+	 * EEM_Term_Relationship constructor.
19
+	 *
20
+	 * @param string $timezone
21
+	 */
22
+	protected function __construct($timezone = null)
23
+	{
24
+		$this->singular_item = esc_html__('Term Relationship', 'event_espresso');
25
+		$this->plural_item = esc_html__('Term Relationships', 'event_espresso');
26
+		$this->_tables = array(
27
+			'Term_Relationship' => new EE_Primary_Table('term_relationships'),
28
+		);
29
+		$models_this_can_attach_to = array_keys(EE_Registry::instance()->cpt_models());
30
+		$this->_fields = array(
31
+			'Term_Relationship' => array(
32
+				'object_id'        => new EE_Foreign_Key_Int_Field(
33
+					'object_id',
34
+					esc_html__('Object(Post) ID', 'event_espresso'),
35
+					false,
36
+					0,
37
+					$models_this_can_attach_to
38
+				),
39
+				'term_taxonomy_id' => new EE_Foreign_Key_Int_Field(
40
+					'term_taxonomy_id',
41
+					esc_html__(
42
+						'Term (in context of a taxonomy) ID',
43
+						'event_espresso'
44
+					),
45
+					false,
46
+					0,
47
+					'Term_Taxonomy'
48
+				),
49
+				'term_order'       => new EE_Integer_Field(
50
+					'term_order',
51
+					esc_html__('Term Order', 'event_espresso'),
52
+					false,
53
+					0
54
+				),
55
+			),
56
+		);
57
+		$this->_model_relations = array(
58
+			'Term_Taxonomy' => new EE_Belongs_To_Relation(),
59
+		);
60
+		foreach ($models_this_can_attach_to as $model_name) {
61
+			$this->_model_relations[ $model_name ] = new EE_Belongs_To_Relation();
62
+		}
63
+		$this->_wp_core_model = true;
64
+		$this->_indexes = array(
65
+			'PRIMARY' => new EE_Primary_Key_Index(array('object_id', 'term_taxonomy_id')),
66
+		);
67
+		$path_to_event_model = 'Event';
68
+		$this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public(
69
+			$path_to_event_model
70
+		);
71
+		$this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] =
72
+			new EE_Restriction_Generator_Event_Related_Protected(
73
+				$path_to_event_model
74
+			);
75
+		$this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected(
76
+			$path_to_event_model
77
+		);
78
+		$this->_cap_restriction_generators[ EEM_Base::caps_delete ] =
79
+			new EE_Restriction_Generator_Event_Related_Protected(
80
+				$path_to_event_model,
81
+				EEM_Base::caps_edit
82
+			);
83
+		$path_to_tax_model = 'Term_Taxonomy.';
84
+		// add cap restrictions for editing term relations to the "ee_assign_*"
85
+		// and for deleting term relations too
86
+		$cap_contexts_affected = array(EEM_Base::caps_edit, EEM_Base::caps_delete);
87
+		foreach ($cap_contexts_affected as $cap_context_affected) {
88
+			$this->_cap_restrictions[ $cap_context_affected ]['ee_assign_event_category'] =
89
+				new EE_Default_Where_Conditions(
90
+					array(
91
+						$path_to_tax_model . 'taxonomy*ee_assign_event_category' => array(
92
+							'!=',
93
+							'espresso_event_categories',
94
+						),
95
+					)
96
+				);
97
+			$this->_cap_restrictions[ $cap_context_affected ]['ee_assign_venue_category'] =
98
+				new EE_Default_Where_Conditions(
99
+					array(
100
+						$path_to_tax_model . 'taxonomy*ee_assign_venue_category' => array(
101
+							'!=',
102
+							'espresso_venue_categories',
103
+						),
104
+					)
105
+				);
106
+			$this->_cap_restrictions[ $cap_context_affected ]['ee_assign_event_type'] = new EE_Default_Where_Conditions(
107
+				array(
108
+					$path_to_tax_model . 'taxonomy*ee_assign_event_type' => array('!=', 'espresso_event_type'),
109
+				)
110
+			);
111
+		}
112
+		parent::__construct($timezone);
113
+		add_filter(
114
+			'FHEE__Read__create_model_query_params',
115
+			array('EEM_Term_Relationship', 'rest_api_query_params'),
116
+			10,
117
+			3
118
+		);
119
+	}
120
+
121
+
122
+	/**
123
+	 * Makes sure all term-taxonomy counts are correct
124
+	 *
125
+	 * @param int   $term_taxonomy_id the id of the term taxonomy to update. If NULL, updates ALL
126
+	 * @global wpdb $wpdb
127
+	 * @return int the number of rows affected
128
+	 * @throws EE_Error
129
+	 */
130
+	public function update_term_taxonomy_counts($term_taxonomy_id = null)
131
+	{
132
+		// because this uses a subquery and sometimes assigning to column to be another column's
133
+		// value, we just write the SQL directly.
134
+		global $wpdb;
135
+
136
+		$query = "
137 137
                 UPDATE {$wpdb->term_taxonomy} AS tt 
138 138
                 SET count = (
139 139
                     select count(*) as proper_count from {$wpdb->term_relationships} AS tr 
140 140
                     WHERE tt.term_taxonomy_id = tr.term_taxonomy_id
141 141
                 )";
142 142
 
143
-        if ($term_taxonomy_id) {
144
-            $query .= ' WHERE tt.term_taxonomy_id = %d';
145
-            $query = $wpdb->prepare(
146
-                $query,
147
-                $term_taxonomy_id
148
-            );
149
-        }
150
-        $rows_affected = $this->_do_wpdb_query(
151
-            'query',
152
-            array(
153
-                $query,
154
-            )
155
-        );
156
-        return $rows_affected;
157
-    }
158
-
159
-
160
-
161
-    /**
162
-     * Overrides the parent to also make sure term-taxonomy counts are up-to-date after
163
-     * inserting
164
-     *
165
-     * @param array $field_n_values @see EEM_Base::insert
166
-     * @return boolean
167
-     */
168
-    public function insert($field_n_values)
169
-    {
170
-        $return = parent::insert($field_n_values);
171
-        if (isset($field_n_values['term_taxonomy_id'])) {
172
-            $this->update_term_taxonomy_counts($field_n_values['term_taxonomy_id']);
173
-        }
174
-        return $return;
175
-    }
176
-
177
-
178
-
179
-    /**
180
-     * Overrides parent so that after an update, we also check the term_taxonomy_counts are
181
-     * all ok
182
-     *
183
-     * @param array   $fields_n_values         see EEM_Base::update
184
-     * @param array   $query_params            @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
185
-     * @param boolean $keep_model_objs_in_sync if TRUE, makes sure we ALSO update model objects
186
-     *                                         in this model's entity map according to $fields_n_values that match
187
-     *                                         $query_params. This obviously has some overhead, so you can disable it
188
-     *                                         by setting this to FALSE, but be aware that model objects being used
189
-     *                                         could get out-of-sync with the database
190
-     * @return int
191
-     */
192
-    public function update($fields_n_values, $query_params, $keep_model_objs_in_sync = true)
193
-    {
194
-        $count = parent::update($fields_n_values, $query_params, $keep_model_objs_in_sync);
195
-        if ($count) {
196
-            $this->update_term_taxonomy_counts();
197
-        }
198
-        return $count;
199
-    }
200
-
201
-
202
-
203
-    /**
204
-     * Overrides parent so that after running this, we also double-check
205
-     * the term taxonomy counts are up-to-date
206
-     *
207
-     * @param array   $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
208
-     * @param boolean $allow_blocking
209
-     * @return int @see EEM_Base::delete
210
-     */
211
-    public function delete($query_params, $allow_blocking = true)
212
-    {
213
-        $count = parent::delete($query_params, $allow_blocking);
214
-        if ($count) {
215
-            $this->update_term_taxonomy_counts();
216
-        }
217
-        return $count;
218
-    }
219
-
220
-
221
-
222
-    /**
223
-     * Makes sure that during REST API queries, we only return term relationships
224
-     * for term taxonomies which should be shown in the rest api
225
-     *
226
-     * @param array    $model_query_params
227
-     * @param array    $querystring_query_params
228
-     * @param EEM_Base $model
229
-     * @return array
230
-     */
231
-    public static function rest_api_query_params($model_query_params, $querystring_query_params, $model)
232
-    {
233
-        if ($model === EEM_Term_Relationship::instance()) {
234
-            $taxonomies = get_taxonomies(array('show_in_rest' => true));
235
-            if (! empty($taxonomies)) {
236
-                $model_query_params[0]['Term_Taxonomy.taxonomy'] = array('IN', $taxonomies);
237
-            }
238
-        }
239
-        return $model_query_params;
240
-    }
143
+		if ($term_taxonomy_id) {
144
+			$query .= ' WHERE tt.term_taxonomy_id = %d';
145
+			$query = $wpdb->prepare(
146
+				$query,
147
+				$term_taxonomy_id
148
+			);
149
+		}
150
+		$rows_affected = $this->_do_wpdb_query(
151
+			'query',
152
+			array(
153
+				$query,
154
+			)
155
+		);
156
+		return $rows_affected;
157
+	}
158
+
159
+
160
+
161
+	/**
162
+	 * Overrides the parent to also make sure term-taxonomy counts are up-to-date after
163
+	 * inserting
164
+	 *
165
+	 * @param array $field_n_values @see EEM_Base::insert
166
+	 * @return boolean
167
+	 */
168
+	public function insert($field_n_values)
169
+	{
170
+		$return = parent::insert($field_n_values);
171
+		if (isset($field_n_values['term_taxonomy_id'])) {
172
+			$this->update_term_taxonomy_counts($field_n_values['term_taxonomy_id']);
173
+		}
174
+		return $return;
175
+	}
176
+
177
+
178
+
179
+	/**
180
+	 * Overrides parent so that after an update, we also check the term_taxonomy_counts are
181
+	 * all ok
182
+	 *
183
+	 * @param array   $fields_n_values         see EEM_Base::update
184
+	 * @param array   $query_params            @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
185
+	 * @param boolean $keep_model_objs_in_sync if TRUE, makes sure we ALSO update model objects
186
+	 *                                         in this model's entity map according to $fields_n_values that match
187
+	 *                                         $query_params. This obviously has some overhead, so you can disable it
188
+	 *                                         by setting this to FALSE, but be aware that model objects being used
189
+	 *                                         could get out-of-sync with the database
190
+	 * @return int
191
+	 */
192
+	public function update($fields_n_values, $query_params, $keep_model_objs_in_sync = true)
193
+	{
194
+		$count = parent::update($fields_n_values, $query_params, $keep_model_objs_in_sync);
195
+		if ($count) {
196
+			$this->update_term_taxonomy_counts();
197
+		}
198
+		return $count;
199
+	}
200
+
201
+
202
+
203
+	/**
204
+	 * Overrides parent so that after running this, we also double-check
205
+	 * the term taxonomy counts are up-to-date
206
+	 *
207
+	 * @param array   $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
208
+	 * @param boolean $allow_blocking
209
+	 * @return int @see EEM_Base::delete
210
+	 */
211
+	public function delete($query_params, $allow_blocking = true)
212
+	{
213
+		$count = parent::delete($query_params, $allow_blocking);
214
+		if ($count) {
215
+			$this->update_term_taxonomy_counts();
216
+		}
217
+		return $count;
218
+	}
219
+
220
+
221
+
222
+	/**
223
+	 * Makes sure that during REST API queries, we only return term relationships
224
+	 * for term taxonomies which should be shown in the rest api
225
+	 *
226
+	 * @param array    $model_query_params
227
+	 * @param array    $querystring_query_params
228
+	 * @param EEM_Base $model
229
+	 * @return array
230
+	 */
231
+	public static function rest_api_query_params($model_query_params, $querystring_query_params, $model)
232
+	{
233
+		if ($model === EEM_Term_Relationship::instance()) {
234
+			$taxonomies = get_taxonomies(array('show_in_rest' => true));
235
+			if (! empty($taxonomies)) {
236
+				$model_query_params[0]['Term_Taxonomy.taxonomy'] = array('IN', $taxonomies);
237
+			}
238
+		}
239
+		return $model_query_params;
240
+	}
241 241
 }
Please login to merge, or discard this patch.
core/db_models/EEM_Venue.model.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -191,7 +191,7 @@
 block discarded – undo
191 191
             'Term_Taxonomy'     => new EE_HABTM_Relation('Term_Relationship'),
192 192
         );
193 193
         // this model is generally available for reading
194
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
194
+        $this->_cap_restriction_generators[EEM_Base::caps_read] = new EE_Restriction_Generator_Public();
195 195
         $this->model_chain_to_password = '';
196 196
         parent::__construct($timezone);
197 197
     }
Please login to merge, or discard this patch.
Indentation   +182 added lines, -182 removed lines patch added patch discarded remove patch
@@ -10,189 +10,189 @@
 block discarded – undo
10 10
  */
11 11
 class EEM_Venue extends EEM_CPT_Base
12 12
 {
13
-    // private instance of the Attendee object
14
-    protected static $_instance = null;
13
+	// private instance of the Attendee object
14
+	protected static $_instance = null;
15 15
 
16 16
 
17 17
 
18
-    protected function __construct($timezone = null)
19
-    {
20
-        $this->singular_item = esc_html__('Venue', 'event_espresso');
21
-        $this->plural_item = esc_html__('Venues', 'event_espresso');
22
-        $this->_tables = array(
23
-            'Venue_CPT'  => new EE_Primary_Table('posts', 'ID'),
24
-            'Venue_Meta' => new EE_Secondary_Table('esp_venue_meta', 'VNUM_ID', 'VNU_ID'),
25
-        );
26
-        $this->_fields = array(
27
-            'Venue_CPT'  => array(
28
-                'VNU_ID'         => new EE_Primary_Key_Int_Field('ID', esc_html__("Venue ID", "event_espresso")),
29
-                'VNU_name'       => new EE_Plain_Text_Field(
30
-                    'post_title',
31
-                    esc_html__("Venue Name", "event_espresso"),
32
-                    false,
33
-                    ''
34
-                ),
35
-                'VNU_desc'       => new EE_Post_Content_Field(
36
-                    'post_content',
37
-                    esc_html__("Venue Description", "event_espresso"),
38
-                    false,
39
-                    ''
40
-                ),
41
-                'VNU_identifier' => new EE_Slug_Field('post_name', esc_html__("Venue Identifier", "event_espresso"), false, ''),
42
-                'VNU_created'    => new EE_Datetime_Field(
43
-                    'post_date',
44
-                    esc_html__("Date Venue Created", "event_espresso"),
45
-                    false,
46
-                    EE_Datetime_Field::now
47
-                ),
48
-                'VNU_short_desc' => new EE_Plain_Text_Field(
49
-                    'post_excerpt',
50
-                    esc_html__("Short Description of Venue", "event_espresso"),
51
-                    true,
52
-                    ''
53
-                ),
54
-                'VNU_modified'   => new EE_Datetime_Field(
55
-                    'post_modified',
56
-                    esc_html__("Venue Modified Date", "event_espresso"),
57
-                    false,
58
-                    EE_Datetime_Field::now
59
-                ),
60
-                'VNU_wp_user'    => new EE_WP_User_Field(
61
-                    'post_author',
62
-                    esc_html__("Venue Creator ID", "event_espresso"),
63
-                    false
64
-                ),
65
-                'parent'         => new EE_Integer_Field(
66
-                    'post_parent',
67
-                    esc_html__("Venue Parent ID", "event_espresso"),
68
-                    false,
69
-                    0
70
-                ),
71
-                'VNU_order'      => new EE_Integer_Field('menu_order', esc_html__("Venue order", "event_espresso"), false, 1),
72
-                'post_type'      => new EE_WP_Post_Type_Field('espresso_venues'),
73
-                'password' => new EE_Password_Field(
74
-                    'post_password',
75
-                    esc_html__('Password', 'event_espresso'),
76
-                    false,
77
-                    '',
78
-                    array(
79
-                        'VNU_desc',
80
-                        'VNU_short_desc',
81
-                        'VNU_address',
82
-                        'VNU_address2',
83
-                        'VNU_city',
84
-                        'STA_ID',
85
-                        'CNT_ISO',
86
-                        'VNU_zip',
87
-                        'VNU_phone',
88
-                        'VNU_capacity',
89
-                        'VNU_url',
90
-                        'VNU_virtual_phone',
91
-                        'VNU_virtual_url',
92
-                        'VNU_google_map_link',
93
-                        'VNU_enable_for_gmap',
94
-                    )
95
-                )
96
-            ),
97
-            'Venue_Meta' => array(
98
-                'VNUM_ID'             => new EE_DB_Only_Int_Field(
99
-                    'VNUM_ID',
100
-                    esc_html__("ID of Venue Meta Row", "event_espresso"),
101
-                    false
102
-                ),
103
-                'VNU_ID_fk'           => new EE_DB_Only_Int_Field(
104
-                    'VNU_ID',
105
-                    esc_html__("Foreign Key to Venue Post ", "event_espresso"),
106
-                    false
107
-                ),
108
-                'VNU_address'         => new EE_Plain_Text_Field(
109
-                    'VNU_address',
110
-                    esc_html__("Venue Address line 1", "event_espresso"),
111
-                    true,
112
-                    ''
113
-                ),
114
-                'VNU_address2'        => new EE_Plain_Text_Field(
115
-                    'VNU_address2',
116
-                    esc_html__("Venue Address line 2", "event_espresso"),
117
-                    true,
118
-                    ''
119
-                ),
120
-                'VNU_city'            => new EE_Plain_Text_Field(
121
-                    'VNU_city',
122
-                    esc_html__("Venue City", "event_espresso"),
123
-                    true,
124
-                    ''
125
-                ),
126
-                'STA_ID'              => new EE_Foreign_Key_Int_Field(
127
-                    'STA_ID',
128
-                    esc_html__("State ID", "event_espresso"),
129
-                    true,
130
-                    null,
131
-                    'State'
132
-                ),
133
-                'CNT_ISO'             => new EE_Foreign_Key_String_Field(
134
-                    'CNT_ISO',
135
-                    esc_html__("Country Code", "event_espresso"),
136
-                    true,
137
-                    null,
138
-                    'Country'
139
-                ),
140
-                'VNU_zip'             => new EE_Plain_Text_Field(
141
-                    'VNU_zip',
142
-                    esc_html__("Venue Zip/Postal Code", "event_espresso"),
143
-                    true
144
-                ),
145
-                'VNU_phone'           => new EE_Plain_Text_Field(
146
-                    'VNU_phone',
147
-                    esc_html__("Venue Phone", "event_espresso"),
148
-                    true
149
-                ),
150
-                'VNU_capacity'        => new EE_Infinite_Integer_Field(
151
-                    'VNU_capacity',
152
-                    esc_html__("Venue Capacity", "event_espresso"),
153
-                    true,
154
-                    EE_INF
155
-                ),
156
-                'VNU_url'             => new EE_Plain_Text_Field(
157
-                    'VNU_url',
158
-                    esc_html__('Venue Website', 'event_espresso'),
159
-                    true
160
-                ),
161
-                'VNU_virtual_phone'   => new EE_Plain_Text_Field(
162
-                    'VNU_virtual_phone',
163
-                    esc_html__('Call in Number', 'event_espresso'),
164
-                    true
165
-                ),
166
-                'VNU_virtual_url'     => new EE_Plain_Text_Field(
167
-                    'VNU_virtual_url',
168
-                    esc_html__('Virtual URL', 'event_espresso'),
169
-                    true
170
-                ),
171
-                'VNU_google_map_link' => new EE_Plain_Text_Field(
172
-                    'VNU_google_map_link',
173
-                    esc_html__('Google Map Link', 'event_espresso'),
174
-                    true
175
-                ),
176
-                'VNU_enable_for_gmap' => new EE_Boolean_Field(
177
-                    'VNU_enable_for_gmap',
178
-                    esc_html__('Show Google Map?', 'event_espresso'),
179
-                    false,
180
-                    false
181
-                ),
182
-            ),
183
-        );
184
-        $this->_model_relations = array(
185
-            'Event'             => new EE_HABTM_Relation('Event_Venue'),
186
-            'State'             => new EE_Belongs_To_Relation(),
187
-            'Country'           => new EE_Belongs_To_Relation(),
188
-            'Event_Venue'       => new EE_Has_Many_Relation(),
189
-            'WP_User'           => new EE_Belongs_To_Relation(),
190
-            'Term_Relationship' => new EE_Has_Many_Relation(),
191
-            'Term_Taxonomy'     => new EE_HABTM_Relation('Term_Relationship'),
192
-        );
193
-        // this model is generally available for reading
194
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
195
-        $this->model_chain_to_password = '';
196
-        parent::__construct($timezone);
197
-    }
18
+	protected function __construct($timezone = null)
19
+	{
20
+		$this->singular_item = esc_html__('Venue', 'event_espresso');
21
+		$this->plural_item = esc_html__('Venues', 'event_espresso');
22
+		$this->_tables = array(
23
+			'Venue_CPT'  => new EE_Primary_Table('posts', 'ID'),
24
+			'Venue_Meta' => new EE_Secondary_Table('esp_venue_meta', 'VNUM_ID', 'VNU_ID'),
25
+		);
26
+		$this->_fields = array(
27
+			'Venue_CPT'  => array(
28
+				'VNU_ID'         => new EE_Primary_Key_Int_Field('ID', esc_html__("Venue ID", "event_espresso")),
29
+				'VNU_name'       => new EE_Plain_Text_Field(
30
+					'post_title',
31
+					esc_html__("Venue Name", "event_espresso"),
32
+					false,
33
+					''
34
+				),
35
+				'VNU_desc'       => new EE_Post_Content_Field(
36
+					'post_content',
37
+					esc_html__("Venue Description", "event_espresso"),
38
+					false,
39
+					''
40
+				),
41
+				'VNU_identifier' => new EE_Slug_Field('post_name', esc_html__("Venue Identifier", "event_espresso"), false, ''),
42
+				'VNU_created'    => new EE_Datetime_Field(
43
+					'post_date',
44
+					esc_html__("Date Venue Created", "event_espresso"),
45
+					false,
46
+					EE_Datetime_Field::now
47
+				),
48
+				'VNU_short_desc' => new EE_Plain_Text_Field(
49
+					'post_excerpt',
50
+					esc_html__("Short Description of Venue", "event_espresso"),
51
+					true,
52
+					''
53
+				),
54
+				'VNU_modified'   => new EE_Datetime_Field(
55
+					'post_modified',
56
+					esc_html__("Venue Modified Date", "event_espresso"),
57
+					false,
58
+					EE_Datetime_Field::now
59
+				),
60
+				'VNU_wp_user'    => new EE_WP_User_Field(
61
+					'post_author',
62
+					esc_html__("Venue Creator ID", "event_espresso"),
63
+					false
64
+				),
65
+				'parent'         => new EE_Integer_Field(
66
+					'post_parent',
67
+					esc_html__("Venue Parent ID", "event_espresso"),
68
+					false,
69
+					0
70
+				),
71
+				'VNU_order'      => new EE_Integer_Field('menu_order', esc_html__("Venue order", "event_espresso"), false, 1),
72
+				'post_type'      => new EE_WP_Post_Type_Field('espresso_venues'),
73
+				'password' => new EE_Password_Field(
74
+					'post_password',
75
+					esc_html__('Password', 'event_espresso'),
76
+					false,
77
+					'',
78
+					array(
79
+						'VNU_desc',
80
+						'VNU_short_desc',
81
+						'VNU_address',
82
+						'VNU_address2',
83
+						'VNU_city',
84
+						'STA_ID',
85
+						'CNT_ISO',
86
+						'VNU_zip',
87
+						'VNU_phone',
88
+						'VNU_capacity',
89
+						'VNU_url',
90
+						'VNU_virtual_phone',
91
+						'VNU_virtual_url',
92
+						'VNU_google_map_link',
93
+						'VNU_enable_for_gmap',
94
+					)
95
+				)
96
+			),
97
+			'Venue_Meta' => array(
98
+				'VNUM_ID'             => new EE_DB_Only_Int_Field(
99
+					'VNUM_ID',
100
+					esc_html__("ID of Venue Meta Row", "event_espresso"),
101
+					false
102
+				),
103
+				'VNU_ID_fk'           => new EE_DB_Only_Int_Field(
104
+					'VNU_ID',
105
+					esc_html__("Foreign Key to Venue Post ", "event_espresso"),
106
+					false
107
+				),
108
+				'VNU_address'         => new EE_Plain_Text_Field(
109
+					'VNU_address',
110
+					esc_html__("Venue Address line 1", "event_espresso"),
111
+					true,
112
+					''
113
+				),
114
+				'VNU_address2'        => new EE_Plain_Text_Field(
115
+					'VNU_address2',
116
+					esc_html__("Venue Address line 2", "event_espresso"),
117
+					true,
118
+					''
119
+				),
120
+				'VNU_city'            => new EE_Plain_Text_Field(
121
+					'VNU_city',
122
+					esc_html__("Venue City", "event_espresso"),
123
+					true,
124
+					''
125
+				),
126
+				'STA_ID'              => new EE_Foreign_Key_Int_Field(
127
+					'STA_ID',
128
+					esc_html__("State ID", "event_espresso"),
129
+					true,
130
+					null,
131
+					'State'
132
+				),
133
+				'CNT_ISO'             => new EE_Foreign_Key_String_Field(
134
+					'CNT_ISO',
135
+					esc_html__("Country Code", "event_espresso"),
136
+					true,
137
+					null,
138
+					'Country'
139
+				),
140
+				'VNU_zip'             => new EE_Plain_Text_Field(
141
+					'VNU_zip',
142
+					esc_html__("Venue Zip/Postal Code", "event_espresso"),
143
+					true
144
+				),
145
+				'VNU_phone'           => new EE_Plain_Text_Field(
146
+					'VNU_phone',
147
+					esc_html__("Venue Phone", "event_espresso"),
148
+					true
149
+				),
150
+				'VNU_capacity'        => new EE_Infinite_Integer_Field(
151
+					'VNU_capacity',
152
+					esc_html__("Venue Capacity", "event_espresso"),
153
+					true,
154
+					EE_INF
155
+				),
156
+				'VNU_url'             => new EE_Plain_Text_Field(
157
+					'VNU_url',
158
+					esc_html__('Venue Website', 'event_espresso'),
159
+					true
160
+				),
161
+				'VNU_virtual_phone'   => new EE_Plain_Text_Field(
162
+					'VNU_virtual_phone',
163
+					esc_html__('Call in Number', 'event_espresso'),
164
+					true
165
+				),
166
+				'VNU_virtual_url'     => new EE_Plain_Text_Field(
167
+					'VNU_virtual_url',
168
+					esc_html__('Virtual URL', 'event_espresso'),
169
+					true
170
+				),
171
+				'VNU_google_map_link' => new EE_Plain_Text_Field(
172
+					'VNU_google_map_link',
173
+					esc_html__('Google Map Link', 'event_espresso'),
174
+					true
175
+				),
176
+				'VNU_enable_for_gmap' => new EE_Boolean_Field(
177
+					'VNU_enable_for_gmap',
178
+					esc_html__('Show Google Map?', 'event_espresso'),
179
+					false,
180
+					false
181
+				),
182
+			),
183
+		);
184
+		$this->_model_relations = array(
185
+			'Event'             => new EE_HABTM_Relation('Event_Venue'),
186
+			'State'             => new EE_Belongs_To_Relation(),
187
+			'Country'           => new EE_Belongs_To_Relation(),
188
+			'Event_Venue'       => new EE_Has_Many_Relation(),
189
+			'WP_User'           => new EE_Belongs_To_Relation(),
190
+			'Term_Relationship' => new EE_Has_Many_Relation(),
191
+			'Term_Taxonomy'     => new EE_HABTM_Relation('Term_Relationship'),
192
+		);
193
+		// this model is generally available for reading
194
+		$this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
195
+		$this->model_chain_to_password = '';
196
+		parent::__construct($timezone);
197
+	}
198 198
 }
Please login to merge, or discard this patch.
core/db_models/EEM_Event_Venue.model.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -32,10 +32,10 @@
 block discarded – undo
32 32
         );
33 33
         // this model is generally available for reading
34 34
         $path_to_event = 'Event';
35
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public($path_to_event);
36
-        $this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
37
-        $this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
38
-        $this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event, EEM_Base::caps_edit);
35
+        $this->_cap_restriction_generators[EEM_Base::caps_read] = new EE_Restriction_Generator_Event_Related_Public($path_to_event);
36
+        $this->_cap_restriction_generators[EEM_Base::caps_read_admin] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
37
+        $this->_cap_restriction_generators[EEM_Base::caps_edit] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
38
+        $this->_cap_restriction_generators[EEM_Base::caps_delete] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event, EEM_Base::caps_edit);
39 39
         $this->model_chain_to_password = $path_to_event;
40 40
         parent::__construct($timezone);
41 41
     }
Please login to merge, or discard this patch.
Indentation   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -8,36 +8,36 @@
 block discarded – undo
8 8
  */
9 9
 class EEM_Event_Venue extends EEM_Base
10 10
 {
11
-    // private instance of the Attendee object
12
-    protected static $_instance = null;
11
+	// private instance of the Attendee object
12
+	protected static $_instance = null;
13 13
 
14
-    protected function __construct($timezone = null)
15
-    {
16
-        $this->singular_item = esc_html__('Event to Question Group Link', 'event_espresso');
17
-        $this->plural_item = esc_html__('Event to Question Group Links', 'event_espresso');
18
-        $this->_tables = array(
19
-            'Event_Venue' => new EE_Primary_Table('esp_event_venue', 'EVV_ID')
20
-        );
21
-        $this->_fields = array(
22
-            'Event_Venue' => array(
23
-                'EVV_ID' => new EE_Primary_Key_Int_Field('EVV_ID', esc_html__('Event to Venue Link ID', 'event_espresso')),
24
-                'EVT_ID' => new EE_Foreign_Key_Int_Field('EVT_ID', esc_html__('Event ID', 'event_espresso'), false, 0, 'Event'),
25
-                'VNU_ID' => new EE_Foreign_Key_Int_Field('VNU_ID', esc_html__('Venue ID', 'event_espresso'), false, 0, 'Venue'),
26
-                'EVV_primary' => new EE_Boolean_Field('EVV_primary', esc_html__("Flag indicating venue is primary one for event", "event_espresso"), false, true)
14
+	protected function __construct($timezone = null)
15
+	{
16
+		$this->singular_item = esc_html__('Event to Question Group Link', 'event_espresso');
17
+		$this->plural_item = esc_html__('Event to Question Group Links', 'event_espresso');
18
+		$this->_tables = array(
19
+			'Event_Venue' => new EE_Primary_Table('esp_event_venue', 'EVV_ID')
20
+		);
21
+		$this->_fields = array(
22
+			'Event_Venue' => array(
23
+				'EVV_ID' => new EE_Primary_Key_Int_Field('EVV_ID', esc_html__('Event to Venue Link ID', 'event_espresso')),
24
+				'EVT_ID' => new EE_Foreign_Key_Int_Field('EVT_ID', esc_html__('Event ID', 'event_espresso'), false, 0, 'Event'),
25
+				'VNU_ID' => new EE_Foreign_Key_Int_Field('VNU_ID', esc_html__('Venue ID', 'event_espresso'), false, 0, 'Venue'),
26
+				'EVV_primary' => new EE_Boolean_Field('EVV_primary', esc_html__("Flag indicating venue is primary one for event", "event_espresso"), false, true)
27 27
 
28
-            )
29
-        );
30
-        $this->_model_relations = array(
31
-            'Event' => new EE_Belongs_To_Relation(),
32
-            'Venue' => new EE_Belongs_To_Relation()
33
-        );
34
-        // this model is generally available for reading
35
-        $path_to_event = 'Event';
36
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public($path_to_event);
37
-        $this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
38
-        $this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
39
-        $this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event, EEM_Base::caps_edit);
40
-        $this->model_chain_to_password = $path_to_event;
41
-        parent::__construct($timezone);
42
-    }
28
+			)
29
+		);
30
+		$this->_model_relations = array(
31
+			'Event' => new EE_Belongs_To_Relation(),
32
+			'Venue' => new EE_Belongs_To_Relation()
33
+		);
34
+		// this model is generally available for reading
35
+		$path_to_event = 'Event';
36
+		$this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public($path_to_event);
37
+		$this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
38
+		$this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
39
+		$this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event, EEM_Base::caps_edit);
40
+		$this->model_chain_to_password = $path_to_event;
41
+		parent::__construct($timezone);
42
+	}
43 43
 }
Please login to merge, or discard this patch.
core/db_models/fields/EE_Password_Field.php 1 patch
Indentation   +36 added lines, -36 removed lines patch added patch discarded remove patch
@@ -12,45 +12,45 @@
 block discarded – undo
12 12
  */
13 13
 class EE_Password_Field extends EE_Text_Field_Base
14 14
 {
15
-    /**
16
-     * @var array
17
-     */
18
-    protected $protected_fields;
15
+	/**
16
+	 * @var array
17
+	 */
18
+	protected $protected_fields;
19 19
 
20
-    /**
21
-     * EE_Password_Field constructor.
22
-     * @param $table_column
23
-     * @param $nicename
24
-     * @param $nullable
25
-     * @param null $default_value
26
-     * @param array $protected_fields
27
-     */
28
-    public function __construct($table_column, $nicename, $nullable, $default_value = null, $protected_fields = array())
29
-    {
30
-        $this->protected_fields = $protected_fields;
31
-        parent::__construct($table_column, $nicename, $nullable, $default_value);
32
-    }
20
+	/**
21
+	 * EE_Password_Field constructor.
22
+	 * @param $table_column
23
+	 * @param $nicename
24
+	 * @param $nullable
25
+	 * @param null $default_value
26
+	 * @param array $protected_fields
27
+	 */
28
+	public function __construct($table_column, $nicename, $nullable, $default_value = null, $protected_fields = array())
29
+	{
30
+		$this->protected_fields = $protected_fields;
31
+		parent::__construct($table_column, $nicename, $nullable, $default_value);
32
+	}
33 33
 
34
-    /**
35
-     * Returns the names of the fields on this model that this password field should protect
36
-     * @since 4.9.74.p
37
-     * @return array
38
-     */
39
-    public function protectedFields()
40
-    {
41
-        return $this->protected_fields;
42
-    }
34
+	/**
35
+	 * Returns the names of the fields on this model that this password field should protect
36
+	 * @since 4.9.74.p
37
+	 * @return array
38
+	 */
39
+	public function protectedFields()
40
+	{
41
+		return $this->protected_fields;
42
+	}
43 43
 
44
-    /**
45
-     * Returns whether or not the specified field is protected by this model
46
-     * @since 4.9.74.p
47
-     * @param $field_name
48
-     * @return bool
49
-     */
50
-    public function fieldIsProtected($field_name)
51
-    {
52
-        return in_array($field_name, $this->protectedFields(), true);
53
-    }
44
+	/**
45
+	 * Returns whether or not the specified field is protected by this model
46
+	 * @since 4.9.74.p
47
+	 * @param $field_name
48
+	 * @return bool
49
+	 */
50
+	public function fieldIsProtected($field_name)
51
+	{
52
+		return in_array($field_name, $this->protectedFields(), true);
53
+	}
54 54
 }
55 55
 // End of file EE_Password_Field.php
56 56
 // Location: ${NAMESPACE}/EE_Password_Field.php
Please login to merge, or discard this patch.
core/domain/services/admin/ajax/EventEditorHeartbeat.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -57,7 +57,7 @@
 block discarded – undo
57 57
          * check whether count of tickets is approaching the potential
58 58
          * limits for the server.
59 59
          */
60
-        if (! empty($data['input_count'])) {
60
+        if ( ! empty($data['input_count'])) {
61 61
             $response['max_input_vars_check'] = $this->environment->max_input_vars_limit_check(
62 62
                 $data['input_count']
63 63
             );
Please login to merge, or discard this patch.
Indentation   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -15,52 +15,52 @@
 block discarded – undo
15 15
  */
16 16
 class EventEditorHeartbeat
17 17
 {
18
-    /**
19
-     * @var Domain $domain
20
-     */
21
-    protected $domain;
18
+	/**
19
+	 * @var Domain $domain
20
+	 */
21
+	protected $domain;
22 22
 
23
-    /**
24
-     * @var EE_Environment_Config $environment
25
-     */
26
-    protected $environment;
23
+	/**
24
+	 * @var EE_Environment_Config $environment
25
+	 */
26
+	protected $environment;
27 27
 
28 28
 
29
-    /**
30
-     * EventEditorHeartbeat constructor.
31
-     *
32
-     * @param Domain                $domain
33
-     * @param EE_Environment_Config $environment
34
-     */
35
-    public function __construct(Domain $domain, EE_Environment_Config $environment)
36
-    {
37
-        $this->domain = $domain;
38
-        $this->environment = $environment;
39
-        if ($this->domain->isCaffeinated()) {
40
-            add_filter('heartbeat_received', array($this, 'heartbeatResponse'), 10, 2);
41
-        }
42
-    }
29
+	/**
30
+	 * EventEditorHeartbeat constructor.
31
+	 *
32
+	 * @param Domain                $domain
33
+	 * @param EE_Environment_Config $environment
34
+	 */
35
+	public function __construct(Domain $domain, EE_Environment_Config $environment)
36
+	{
37
+		$this->domain = $domain;
38
+		$this->environment = $environment;
39
+		if ($this->domain->isCaffeinated()) {
40
+			add_filter('heartbeat_received', array($this, 'heartbeatResponse'), 10, 2);
41
+		}
42
+	}
43 43
 
44 44
 
45
-    /**
46
-     * This will be used to listen for any heartbeat data packages coming via the WordPress heartbeat API and handle
47
-     * accordingly.
48
-     *
49
-     * @param array $response The existing heartbeat response array.
50
-     * @param array $data     The incoming data package.
51
-     * @return array  possibly appended response.
52
-     */
53
-    public function heartbeatResponse($response, $data)
54
-    {
55
-        /**
56
-         * check whether count of tickets is approaching the potential
57
-         * limits for the server.
58
-         */
59
-        if (! empty($data['input_count'])) {
60
-            $response['max_input_vars_check'] = $this->environment->max_input_vars_limit_check(
61
-                $data['input_count']
62
-            );
63
-        }
64
-        return $response;
65
-    }
45
+	/**
46
+	 * This will be used to listen for any heartbeat data packages coming via the WordPress heartbeat API and handle
47
+	 * accordingly.
48
+	 *
49
+	 * @param array $response The existing heartbeat response array.
50
+	 * @param array $data     The incoming data package.
51
+	 * @return array  possibly appended response.
52
+	 */
53
+	public function heartbeatResponse($response, $data)
54
+	{
55
+		/**
56
+		 * check whether count of tickets is approaching the potential
57
+		 * limits for the server.
58
+		 */
59
+		if (! empty($data['input_count'])) {
60
+			$response['max_input_vars_check'] = $this->environment->max_input_vars_limit_check(
61
+				$data['input_count']
62
+			);
63
+		}
64
+		return $response;
65
+	}
66 66
 }
Please login to merge, or discard this patch.
payment_methods/Paypal_Express/forms/SettingsForm.php 1 patch
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -19,53 +19,53 @@
 block discarded – undo
19 19
  */
20 20
 class SettingsForm extends PayPalSettingsForm
21 21
 {
22
-    /**
23
-     * SettingsForm constructor.
24
-     *
25
-     * @param array $options_array
26
-     * @param string $help_tab_link
27
-     * @throws InvalidDataTypeException
28
-     * @throws InvalidInterfaceException
29
-     * @throws InvalidArgumentException
30
-     */
31
-    public function __construct(array $options_array = array(), $help_tab_link = '')
32
-    {
33
-        $options_array = array_replace_recursive(
34
-            array(
35
-                'extra_meta_inputs' => array(
36
-                    'request_shipping_addr' => new EE_Yes_No_Input(
37
-                        array(
38
-                            'html_label_text' => sprintf(
39
-                                esc_html__('Request Shipping Address %s', 'event_espresso'),
40
-                                $help_tab_link
41
-                            ),
42
-                            'html_help_text'  => esc_html__(
43
-                            // @codingStandardsIgnoreStart
44
-                                'If set to "Yes", then a shipping address will be requested on the PayPal checkout page.',
45
-                                // @codingStandardsIgnoreEnd
46
-                                'event_espresso'
47
-                            ),
48
-                            'required'        => true,
49
-                            'default'         => false,
50
-                        )
51
-                    ),
52
-                    'image_url' => new EE_Admin_File_Uploader_Input(
53
-                        array(
54
-                            'html_label_text' => sprintf(
55
-                                esc_html__('Image URL %s', 'event_espresso'),
56
-                                $help_tab_link
57
-                            ),
58
-                            'html_help_text'  => esc_html__(
59
-                                'Used for your business/personal logo on the PayPal page',
60
-                                'event_espresso'
61
-                            ),
62
-                            'required'        => false,
63
-                        )
64
-                    ),
65
-                )
66
-            ),
67
-            $options_array
68
-        );
69
-        parent::__construct($options_array, $help_tab_link);
70
-    }
22
+	/**
23
+	 * SettingsForm constructor.
24
+	 *
25
+	 * @param array $options_array
26
+	 * @param string $help_tab_link
27
+	 * @throws InvalidDataTypeException
28
+	 * @throws InvalidInterfaceException
29
+	 * @throws InvalidArgumentException
30
+	 */
31
+	public function __construct(array $options_array = array(), $help_tab_link = '')
32
+	{
33
+		$options_array = array_replace_recursive(
34
+			array(
35
+				'extra_meta_inputs' => array(
36
+					'request_shipping_addr' => new EE_Yes_No_Input(
37
+						array(
38
+							'html_label_text' => sprintf(
39
+								esc_html__('Request Shipping Address %s', 'event_espresso'),
40
+								$help_tab_link
41
+							),
42
+							'html_help_text'  => esc_html__(
43
+							// @codingStandardsIgnoreStart
44
+								'If set to "Yes", then a shipping address will be requested on the PayPal checkout page.',
45
+								// @codingStandardsIgnoreEnd
46
+								'event_espresso'
47
+							),
48
+							'required'        => true,
49
+							'default'         => false,
50
+						)
51
+					),
52
+					'image_url' => new EE_Admin_File_Uploader_Input(
53
+						array(
54
+							'html_label_text' => sprintf(
55
+								esc_html__('Image URL %s', 'event_espresso'),
56
+								$help_tab_link
57
+							),
58
+							'html_help_text'  => esc_html__(
59
+								'Used for your business/personal logo on the PayPal page',
60
+								'event_espresso'
61
+							),
62
+							'required'        => false,
63
+						)
64
+					),
65
+				)
66
+			),
67
+			$options_array
68
+		);
69
+		parent::__construct($options_array, $help_tab_link);
70
+	}
71 71
 }
Please login to merge, or discard this patch.
core/db_models/EEM_Event_Question_Group.model.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -32,10 +32,10 @@
 block discarded – undo
32 32
         );
33 33
         // this model is generally available for reading
34 34
         $path_to_event = 'Event';
35
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public($path_to_event);
36
-        $this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
37
-        $this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
38
-        $this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event, EEM_Base::caps_edit);
35
+        $this->_cap_restriction_generators[EEM_Base::caps_read] = new EE_Restriction_Generator_Event_Related_Public($path_to_event);
36
+        $this->_cap_restriction_generators[EEM_Base::caps_read_admin] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
37
+        $this->_cap_restriction_generators[EEM_Base::caps_edit] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
38
+        $this->_cap_restriction_generators[EEM_Base::caps_delete] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event, EEM_Base::caps_edit);
39 39
         parent::__construct($timezone);
40 40
     }
41 41
 
Please login to merge, or discard this patch.
Indentation   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -8,72 +8,72 @@
 block discarded – undo
8 8
  */
9 9
 class EEM_Event_Question_Group extends EEM_Base
10 10
 {
11
-    /**
12
-     * Name of the field indicating an event should use the question group for the primary attendee
13
-     */
14
-    const PRIMARY = 'EQG_primary';
11
+	/**
12
+	 * Name of the field indicating an event should use the question group for the primary attendee
13
+	 */
14
+	const PRIMARY = 'EQG_primary';
15 15
 
16
-    /**
17
-     * Name of hte field indicating an event should use the question group for additional attendees
18
-     */
19
-    const ADDITIONAL = 'EQG_additional';
16
+	/**
17
+	 * Name of hte field indicating an event should use the question group for additional attendees
18
+	 */
19
+	const ADDITIONAL = 'EQG_additional';
20 20
 
21
-    // private instance of the Event_Question_Group object
22
-    protected static $_instance = null;
21
+	// private instance of the Event_Question_Group object
22
+	protected static $_instance = null;
23 23
 
24
-    protected function __construct($timezone = null)
25
-    {
26
-        $this->singular_item = esc_html__('Event to Question Group Link', 'event_espresso');
27
-        $this->plural_item = esc_html__('Event to Question Group Links', 'event_espresso');
28
-        $this->_tables = array(
29
-            'Event_Question_Group' => new EE_Primary_Table('esp_event_question_group', 'EQG_ID')
30
-        );
31
-        $this->_fields = array(
32
-            'Event_Question_Group' => array(
33
-                'EQG_ID' => new EE_Primary_Key_Int_Field('EQG_ID', esc_html__('Event to Question Group Link ID', 'event_espresso')),
34
-                'EVT_ID' => new EE_Foreign_Key_Int_Field('EVT_ID', esc_html__('Event ID', 'event_espresso'), false, 0, 'Event'),
35
-                'QSG_ID' => new EE_Foreign_Key_Int_Field('QSG_ID', esc_html__('Question Group Id', 'event_espresso'), false, 0, 'Question_Group'),
36
-                'EQG_primary' => new EE_Boolean_Field('EQG_primary', esc_html__('Flag indicating question is only for primary attendees', 'event_espresso'), false, false),
37
-                'EQG_additional' => new EE_Boolean_Field('EQG_additional', esc_html__('Flag indicating question is only for additional attendees', 'event_espresso'), false, false)
38
-            )
39
-        );
40
-        $this->_model_relations = array(
41
-            'Event' => new EE_Belongs_To_Relation(),
42
-            'Question_Group' => new EE_Belongs_To_Relation()
43
-        );
44
-        // this model is generally available for reading
45
-        $path_to_event = 'Event';
46
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public($path_to_event);
47
-        $this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
48
-        $this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
49
-        $this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event, EEM_Base::caps_edit);
50
-        parent::__construct($timezone);
51
-    }
24
+	protected function __construct($timezone = null)
25
+	{
26
+		$this->singular_item = esc_html__('Event to Question Group Link', 'event_espresso');
27
+		$this->plural_item = esc_html__('Event to Question Group Links', 'event_espresso');
28
+		$this->_tables = array(
29
+			'Event_Question_Group' => new EE_Primary_Table('esp_event_question_group', 'EQG_ID')
30
+		);
31
+		$this->_fields = array(
32
+			'Event_Question_Group' => array(
33
+				'EQG_ID' => new EE_Primary_Key_Int_Field('EQG_ID', esc_html__('Event to Question Group Link ID', 'event_espresso')),
34
+				'EVT_ID' => new EE_Foreign_Key_Int_Field('EVT_ID', esc_html__('Event ID', 'event_espresso'), false, 0, 'Event'),
35
+				'QSG_ID' => new EE_Foreign_Key_Int_Field('QSG_ID', esc_html__('Question Group Id', 'event_espresso'), false, 0, 'Question_Group'),
36
+				'EQG_primary' => new EE_Boolean_Field('EQG_primary', esc_html__('Flag indicating question is only for primary attendees', 'event_espresso'), false, false),
37
+				'EQG_additional' => new EE_Boolean_Field('EQG_additional', esc_html__('Flag indicating question is only for additional attendees', 'event_espresso'), false, false)
38
+			)
39
+		);
40
+		$this->_model_relations = array(
41
+			'Event' => new EE_Belongs_To_Relation(),
42
+			'Question_Group' => new EE_Belongs_To_Relation()
43
+		);
44
+		// this model is generally available for reading
45
+		$path_to_event = 'Event';
46
+		$this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Event_Related_Public($path_to_event);
47
+		$this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
48
+		$this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event);
49
+		$this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Event_Related_Protected($path_to_event, EEM_Base::caps_edit);
50
+		parent::__construct($timezone);
51
+	}
52 52
 
53
-    /**
54
-     * Decides whether to use the 'EQG_primary' or newer 'EQG_additional' for use in queries, based on whether
55
-     * this is concerning primary attendees or additional attendees.
56
-     * If 1, true, or "primary" is passed in, returns EQG_primary. If 0, false, or "additional" is passed in, returns
57
-     * EQG_additional.
58
-     * @since 4.10.0.p
59
-     * @param string|boolean|int $context
60
-     * @return string
61
-     */
62
-    public function fieldNameForContext($context)
63
-    {
64
-        // Basically do a strict switch statement.
65
-        switch (true) {
66
-            case $context === 'additional':
67
-            case $context === false:
68
-            case $context === 0:
69
-                $field_name = EEM_Event_Question_Group::ADDITIONAL;
70
-                break;
71
-            case $context === 'primary':
72
-            case $context === true:
73
-            case $context === 1:
74
-            default:
75
-                $field_name = EEM_Event_Question_Group::PRIMARY;
76
-        }
77
-        return apply_filters('FHEE__EEM_Event_Question_Group__fieldNameForContext', $field_name, $context);
78
-    }
53
+	/**
54
+	 * Decides whether to use the 'EQG_primary' or newer 'EQG_additional' for use in queries, based on whether
55
+	 * this is concerning primary attendees or additional attendees.
56
+	 * If 1, true, or "primary" is passed in, returns EQG_primary. If 0, false, or "additional" is passed in, returns
57
+	 * EQG_additional.
58
+	 * @since 4.10.0.p
59
+	 * @param string|boolean|int $context
60
+	 * @return string
61
+	 */
62
+	public function fieldNameForContext($context)
63
+	{
64
+		// Basically do a strict switch statement.
65
+		switch (true) {
66
+			case $context === 'additional':
67
+			case $context === false:
68
+			case $context === 0:
69
+				$field_name = EEM_Event_Question_Group::ADDITIONAL;
70
+				break;
71
+			case $context === 'primary':
72
+			case $context === true:
73
+			case $context === 1:
74
+			default:
75
+				$field_name = EEM_Event_Question_Group::PRIMARY;
76
+		}
77
+		return apply_filters('FHEE__EEM_Event_Question_Group__fieldNameForContext', $field_name, $context);
78
+	}
79 79
 }
Please login to merge, or discard this patch.
core/db_models/EEM_Line_Item.model.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -324,8 +324,8 @@  discard block
 block discarded – undo
324 324
         );
325 325
         $query = $wpdb->prepare(
326 326
             'DELETE li
327
-				FROM ' . $this->table() . ' li
328
-				LEFT JOIN ' . EEM_Transaction::instance()->table() . ' t ON li.TXN_ID = t.TXN_ID
327
+				FROM ' . $this->table().' li
328
+				LEFT JOIN ' . EEM_Transaction::instance()->table().' t ON li.TXN_ID = t.TXN_ID
329 329
 				WHERE t.TXN_ID IS NULL AND li.LIN_timestamp < %s',
330 330
             // use GMT time because that's what TXN_timestamps are in
331 331
             date('Y-m-d H:i:s', time() - $time_to_leave_alone)
@@ -598,7 +598,7 @@  discard block
 block discarded – undo
598 598
      */
599 599
     public function getTicketLineItemsForExpiredCarts($timestamp = 0)
600 600
     {
601
-        if (! absint($timestamp)) {
601
+        if ( ! absint($timestamp)) {
602 602
             /** @var EventEspresso\core\domain\values\session\SessionLifespan $session_lifespan */
603 603
             $session_lifespan = LoaderFactory::getLoader()->getShared(
604 604
                 'EventEspresso\core\domain\values\session\SessionLifespan'
Please login to merge, or discard this patch.
Indentation   +595 added lines, -595 removed lines patch added patch discarded remove patch
@@ -27,602 +27,602 @@
 block discarded – undo
27 27
  */
28 28
 class EEM_Line_Item extends EEM_Base
29 29
 {
30
-    /**
31
-     * Tax sub-total is just the total of all the taxes, which should be children
32
-     * of this line item. There should only ever be one tax sub-total, and it should
33
-     * be a direct child of. Its quantity and LIN_unit_price = 1.
34
-     */
35
-    const type_tax_sub_total = 'tax-sub-total';
36
-
37
-    /**
38
-     * Tax line items indicate a tax applied to all the taxable line items.
39
-     * Should not have any children line items. Its LIN_unit_price = 0. Its LIN_percent is a percent, not a decimal
40
-     * (eg 10% tax = 10, not 0.1). Its LIN_total = LIN_unit_price * pre-tax-total. Quantity = 1.
41
-     */
42
-    const type_tax = 'tax';
43
-
44
-    /**
45
-     * Indicating individual items purchased, or discounts or surcharges.
46
-     * The sum of all the regular line items  plus the tax items should equal the grand total.
47
-     * Possible children are sub-line-items and cancellations.
48
-     * For flat items, LIN_unit_price * LIN_quantity = LIN_total. Its LIN_total is the sum of all the children
49
-     * LIN_totals. Its LIN_percent = 0.
50
-     * For percent items, its LIN_unit_price = 0. Its LIN_percent is a percent, not a decimal (eg 10% = 10, not 0.1).
51
-     * Its LIN_total is LIN_percent / 100 * sum of lower-priority sibling line items. Quantity = 1.
52
-     */
53
-    const type_line_item = 'line-item';
54
-
55
-    /**
56
-     * Line item indicating all the factors that make a single line item.
57
-     * Sub-line items should have NO children line items.
58
-     * For flat sub-items, their quantity should match their parent item, their LIN_unit_price should be this sub-item's
59
-     * contribution towards the price of ONE of their parent items, and its LIN_total should be
60
-     *  = LIN_quantity * LIN_unit_price. Its LIN_percent = 0.
61
-     * For percent sub-items, the quantity should be 1, LIN_unit_price should be 0, and its LIN_total should
62
-     * = LIN_percent / 100 * sum of lower-priority sibling line items..
63
-     */
64
-    const type_sub_line_item = 'sub-item';
65
-
66
-    /**
67
-     * Line item indicating a sub-total (eg total for an event, or pre-tax subtotal).
68
-     * Direct children should be event subtotals.
69
-     * Should have quantity of 1, and a LIN_total and LIN_unit_price of the sum of all its sub-items' LIN_totals.
70
-     */
71
-    const type_sub_total = 'sub-total';
72
-
73
-    /**
74
-     * Line item for the grand total of an order.
75
-     * Its direct children should be tax subtotals and (pre-tax) subtotals,
76
-     * and possibly a regular line item indicating a transaction-wide discount/surcharge.
77
-     * Should have a quantity of 1, a LIN_total and LIN_unit_price of the entire order's amount.
78
-     */
79
-    const type_total = 'total';
80
-
81
-    /**
82
-     * When a line item is cancelled, a sub-line-item of type 'cancellation'
83
-     * should be created, indicating the quantity that were cancelled
84
-     * (because a line item could have a quantity of 1, and its cancellation item
85
-     * could be for 3, indicating that originally 4 were purchased, but 3 have been
86
-     * cancelled, and only one remains).
87
-     * When items are refunded, a cancellation line item should be made, which points
88
-     * to teh payment model object which actually refunded the payment.
89
-     * Cancellations should NOT have any children line items; the should NOT affect
90
-     * any calculations, and are only meant as a record that cancellations have occurred.
91
-     * Their LIN_percent should be 0.
92
-     */
93
-    const type_cancellation = 'cancellation';
94
-
95
-    // various line item object types
96
-    const OBJ_TYPE_EVENT = 'Event';
97
-
98
-    const OBJ_TYPE_PRICE = 'Price';
99
-
100
-    const OBJ_TYPE_PROMOTION = 'Promotion';
101
-
102
-    const OBJ_TYPE_TICKET = 'Ticket';
103
-
104
-    const OBJ_TYPE_TRANSACTION = 'Transaction';
105
-
106
-    /**
107
-     * @var EEM_Line_Item $_instance
108
-     */
109
-    protected static $_instance;
110
-
111
-
112
-    /**
113
-     * private constructor to prevent direct creation
114
-     *
115
-     * @Constructor
116
-     * @param string $timezone string representing the timezone we want to set for returned Date Time Strings
117
-     *                         (and any incoming timezone data that gets saved).
118
-     *                         Note this just sends the timezone info to the date time model field objects.
119
-     *                         Default is NULL
120
-     *                         (and will be assumed using the set timezone in the 'timezone_string' wp option)
121
-     * @throws EE_Error
122
-     * @throws InvalidArgumentException
123
-     */
124
-    protected function __construct($timezone)
125
-    {
126
-        $this->singular_item = esc_html__('Line Item', 'event_espresso');
127
-        $this->plural_item = esc_html__('Line Items', 'event_espresso');
128
-
129
-        $this->_tables = array(
130
-            'Line_Item' => new EE_Primary_Table('esp_line_item', 'LIN_ID'),
131
-        );
132
-        $line_items_can_be_for = apply_filters(
133
-            'FHEE__EEM_Line_Item__line_items_can_be_for',
134
-            array('Ticket', 'Price', 'Event')
135
-        );
136
-        $this->_fields = array(
137
-            'Line_Item' => array(
138
-                'LIN_ID'         => new EE_Primary_Key_Int_Field(
139
-                    'LIN_ID',
140
-                    esc_html__('ID', 'event_espresso')
141
-                ),
142
-                'LIN_code'       => new EE_Slug_Field(
143
-                    'LIN_code',
144
-                    esc_html__('Code for index into Cart', 'event_espresso'),
145
-                    true
146
-                ),
147
-                'TXN_ID'         => new EE_Foreign_Key_Int_Field(
148
-                    'TXN_ID',
149
-                    esc_html__('Transaction ID', 'event_espresso'),
150
-                    true,
151
-                    null,
152
-                    'Transaction'
153
-                ),
154
-                'LIN_name'       => new EE_Full_HTML_Field(
155
-                    'LIN_name',
156
-                    esc_html__('Line Item Name', 'event_espresso'),
157
-                    false,
158
-                    ''
159
-                ),
160
-                'LIN_desc'       => new EE_Full_HTML_Field(
161
-                    'LIN_desc',
162
-                    esc_html__('Line Item Description', 'event_espresso'),
163
-                    true
164
-                ),
165
-                'LIN_unit_price' => new EE_Money_Field(
166
-                    'LIN_unit_price',
167
-                    esc_html__('Unit Price', 'event_espresso'),
168
-                    false,
169
-                    0
170
-                ),
171
-                'LIN_percent'    => new EE_Float_Field(
172
-                    'LIN_percent',
173
-                    esc_html__('Percent', 'event_espresso'),
174
-                    false,
175
-                    0
176
-                ),
177
-                'LIN_is_taxable' => new EE_Boolean_Field(
178
-                    'LIN_is_taxable',
179
-                    esc_html__('Taxable', 'event_espresso'),
180
-                    false,
181
-                    false
182
-                ),
183
-                'LIN_order'      => new EE_Integer_Field(
184
-                    'LIN_order',
185
-                    esc_html__('Order of Application towards total of parent', 'event_espresso'),
186
-                    false,
187
-                    1
188
-                ),
189
-                'LIN_total'      => new EE_Money_Field(
190
-                    'LIN_total',
191
-                    esc_html__('Total (unit price x quantity)', 'event_espresso'),
192
-                    false,
193
-                    0
194
-                ),
195
-                'LIN_quantity'   => new EE_Integer_Field(
196
-                    'LIN_quantity',
197
-                    esc_html__('Quantity', 'event_espresso'),
198
-                    true,
199
-                    1
200
-                ),
201
-                'LIN_parent'     => new EE_Integer_Field(
202
-                    'LIN_parent',
203
-                    esc_html__("Parent ID (this item goes towards that Line Item's total)", 'event_espresso'),
204
-                    true,
205
-                    null
206
-                ),
207
-                'LIN_type'       => new EE_Enum_Text_Field(
208
-                    'LIN_type',
209
-                    esc_html__('Type', 'event_espresso'),
210
-                    false,
211
-                    'line-item',
212
-                    array(
213
-                        self::type_line_item     => esc_html__('Line Item', 'event_espresso'),
214
-                        self::type_sub_line_item => esc_html__('Sub-Item', 'event_espresso'),
215
-                        self::type_sub_total     => esc_html__('Subtotal', 'event_espresso'),
216
-                        self::type_tax_sub_total => esc_html__('Tax Subtotal', 'event_espresso'),
217
-                        self::type_tax           => esc_html__('Tax', 'event_espresso'),
218
-                        self::type_total         => esc_html__('Total', 'event_espresso'),
219
-                        self::type_cancellation  => esc_html__('Cancellation', 'event_espresso'),
220
-                    )
221
-                ),
222
-                'OBJ_ID'         => new EE_Foreign_Key_Int_Field(
223
-                    'OBJ_ID',
224
-                    esc_html__('ID of Item purchased.', 'event_espresso'),
225
-                    true,
226
-                    null,
227
-                    $line_items_can_be_for
228
-                ),
229
-                'OBJ_type'       => new EE_Any_Foreign_Model_Name_Field(
230
-                    'OBJ_type',
231
-                    esc_html__('Model Name this Line Item is for', 'event_espresso'),
232
-                    true,
233
-                    null,
234
-                    $line_items_can_be_for
235
-                ),
236
-                'LIN_timestamp'  => new EE_Datetime_Field(
237
-                    'LIN_timestamp',
238
-                    esc_html__('When the line item was created', 'event_espresso'),
239
-                    false,
240
-                    EE_Datetime_Field::now,
241
-                    $timezone
242
-                ),
243
-            ),
244
-        );
245
-        $this->_model_relations = array(
246
-            'Transaction' => new EE_Belongs_To_Relation(),
247
-            'Ticket'      => new EE_Belongs_To_Any_Relation(),
248
-            'Price'       => new EE_Belongs_To_Any_Relation(),
249
-            'Event'       => new EE_Belongs_To_Any_Relation(),
250
-        );
251
-        $this->_model_chain_to_wp_user = 'Transaction.Registration.Event';
252
-        $this->_caps_slug = 'transactions';
253
-        parent::__construct($timezone);
254
-    }
255
-
256
-
257
-    /**
258
-     * Gets all the line items for this transaction of the given type
259
-     *
260
-     * @param string             $line_item_type like one of EEM_Line_Item::type_*
261
-     * @param EE_Transaction|int $transaction
262
-     * @return EE_Base_Class[]|EE_Line_Item[]
263
-     * @throws EE_Error
264
-     * @throws InvalidArgumentException
265
-     * @throws InvalidDataTypeException
266
-     * @throws InvalidInterfaceException
267
-     */
268
-    public function get_all_of_type_for_transaction($line_item_type, $transaction)
269
-    {
270
-        $transaction = EEM_Transaction::instance()->ensure_is_ID($transaction);
271
-        return $this->get_all(array(
272
-            array(
273
-                'LIN_type' => $line_item_type,
274
-                'TXN_ID'   => $transaction,
275
-            ),
276
-        ));
277
-    }
278
-
279
-
280
-    /**
281
-     * Gets all line items unrelated to tickets that are normal line items
282
-     * (eg shipping, promotions, and miscellaneous other stuff should probably fit in this category)
283
-     *
284
-     * @param EE_Transaction|int $transaction
285
-     * @return EE_Base_Class[]|EE_Line_Item[]
286
-     * @throws EE_Error
287
-     * @throws InvalidArgumentException
288
-     * @throws InvalidDataTypeException
289
-     * @throws InvalidInterfaceException
290
-     */
291
-    public function get_all_non_ticket_line_items_for_transaction($transaction)
292
-    {
293
-        $transaction = EEM_Transaction::instance()->ensure_is_ID($transaction);
294
-        return $this->get_all(array(
295
-            array(
296
-                'LIN_type' => self::type_line_item,
297
-                'TXN_ID'   => $transaction,
298
-                'OR'       => array(
299
-                    'OBJ_type*notticket' => array('!=', EEM_Line_Item::OBJ_TYPE_TICKET),
300
-                    'OBJ_type*null'      => array('IS_NULL'),
301
-                ),
302
-            ),
303
-        ));
304
-    }
305
-
306
-
307
-    /**
308
-     * Deletes line items with no transaction who have passed the transaction cutoff time.
309
-     * This needs to be very efficient
310
-     * because if there are spam bots afoot there will be LOTS of line items. Also MySQL doesn't allow a limit when
311
-     * deleting and joining tables like this.
312
-     *
313
-     * @return int count of how many deleted
314
-     * @throws EE_Error
315
-     * @throws InvalidArgumentException
316
-     * @throws InvalidDataTypeException
317
-     * @throws InvalidInterfaceException
318
-     */
319
-    public function delete_line_items_with_no_transaction()
320
-    {
321
-        /** @type WPDB $wpdb */
322
-        global $wpdb;
323
-        $time_to_leave_alone = apply_filters(
324
-            'FHEE__EEM_Line_Item__delete_line_items_with_no_transaction__time_to_leave_alone',
325
-            WEEK_IN_SECONDS
326
-        );
327
-        $query = $wpdb->prepare(
328
-            'DELETE li
30
+	/**
31
+	 * Tax sub-total is just the total of all the taxes, which should be children
32
+	 * of this line item. There should only ever be one tax sub-total, and it should
33
+	 * be a direct child of. Its quantity and LIN_unit_price = 1.
34
+	 */
35
+	const type_tax_sub_total = 'tax-sub-total';
36
+
37
+	/**
38
+	 * Tax line items indicate a tax applied to all the taxable line items.
39
+	 * Should not have any children line items. Its LIN_unit_price = 0. Its LIN_percent is a percent, not a decimal
40
+	 * (eg 10% tax = 10, not 0.1). Its LIN_total = LIN_unit_price * pre-tax-total. Quantity = 1.
41
+	 */
42
+	const type_tax = 'tax';
43
+
44
+	/**
45
+	 * Indicating individual items purchased, or discounts or surcharges.
46
+	 * The sum of all the regular line items  plus the tax items should equal the grand total.
47
+	 * Possible children are sub-line-items and cancellations.
48
+	 * For flat items, LIN_unit_price * LIN_quantity = LIN_total. Its LIN_total is the sum of all the children
49
+	 * LIN_totals. Its LIN_percent = 0.
50
+	 * For percent items, its LIN_unit_price = 0. Its LIN_percent is a percent, not a decimal (eg 10% = 10, not 0.1).
51
+	 * Its LIN_total is LIN_percent / 100 * sum of lower-priority sibling line items. Quantity = 1.
52
+	 */
53
+	const type_line_item = 'line-item';
54
+
55
+	/**
56
+	 * Line item indicating all the factors that make a single line item.
57
+	 * Sub-line items should have NO children line items.
58
+	 * For flat sub-items, their quantity should match their parent item, their LIN_unit_price should be this sub-item's
59
+	 * contribution towards the price of ONE of their parent items, and its LIN_total should be
60
+	 *  = LIN_quantity * LIN_unit_price. Its LIN_percent = 0.
61
+	 * For percent sub-items, the quantity should be 1, LIN_unit_price should be 0, and its LIN_total should
62
+	 * = LIN_percent / 100 * sum of lower-priority sibling line items..
63
+	 */
64
+	const type_sub_line_item = 'sub-item';
65
+
66
+	/**
67
+	 * Line item indicating a sub-total (eg total for an event, or pre-tax subtotal).
68
+	 * Direct children should be event subtotals.
69
+	 * Should have quantity of 1, and a LIN_total and LIN_unit_price of the sum of all its sub-items' LIN_totals.
70
+	 */
71
+	const type_sub_total = 'sub-total';
72
+
73
+	/**
74
+	 * Line item for the grand total of an order.
75
+	 * Its direct children should be tax subtotals and (pre-tax) subtotals,
76
+	 * and possibly a regular line item indicating a transaction-wide discount/surcharge.
77
+	 * Should have a quantity of 1, a LIN_total and LIN_unit_price of the entire order's amount.
78
+	 */
79
+	const type_total = 'total';
80
+
81
+	/**
82
+	 * When a line item is cancelled, a sub-line-item of type 'cancellation'
83
+	 * should be created, indicating the quantity that were cancelled
84
+	 * (because a line item could have a quantity of 1, and its cancellation item
85
+	 * could be for 3, indicating that originally 4 were purchased, but 3 have been
86
+	 * cancelled, and only one remains).
87
+	 * When items are refunded, a cancellation line item should be made, which points
88
+	 * to teh payment model object which actually refunded the payment.
89
+	 * Cancellations should NOT have any children line items; the should NOT affect
90
+	 * any calculations, and are only meant as a record that cancellations have occurred.
91
+	 * Their LIN_percent should be 0.
92
+	 */
93
+	const type_cancellation = 'cancellation';
94
+
95
+	// various line item object types
96
+	const OBJ_TYPE_EVENT = 'Event';
97
+
98
+	const OBJ_TYPE_PRICE = 'Price';
99
+
100
+	const OBJ_TYPE_PROMOTION = 'Promotion';
101
+
102
+	const OBJ_TYPE_TICKET = 'Ticket';
103
+
104
+	const OBJ_TYPE_TRANSACTION = 'Transaction';
105
+
106
+	/**
107
+	 * @var EEM_Line_Item $_instance
108
+	 */
109
+	protected static $_instance;
110
+
111
+
112
+	/**
113
+	 * private constructor to prevent direct creation
114
+	 *
115
+	 * @Constructor
116
+	 * @param string $timezone string representing the timezone we want to set for returned Date Time Strings
117
+	 *                         (and any incoming timezone data that gets saved).
118
+	 *                         Note this just sends the timezone info to the date time model field objects.
119
+	 *                         Default is NULL
120
+	 *                         (and will be assumed using the set timezone in the 'timezone_string' wp option)
121
+	 * @throws EE_Error
122
+	 * @throws InvalidArgumentException
123
+	 */
124
+	protected function __construct($timezone)
125
+	{
126
+		$this->singular_item = esc_html__('Line Item', 'event_espresso');
127
+		$this->plural_item = esc_html__('Line Items', 'event_espresso');
128
+
129
+		$this->_tables = array(
130
+			'Line_Item' => new EE_Primary_Table('esp_line_item', 'LIN_ID'),
131
+		);
132
+		$line_items_can_be_for = apply_filters(
133
+			'FHEE__EEM_Line_Item__line_items_can_be_for',
134
+			array('Ticket', 'Price', 'Event')
135
+		);
136
+		$this->_fields = array(
137
+			'Line_Item' => array(
138
+				'LIN_ID'         => new EE_Primary_Key_Int_Field(
139
+					'LIN_ID',
140
+					esc_html__('ID', 'event_espresso')
141
+				),
142
+				'LIN_code'       => new EE_Slug_Field(
143
+					'LIN_code',
144
+					esc_html__('Code for index into Cart', 'event_espresso'),
145
+					true
146
+				),
147
+				'TXN_ID'         => new EE_Foreign_Key_Int_Field(
148
+					'TXN_ID',
149
+					esc_html__('Transaction ID', 'event_espresso'),
150
+					true,
151
+					null,
152
+					'Transaction'
153
+				),
154
+				'LIN_name'       => new EE_Full_HTML_Field(
155
+					'LIN_name',
156
+					esc_html__('Line Item Name', 'event_espresso'),
157
+					false,
158
+					''
159
+				),
160
+				'LIN_desc'       => new EE_Full_HTML_Field(
161
+					'LIN_desc',
162
+					esc_html__('Line Item Description', 'event_espresso'),
163
+					true
164
+				),
165
+				'LIN_unit_price' => new EE_Money_Field(
166
+					'LIN_unit_price',
167
+					esc_html__('Unit Price', 'event_espresso'),
168
+					false,
169
+					0
170
+				),
171
+				'LIN_percent'    => new EE_Float_Field(
172
+					'LIN_percent',
173
+					esc_html__('Percent', 'event_espresso'),
174
+					false,
175
+					0
176
+				),
177
+				'LIN_is_taxable' => new EE_Boolean_Field(
178
+					'LIN_is_taxable',
179
+					esc_html__('Taxable', 'event_espresso'),
180
+					false,
181
+					false
182
+				),
183
+				'LIN_order'      => new EE_Integer_Field(
184
+					'LIN_order',
185
+					esc_html__('Order of Application towards total of parent', 'event_espresso'),
186
+					false,
187
+					1
188
+				),
189
+				'LIN_total'      => new EE_Money_Field(
190
+					'LIN_total',
191
+					esc_html__('Total (unit price x quantity)', 'event_espresso'),
192
+					false,
193
+					0
194
+				),
195
+				'LIN_quantity'   => new EE_Integer_Field(
196
+					'LIN_quantity',
197
+					esc_html__('Quantity', 'event_espresso'),
198
+					true,
199
+					1
200
+				),
201
+				'LIN_parent'     => new EE_Integer_Field(
202
+					'LIN_parent',
203
+					esc_html__("Parent ID (this item goes towards that Line Item's total)", 'event_espresso'),
204
+					true,
205
+					null
206
+				),
207
+				'LIN_type'       => new EE_Enum_Text_Field(
208
+					'LIN_type',
209
+					esc_html__('Type', 'event_espresso'),
210
+					false,
211
+					'line-item',
212
+					array(
213
+						self::type_line_item     => esc_html__('Line Item', 'event_espresso'),
214
+						self::type_sub_line_item => esc_html__('Sub-Item', 'event_espresso'),
215
+						self::type_sub_total     => esc_html__('Subtotal', 'event_espresso'),
216
+						self::type_tax_sub_total => esc_html__('Tax Subtotal', 'event_espresso'),
217
+						self::type_tax           => esc_html__('Tax', 'event_espresso'),
218
+						self::type_total         => esc_html__('Total', 'event_espresso'),
219
+						self::type_cancellation  => esc_html__('Cancellation', 'event_espresso'),
220
+					)
221
+				),
222
+				'OBJ_ID'         => new EE_Foreign_Key_Int_Field(
223
+					'OBJ_ID',
224
+					esc_html__('ID of Item purchased.', 'event_espresso'),
225
+					true,
226
+					null,
227
+					$line_items_can_be_for
228
+				),
229
+				'OBJ_type'       => new EE_Any_Foreign_Model_Name_Field(
230
+					'OBJ_type',
231
+					esc_html__('Model Name this Line Item is for', 'event_espresso'),
232
+					true,
233
+					null,
234
+					$line_items_can_be_for
235
+				),
236
+				'LIN_timestamp'  => new EE_Datetime_Field(
237
+					'LIN_timestamp',
238
+					esc_html__('When the line item was created', 'event_espresso'),
239
+					false,
240
+					EE_Datetime_Field::now,
241
+					$timezone
242
+				),
243
+			),
244
+		);
245
+		$this->_model_relations = array(
246
+			'Transaction' => new EE_Belongs_To_Relation(),
247
+			'Ticket'      => new EE_Belongs_To_Any_Relation(),
248
+			'Price'       => new EE_Belongs_To_Any_Relation(),
249
+			'Event'       => new EE_Belongs_To_Any_Relation(),
250
+		);
251
+		$this->_model_chain_to_wp_user = 'Transaction.Registration.Event';
252
+		$this->_caps_slug = 'transactions';
253
+		parent::__construct($timezone);
254
+	}
255
+
256
+
257
+	/**
258
+	 * Gets all the line items for this transaction of the given type
259
+	 *
260
+	 * @param string             $line_item_type like one of EEM_Line_Item::type_*
261
+	 * @param EE_Transaction|int $transaction
262
+	 * @return EE_Base_Class[]|EE_Line_Item[]
263
+	 * @throws EE_Error
264
+	 * @throws InvalidArgumentException
265
+	 * @throws InvalidDataTypeException
266
+	 * @throws InvalidInterfaceException
267
+	 */
268
+	public function get_all_of_type_for_transaction($line_item_type, $transaction)
269
+	{
270
+		$transaction = EEM_Transaction::instance()->ensure_is_ID($transaction);
271
+		return $this->get_all(array(
272
+			array(
273
+				'LIN_type' => $line_item_type,
274
+				'TXN_ID'   => $transaction,
275
+			),
276
+		));
277
+	}
278
+
279
+
280
+	/**
281
+	 * Gets all line items unrelated to tickets that are normal line items
282
+	 * (eg shipping, promotions, and miscellaneous other stuff should probably fit in this category)
283
+	 *
284
+	 * @param EE_Transaction|int $transaction
285
+	 * @return EE_Base_Class[]|EE_Line_Item[]
286
+	 * @throws EE_Error
287
+	 * @throws InvalidArgumentException
288
+	 * @throws InvalidDataTypeException
289
+	 * @throws InvalidInterfaceException
290
+	 */
291
+	public function get_all_non_ticket_line_items_for_transaction($transaction)
292
+	{
293
+		$transaction = EEM_Transaction::instance()->ensure_is_ID($transaction);
294
+		return $this->get_all(array(
295
+			array(
296
+				'LIN_type' => self::type_line_item,
297
+				'TXN_ID'   => $transaction,
298
+				'OR'       => array(
299
+					'OBJ_type*notticket' => array('!=', EEM_Line_Item::OBJ_TYPE_TICKET),
300
+					'OBJ_type*null'      => array('IS_NULL'),
301
+				),
302
+			),
303
+		));
304
+	}
305
+
306
+
307
+	/**
308
+	 * Deletes line items with no transaction who have passed the transaction cutoff time.
309
+	 * This needs to be very efficient
310
+	 * because if there are spam bots afoot there will be LOTS of line items. Also MySQL doesn't allow a limit when
311
+	 * deleting and joining tables like this.
312
+	 *
313
+	 * @return int count of how many deleted
314
+	 * @throws EE_Error
315
+	 * @throws InvalidArgumentException
316
+	 * @throws InvalidDataTypeException
317
+	 * @throws InvalidInterfaceException
318
+	 */
319
+	public function delete_line_items_with_no_transaction()
320
+	{
321
+		/** @type WPDB $wpdb */
322
+		global $wpdb;
323
+		$time_to_leave_alone = apply_filters(
324
+			'FHEE__EEM_Line_Item__delete_line_items_with_no_transaction__time_to_leave_alone',
325
+			WEEK_IN_SECONDS
326
+		);
327
+		$query = $wpdb->prepare(
328
+			'DELETE li
329 329
 				FROM ' . $this->table() . ' li
330 330
 				LEFT JOIN ' . EEM_Transaction::instance()->table() . ' t ON li.TXN_ID = t.TXN_ID
331 331
 				WHERE t.TXN_ID IS NULL AND li.LIN_timestamp < %s',
332
-            // use GMT time because that's what TXN_timestamps are in
333
-            date('Y-m-d H:i:s', time() - $time_to_leave_alone)
334
-        );
335
-        return $wpdb->query($query);
336
-    }
337
-
338
-
339
-    /**
340
-     * get_line_item_for_transaction_object
341
-     * Gets a transaction's line item record for a specific object such as a EE_Event or EE_Ticket
342
-     *
343
-     * @param int           $TXN_ID
344
-     * @param EE_Base_Class $object
345
-     * @return EE_Base_Class[]|EE_Line_Item[]
346
-     * @throws EE_Error
347
-     * @throws InvalidArgumentException
348
-     * @throws InvalidDataTypeException
349
-     * @throws InvalidInterfaceException
350
-     * @throws ReflectionException
351
-     */
352
-    public function get_line_item_for_transaction_object($TXN_ID, EE_Base_Class $object)
353
-    {
354
-        return $this->get_all(array(
355
-            array(
356
-                'TXN_ID'   => $TXN_ID,
357
-                'OBJ_type' => str_replace('EE_', '', get_class($object)),
358
-                'OBJ_ID'   => $object->ID(),
359
-            ),
360
-        ));
361
-    }
362
-
363
-
364
-    /**
365
-     * get_object_line_items_for_transaction
366
-     * Gets all of the the object line items for a transaction, based on an object type plus an array of object IDs
367
-     *
368
-     * @param int    $TXN_ID
369
-     * @param string $OBJ_type
370
-     * @param array  $OBJ_IDs
371
-     * @return EE_Base_Class[]|EE_Line_Item[]
372
-     * @throws EE_Error
373
-     */
374
-    public function get_object_line_items_for_transaction(
375
-        $TXN_ID,
376
-        $OBJ_type = EEM_Line_Item::OBJ_TYPE_EVENT,
377
-        $OBJ_IDs = array()
378
-    ) {
379
-        $query_params = array(
380
-            'OBJ_type' => $OBJ_type,
381
-            // if incoming $OBJ_IDs is an array, then make sure it is formatted correctly for the query
382
-            'OBJ_ID'   => is_array($OBJ_IDs) && ! isset($OBJ_IDs['IN']) ? array('IN', $OBJ_IDs) : $OBJ_IDs,
383
-        );
384
-        if ($TXN_ID) {
385
-            $query_params['TXN_ID'] = $TXN_ID;
386
-        }
387
-        return $this->get_all(array($query_params));
388
-    }
389
-
390
-
391
-    /**
392
-     * get_all_ticket_line_items_for_transaction
393
-     *
394
-     * @param EE_Transaction $transaction
395
-     * @return EE_Base_Class[]|EE_Line_Item[]
396
-     * @throws EE_Error
397
-     * @throws InvalidArgumentException
398
-     * @throws InvalidDataTypeException
399
-     * @throws InvalidInterfaceException
400
-     * @throws ReflectionException
401
-     */
402
-    public function get_all_ticket_line_items_for_transaction(EE_Transaction $transaction)
403
-    {
404
-        return $this->get_all(array(
405
-            array(
406
-                'TXN_ID'   => $transaction->ID(),
407
-                'OBJ_type' => EEM_Line_Item::OBJ_TYPE_TICKET,
408
-            ),
409
-        ));
410
-    }
411
-
412
-
413
-    /**
414
-     * get_ticket_line_item_for_transaction
415
-     *
416
-     * @param int $TXN_ID
417
-     * @param int $TKT_ID
418
-     * @return EE_Base_Class|EE_Line_Item|EE_Soft_Delete_Base_Class|NULL
419
-     * @throws EE_Error
420
-     * @throws InvalidArgumentException
421
-     * @throws InvalidDataTypeException
422
-     * @throws InvalidInterfaceException
423
-     */
424
-    public function get_ticket_line_item_for_transaction($TXN_ID, $TKT_ID)
425
-    {
426
-        return $this->get_one(array(
427
-            array(
428
-                'TXN_ID'   => EEM_Transaction::instance()->ensure_is_ID($TXN_ID),
429
-                'OBJ_ID'   => $TKT_ID,
430
-                'OBJ_type' => EEM_Line_Item::OBJ_TYPE_TICKET,
431
-            ),
432
-        ));
433
-    }
434
-
435
-
436
-    /**
437
-     * get_existing_promotion_line_item
438
-     * searches the cart for existing line items for the specified promotion
439
-     *
440
-     * @since 1.0.0
441
-     * @param EE_Line_Item $parent_line_item
442
-     * @param EE_Promotion $promotion
443
-     * @return EE_Base_Class|EE_Line_Item|EE_Soft_Delete_Base_Class|NULL
444
-     * @throws EE_Error
445
-     * @throws InvalidArgumentException
446
-     * @throws InvalidDataTypeException
447
-     * @throws InvalidInterfaceException
448
-     * @throws ReflectionException
449
-     */
450
-    public function get_existing_promotion_line_item(EE_Line_Item $parent_line_item, EE_Promotion $promotion)
451
-    {
452
-        return $this->get_one(array(
453
-            array(
454
-                'TXN_ID'     => $parent_line_item->TXN_ID(),
455
-                'LIN_parent' => $parent_line_item->ID(),
456
-                'OBJ_type'   => EEM_Line_Item::OBJ_TYPE_PROMOTION,
457
-                'OBJ_ID'     => $promotion->ID(),
458
-            ),
459
-        ));
460
-    }
461
-
462
-
463
-    /**
464
-     * get_all_promotion_line_items
465
-     * searches the cart for any and all existing promotion line items
466
-     *
467
-     * @since   1.0.0
468
-     * @param EE_Line_Item $parent_line_item
469
-     * @return EE_Base_Class[]|EE_Line_Item[]
470
-     * @throws EE_Error
471
-     * @throws InvalidArgumentException
472
-     * @throws InvalidDataTypeException
473
-     * @throws InvalidInterfaceException
474
-     * @throws ReflectionException
475
-     */
476
-    public function get_all_promotion_line_items(EE_Line_Item $parent_line_item)
477
-    {
478
-        return $this->get_all(array(
479
-            array(
480
-                'TXN_ID'     => $parent_line_item->TXN_ID(),
481
-                'LIN_parent' => $parent_line_item->ID(),
482
-                'OBJ_type'   => EEM_Line_Item::OBJ_TYPE_PROMOTION,
483
-            ),
484
-        ));
485
-    }
486
-
487
-
488
-    /**
489
-     * Gets the registration's corresponding line item.
490
-     * Note: basically does NOT support having multiple line items for a single ticket,
491
-     * which would happen if some of the registrations had a price modifier while others didn't.
492
-     * In order to support that, we'd probably need a LIN_ID on registrations or something.
493
-     *
494
-     * @param EE_Registration $registration
495
-     * @return EE_Base_Class|EE_Line_ITem|EE_Soft_Delete_Base_Class|NULL
496
-     * @throws EE_Error
497
-     */
498
-    public function get_line_item_for_registration(EE_Registration $registration)
499
-    {
500
-        return $this->get_one($this->line_item_for_registration_query_params($registration));
501
-    }
502
-
503
-
504
-    /**
505
-     * Gets the query params used to retrieve a specific line item for the given registration
506
-     *
507
-     * @param EE_Registration $registration
508
-     * @param array           $original_query_params any extra query params you'd like to be merged with
509
-     * @return array @see
510
-     *      https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
511
-     * @throws EE_Error
512
-     */
513
-    public function line_item_for_registration_query_params(
514
-        EE_Registration $registration,
515
-        $original_query_params = array()
516
-    ) {
517
-        return array_replace_recursive($original_query_params, array(
518
-            array(
519
-                'OBJ_ID'   => $registration->ticket_ID(),
520
-                'OBJ_type' => EEM_Line_Item::OBJ_TYPE_TICKET,
521
-                'TXN_ID'   => $registration->transaction_ID(),
522
-            ),
523
-        ));
524
-    }
525
-
526
-
527
-    /**
528
-     * @return EE_Base_Class[]|EE_Line_Item[]
529
-     * @throws InvalidInterfaceException
530
-     * @throws InvalidDataTypeException
531
-     * @throws EE_Error
532
-     * @throws InvalidArgumentException
533
-     */
534
-    public function get_total_line_items_with_no_transaction()
535
-    {
536
-        return $this->get_total_line_items_for_carts();
537
-    }
538
-
539
-
540
-    /**
541
-     * @return EE_Base_Class[]|EE_Line_Item[]
542
-     * @throws InvalidInterfaceException
543
-     * @throws InvalidDataTypeException
544
-     * @throws EE_Error
545
-     * @throws InvalidArgumentException
546
-     */
547
-    public function get_total_line_items_for_active_carts()
548
-    {
549
-        return $this->get_total_line_items_for_carts(false);
550
-    }
551
-
552
-
553
-    /**
554
-     * @return EE_Base_Class[]|EE_Line_Item[]
555
-     * @throws InvalidInterfaceException
556
-     * @throws InvalidDataTypeException
557
-     * @throws EE_Error
558
-     * @throws InvalidArgumentException
559
-     */
560
-    public function get_total_line_items_for_expired_carts()
561
-    {
562
-        return $this->get_total_line_items_for_carts(true);
563
-    }
564
-
565
-
566
-    /**
567
-     * Returns an array of grand total line items where the TXN_ID is 0.
568
-     * If $expired is set to true, then only line items for expired sessions will be returned.
569
-     * If $expired is set to false, then only line items for active sessions will be returned.
570
-     *
571
-     * @param null $expired
572
-     * @return EE_Base_Class[]|EE_Line_Item[]
573
-     * @throws EE_Error
574
-     * @throws InvalidArgumentException
575
-     * @throws InvalidDataTypeException
576
-     * @throws InvalidInterfaceException
577
-     */
578
-    private function get_total_line_items_for_carts($expired = null)
579
-    {
580
-        $where_params = array(
581
-            'TXN_ID'   => 0,
582
-            'LIN_type' => 'total',
583
-        );
584
-        if ($expired !== null) {
585
-            /** @var EventEspresso\core\domain\values\session\SessionLifespan $session_lifespan */
586
-            $session_lifespan = LoaderFactory::getLoader()->getShared(
587
-                'EventEspresso\core\domain\values\session\SessionLifespan'
588
-            );
589
-            $where_params['LIN_timestamp'] = array(
590
-                $expired ? '<=' : '>',
591
-                $session_lifespan->expiration(),
592
-            );
593
-        }
594
-        return $this->get_all(array($where_params));
595
-    }
596
-
597
-
598
-    /**
599
-     * Returns an array of ticket total line items where the TXN_ID is 0
600
-     * AND the timestamp is older than the session lifespan.
601
-     *
602
-     * @param int $timestamp
603
-     * @return EE_Base_Class[]|EE_Line_Item[]
604
-     * @throws EE_Error
605
-     * @throws InvalidArgumentException
606
-     * @throws InvalidDataTypeException
607
-     * @throws InvalidInterfaceException
608
-     */
609
-    public function getTicketLineItemsForExpiredCarts($timestamp = 0)
610
-    {
611
-        if (! absint($timestamp)) {
612
-            /** @var EventEspresso\core\domain\values\session\SessionLifespan $session_lifespan */
613
-            $session_lifespan = LoaderFactory::getLoader()->getShared(
614
-                'EventEspresso\core\domain\values\session\SessionLifespan'
615
-            );
616
-            $timestamp = $session_lifespan->expiration();
617
-        }
618
-        return $this->get_all(
619
-            array(
620
-                array(
621
-                    'TXN_ID'        => 0,
622
-                    'OBJ_type'      => EEM_Line_Item::OBJ_TYPE_TICKET,
623
-                    'LIN_timestamp' => array('<=', $timestamp),
624
-                ),
625
-            )
626
-        );
627
-    }
332
+			// use GMT time because that's what TXN_timestamps are in
333
+			date('Y-m-d H:i:s', time() - $time_to_leave_alone)
334
+		);
335
+		return $wpdb->query($query);
336
+	}
337
+
338
+
339
+	/**
340
+	 * get_line_item_for_transaction_object
341
+	 * Gets a transaction's line item record for a specific object such as a EE_Event or EE_Ticket
342
+	 *
343
+	 * @param int           $TXN_ID
344
+	 * @param EE_Base_Class $object
345
+	 * @return EE_Base_Class[]|EE_Line_Item[]
346
+	 * @throws EE_Error
347
+	 * @throws InvalidArgumentException
348
+	 * @throws InvalidDataTypeException
349
+	 * @throws InvalidInterfaceException
350
+	 * @throws ReflectionException
351
+	 */
352
+	public function get_line_item_for_transaction_object($TXN_ID, EE_Base_Class $object)
353
+	{
354
+		return $this->get_all(array(
355
+			array(
356
+				'TXN_ID'   => $TXN_ID,
357
+				'OBJ_type' => str_replace('EE_', '', get_class($object)),
358
+				'OBJ_ID'   => $object->ID(),
359
+			),
360
+		));
361
+	}
362
+
363
+
364
+	/**
365
+	 * get_object_line_items_for_transaction
366
+	 * Gets all of the the object line items for a transaction, based on an object type plus an array of object IDs
367
+	 *
368
+	 * @param int    $TXN_ID
369
+	 * @param string $OBJ_type
370
+	 * @param array  $OBJ_IDs
371
+	 * @return EE_Base_Class[]|EE_Line_Item[]
372
+	 * @throws EE_Error
373
+	 */
374
+	public function get_object_line_items_for_transaction(
375
+		$TXN_ID,
376
+		$OBJ_type = EEM_Line_Item::OBJ_TYPE_EVENT,
377
+		$OBJ_IDs = array()
378
+	) {
379
+		$query_params = array(
380
+			'OBJ_type' => $OBJ_type,
381
+			// if incoming $OBJ_IDs is an array, then make sure it is formatted correctly for the query
382
+			'OBJ_ID'   => is_array($OBJ_IDs) && ! isset($OBJ_IDs['IN']) ? array('IN', $OBJ_IDs) : $OBJ_IDs,
383
+		);
384
+		if ($TXN_ID) {
385
+			$query_params['TXN_ID'] = $TXN_ID;
386
+		}
387
+		return $this->get_all(array($query_params));
388
+	}
389
+
390
+
391
+	/**
392
+	 * get_all_ticket_line_items_for_transaction
393
+	 *
394
+	 * @param EE_Transaction $transaction
395
+	 * @return EE_Base_Class[]|EE_Line_Item[]
396
+	 * @throws EE_Error
397
+	 * @throws InvalidArgumentException
398
+	 * @throws InvalidDataTypeException
399
+	 * @throws InvalidInterfaceException
400
+	 * @throws ReflectionException
401
+	 */
402
+	public function get_all_ticket_line_items_for_transaction(EE_Transaction $transaction)
403
+	{
404
+		return $this->get_all(array(
405
+			array(
406
+				'TXN_ID'   => $transaction->ID(),
407
+				'OBJ_type' => EEM_Line_Item::OBJ_TYPE_TICKET,
408
+			),
409
+		));
410
+	}
411
+
412
+
413
+	/**
414
+	 * get_ticket_line_item_for_transaction
415
+	 *
416
+	 * @param int $TXN_ID
417
+	 * @param int $TKT_ID
418
+	 * @return EE_Base_Class|EE_Line_Item|EE_Soft_Delete_Base_Class|NULL
419
+	 * @throws EE_Error
420
+	 * @throws InvalidArgumentException
421
+	 * @throws InvalidDataTypeException
422
+	 * @throws InvalidInterfaceException
423
+	 */
424
+	public function get_ticket_line_item_for_transaction($TXN_ID, $TKT_ID)
425
+	{
426
+		return $this->get_one(array(
427
+			array(
428
+				'TXN_ID'   => EEM_Transaction::instance()->ensure_is_ID($TXN_ID),
429
+				'OBJ_ID'   => $TKT_ID,
430
+				'OBJ_type' => EEM_Line_Item::OBJ_TYPE_TICKET,
431
+			),
432
+		));
433
+	}
434
+
435
+
436
+	/**
437
+	 * get_existing_promotion_line_item
438
+	 * searches the cart for existing line items for the specified promotion
439
+	 *
440
+	 * @since 1.0.0
441
+	 * @param EE_Line_Item $parent_line_item
442
+	 * @param EE_Promotion $promotion
443
+	 * @return EE_Base_Class|EE_Line_Item|EE_Soft_Delete_Base_Class|NULL
444
+	 * @throws EE_Error
445
+	 * @throws InvalidArgumentException
446
+	 * @throws InvalidDataTypeException
447
+	 * @throws InvalidInterfaceException
448
+	 * @throws ReflectionException
449
+	 */
450
+	public function get_existing_promotion_line_item(EE_Line_Item $parent_line_item, EE_Promotion $promotion)
451
+	{
452
+		return $this->get_one(array(
453
+			array(
454
+				'TXN_ID'     => $parent_line_item->TXN_ID(),
455
+				'LIN_parent' => $parent_line_item->ID(),
456
+				'OBJ_type'   => EEM_Line_Item::OBJ_TYPE_PROMOTION,
457
+				'OBJ_ID'     => $promotion->ID(),
458
+			),
459
+		));
460
+	}
461
+
462
+
463
+	/**
464
+	 * get_all_promotion_line_items
465
+	 * searches the cart for any and all existing promotion line items
466
+	 *
467
+	 * @since   1.0.0
468
+	 * @param EE_Line_Item $parent_line_item
469
+	 * @return EE_Base_Class[]|EE_Line_Item[]
470
+	 * @throws EE_Error
471
+	 * @throws InvalidArgumentException
472
+	 * @throws InvalidDataTypeException
473
+	 * @throws InvalidInterfaceException
474
+	 * @throws ReflectionException
475
+	 */
476
+	public function get_all_promotion_line_items(EE_Line_Item $parent_line_item)
477
+	{
478
+		return $this->get_all(array(
479
+			array(
480
+				'TXN_ID'     => $parent_line_item->TXN_ID(),
481
+				'LIN_parent' => $parent_line_item->ID(),
482
+				'OBJ_type'   => EEM_Line_Item::OBJ_TYPE_PROMOTION,
483
+			),
484
+		));
485
+	}
486
+
487
+
488
+	/**
489
+	 * Gets the registration's corresponding line item.
490
+	 * Note: basically does NOT support having multiple line items for a single ticket,
491
+	 * which would happen if some of the registrations had a price modifier while others didn't.
492
+	 * In order to support that, we'd probably need a LIN_ID on registrations or something.
493
+	 *
494
+	 * @param EE_Registration $registration
495
+	 * @return EE_Base_Class|EE_Line_ITem|EE_Soft_Delete_Base_Class|NULL
496
+	 * @throws EE_Error
497
+	 */
498
+	public function get_line_item_for_registration(EE_Registration $registration)
499
+	{
500
+		return $this->get_one($this->line_item_for_registration_query_params($registration));
501
+	}
502
+
503
+
504
+	/**
505
+	 * Gets the query params used to retrieve a specific line item for the given registration
506
+	 *
507
+	 * @param EE_Registration $registration
508
+	 * @param array           $original_query_params any extra query params you'd like to be merged with
509
+	 * @return array @see
510
+	 *      https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
511
+	 * @throws EE_Error
512
+	 */
513
+	public function line_item_for_registration_query_params(
514
+		EE_Registration $registration,
515
+		$original_query_params = array()
516
+	) {
517
+		return array_replace_recursive($original_query_params, array(
518
+			array(
519
+				'OBJ_ID'   => $registration->ticket_ID(),
520
+				'OBJ_type' => EEM_Line_Item::OBJ_TYPE_TICKET,
521
+				'TXN_ID'   => $registration->transaction_ID(),
522
+			),
523
+		));
524
+	}
525
+
526
+
527
+	/**
528
+	 * @return EE_Base_Class[]|EE_Line_Item[]
529
+	 * @throws InvalidInterfaceException
530
+	 * @throws InvalidDataTypeException
531
+	 * @throws EE_Error
532
+	 * @throws InvalidArgumentException
533
+	 */
534
+	public function get_total_line_items_with_no_transaction()
535
+	{
536
+		return $this->get_total_line_items_for_carts();
537
+	}
538
+
539
+
540
+	/**
541
+	 * @return EE_Base_Class[]|EE_Line_Item[]
542
+	 * @throws InvalidInterfaceException
543
+	 * @throws InvalidDataTypeException
544
+	 * @throws EE_Error
545
+	 * @throws InvalidArgumentException
546
+	 */
547
+	public function get_total_line_items_for_active_carts()
548
+	{
549
+		return $this->get_total_line_items_for_carts(false);
550
+	}
551
+
552
+
553
+	/**
554
+	 * @return EE_Base_Class[]|EE_Line_Item[]
555
+	 * @throws InvalidInterfaceException
556
+	 * @throws InvalidDataTypeException
557
+	 * @throws EE_Error
558
+	 * @throws InvalidArgumentException
559
+	 */
560
+	public function get_total_line_items_for_expired_carts()
561
+	{
562
+		return $this->get_total_line_items_for_carts(true);
563
+	}
564
+
565
+
566
+	/**
567
+	 * Returns an array of grand total line items where the TXN_ID is 0.
568
+	 * If $expired is set to true, then only line items for expired sessions will be returned.
569
+	 * If $expired is set to false, then only line items for active sessions will be returned.
570
+	 *
571
+	 * @param null $expired
572
+	 * @return EE_Base_Class[]|EE_Line_Item[]
573
+	 * @throws EE_Error
574
+	 * @throws InvalidArgumentException
575
+	 * @throws InvalidDataTypeException
576
+	 * @throws InvalidInterfaceException
577
+	 */
578
+	private function get_total_line_items_for_carts($expired = null)
579
+	{
580
+		$where_params = array(
581
+			'TXN_ID'   => 0,
582
+			'LIN_type' => 'total',
583
+		);
584
+		if ($expired !== null) {
585
+			/** @var EventEspresso\core\domain\values\session\SessionLifespan $session_lifespan */
586
+			$session_lifespan = LoaderFactory::getLoader()->getShared(
587
+				'EventEspresso\core\domain\values\session\SessionLifespan'
588
+			);
589
+			$where_params['LIN_timestamp'] = array(
590
+				$expired ? '<=' : '>',
591
+				$session_lifespan->expiration(),
592
+			);
593
+		}
594
+		return $this->get_all(array($where_params));
595
+	}
596
+
597
+
598
+	/**
599
+	 * Returns an array of ticket total line items where the TXN_ID is 0
600
+	 * AND the timestamp is older than the session lifespan.
601
+	 *
602
+	 * @param int $timestamp
603
+	 * @return EE_Base_Class[]|EE_Line_Item[]
604
+	 * @throws EE_Error
605
+	 * @throws InvalidArgumentException
606
+	 * @throws InvalidDataTypeException
607
+	 * @throws InvalidInterfaceException
608
+	 */
609
+	public function getTicketLineItemsForExpiredCarts($timestamp = 0)
610
+	{
611
+		if (! absint($timestamp)) {
612
+			/** @var EventEspresso\core\domain\values\session\SessionLifespan $session_lifespan */
613
+			$session_lifespan = LoaderFactory::getLoader()->getShared(
614
+				'EventEspresso\core\domain\values\session\SessionLifespan'
615
+			);
616
+			$timestamp = $session_lifespan->expiration();
617
+		}
618
+		return $this->get_all(
619
+			array(
620
+				array(
621
+					'TXN_ID'        => 0,
622
+					'OBJ_type'      => EEM_Line_Item::OBJ_TYPE_TICKET,
623
+					'LIN_timestamp' => array('<=', $timestamp),
624
+				),
625
+			)
626
+		);
627
+	}
628 628
 }
Please login to merge, or discard this patch.
support/templates/support_admin_details_additional_information.template.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -1,8 +1,8 @@
 block discarded – undo
1 1
 <div class="padding">
2 2
     <p><?php
3
-        printf(
4
-            esc_html__('Check out the %1$sroadmap for Event Espresso%2$s.', 'event_espresso'),
5
-            '<a href="https://trello.com/b/zg9DCIpe/event-espresso-public-roadmap" target="_blank" rel="noopener noreferrer">',
6
-            '</a>'
7
-        ); ?></p>
3
+		printf(
4
+			esc_html__('Check out the %1$sroadmap for Event Espresso%2$s.', 'event_espresso'),
5
+			'<a href="https://trello.com/b/zg9DCIpe/event-espresso-public-roadmap" target="_blank" rel="noopener noreferrer">',
6
+			'</a>'
7
+		); ?></p>
8 8
 </div>
9 9
\ No newline at end of file
Please login to merge, or discard this patch.