Completed
Branch dependabot/npm_and_yarn/wordpr... (563a96)
by
unknown
57:01 queued 49:08
created
core/data_migration_scripts/4_1_0_stages/EE_DMS_4_1_0_venues.dmsstage.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -205,7 +205,7 @@
 block discarded – undo
205 205
 
206 206
     /**
207 207
      * Inserts into the venue_meta table
208
-     * @param type $cpt_id
208
+     * @param integer $cpt_id
209 209
      * @param type $old_venue
210 210
      * @return int
211 211
      */
Please login to merge, or discard this patch.
Indentation   +202 added lines, -202 removed lines patch added patch discarded remove patch
@@ -63,210 +63,210 @@
 block discarded – undo
63 63
  */
64 64
 class EE_DMS_4_1_0_venues extends EE_Data_Migration_Script_Stage
65 65
 {
66
-    private $_old_table;
67
-    private $_new_table;
68
-    private $_new_meta_table;
69
-    public function _migration_step($num_items = 50)
70
-    {
71
-        global $wpdb;
72
-        $start_at_record = $this->count_records_migrated();
73
-        $rows = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$this->_old_table." LIMIT %d,%d", $start_at_record, $num_items), ARRAY_A);
74
-        $items_actually_migrated = 0;
75
-        foreach ($rows as $old_venue) {
76
-            if (! $new_id = $this->_insert_into_posts($old_venue)) {
77
-                $items_actually_migrated++;
78
-                continue;
79
-            }
80
-            $this->get_migration_script()->set_mapping($this->_old_table, $old_venue['id'], $this->_new_table, $new_id);
81
-            if (! $new_meta_id = $this->_insert_into_meta_table($new_id, $old_venue)) {
82
-                $items_actually_migrated++;
83
-                continue;
84
-            }
85
-            $this->get_migration_script()->set_mapping($this->_old_table, $old_venue['id'], $this->_new_meta_table, $new_meta_id);
86
-            // lastly, save the 'contact' as post meta, because it doesn't exist anywhere else but someone may still want it
87
-            $venue_meta = maybe_unserialize($old_venue['meta']);
88
-            if (isset($venue_meta['contact']) && $venue_meta['contact']) {
89
-                add_post_meta($new_id, 'contact', $venue_meta['contact']);
90
-            }
91
-            // is there an image on this venue?
92
-            $guid = isset($venue_meta['image']) && $venue_meta['image'] ? $venue_meta['image'] : null;
93
-            if ($guid) {
94
-                $this->get_migration_script()->convert_image_url_to_attachment_and_attach_to_post($guid, $new_id, $this);
95
-            }
96
-            $items_actually_migrated++;
97
-            if ($guid) {
98
-                // if there was an image, we may have had to download it etc and it may have taken
99
-                // longer, then let's not bother migrating anymore on this step
100
-                break;
101
-            }
102
-        }
103
-        if ($this->count_records_migrated() + $items_actually_migrated >= $this->count_records_to_migrate()) {
104
-            $this->set_completed();
105
-        }
106
-        return $items_actually_migrated;
107
-    }
108
-    public function _count_records_to_migrate()
109
-    {
110
-        global $wpdb;
111
-        $count = $wpdb->get_var("SELECT COUNT(id) FROM ".$this->_old_table);
112
-        return $count;
113
-    }
114
-    public function __construct()
115
-    {
116
-        $this->_pretty_name = __("Venues", "event_espresso");
117
-        global $wpdb;
118
-        $this->_old_table = $wpdb->prefix."events_venue";
119
-        $this->_new_table = $wpdb->posts;
120
-        $this->_new_meta_table = $wpdb->prefix."esp_venue_meta";
121
-        parent::__construct();
122
-    }
66
+	private $_old_table;
67
+	private $_new_table;
68
+	private $_new_meta_table;
69
+	public function _migration_step($num_items = 50)
70
+	{
71
+		global $wpdb;
72
+		$start_at_record = $this->count_records_migrated();
73
+		$rows = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$this->_old_table." LIMIT %d,%d", $start_at_record, $num_items), ARRAY_A);
74
+		$items_actually_migrated = 0;
75
+		foreach ($rows as $old_venue) {
76
+			if (! $new_id = $this->_insert_into_posts($old_venue)) {
77
+				$items_actually_migrated++;
78
+				continue;
79
+			}
80
+			$this->get_migration_script()->set_mapping($this->_old_table, $old_venue['id'], $this->_new_table, $new_id);
81
+			if (! $new_meta_id = $this->_insert_into_meta_table($new_id, $old_venue)) {
82
+				$items_actually_migrated++;
83
+				continue;
84
+			}
85
+			$this->get_migration_script()->set_mapping($this->_old_table, $old_venue['id'], $this->_new_meta_table, $new_meta_id);
86
+			// lastly, save the 'contact' as post meta, because it doesn't exist anywhere else but someone may still want it
87
+			$venue_meta = maybe_unserialize($old_venue['meta']);
88
+			if (isset($venue_meta['contact']) && $venue_meta['contact']) {
89
+				add_post_meta($new_id, 'contact', $venue_meta['contact']);
90
+			}
91
+			// is there an image on this venue?
92
+			$guid = isset($venue_meta['image']) && $venue_meta['image'] ? $venue_meta['image'] : null;
93
+			if ($guid) {
94
+				$this->get_migration_script()->convert_image_url_to_attachment_and_attach_to_post($guid, $new_id, $this);
95
+			}
96
+			$items_actually_migrated++;
97
+			if ($guid) {
98
+				// if there was an image, we may have had to download it etc and it may have taken
99
+				// longer, then let's not bother migrating anymore on this step
100
+				break;
101
+			}
102
+		}
103
+		if ($this->count_records_migrated() + $items_actually_migrated >= $this->count_records_to_migrate()) {
104
+			$this->set_completed();
105
+		}
106
+		return $items_actually_migrated;
107
+	}
108
+	public function _count_records_to_migrate()
109
+	{
110
+		global $wpdb;
111
+		$count = $wpdb->get_var("SELECT COUNT(id) FROM ".$this->_old_table);
112
+		return $count;
113
+	}
114
+	public function __construct()
115
+	{
116
+		$this->_pretty_name = __("Venues", "event_espresso");
117
+		global $wpdb;
118
+		$this->_old_table = $wpdb->prefix."events_venue";
119
+		$this->_new_table = $wpdb->posts;
120
+		$this->_new_meta_table = $wpdb->prefix."esp_venue_meta";
121
+		parent::__construct();
122
+	}
123 123
 
124
-    /**
125
-     * Inserts the CPT
126
-     * @param array $old_venue keys are cols, values are col values
127
-     * @return int
128
-     */
129
-    private function _insert_into_posts($old_venue)
130
-    {
131
-        global $wpdb;
132
-        $meta = maybe_unserialize($old_venue['meta']);
133
-        $slug = $this->_find_unique_slug($old_venue['name'], $old_venue['identifier']);
134
-        $insertion_array = array(
135
-                    'post_title'=>stripslashes($old_venue['name']),// VNU_name
136
-                    'post_content'=>isset($meta['description']) ? stripslashes(strip_tags($meta['description'])) : '',// VNU_desc
137
-                    'post_name'=> $slug,// VNU_identifier
138
-                    'post_date'=>current_time('mysql'),// VNU_created
139
-                    'post_date_gmt'=>  current_time('mysql', true),
140
-                    'post_excerpt'=>'',// wp_trim_words($meta['description'] ? $meta['description'] : '',50),//VNU_short_desc arbitraty only 50 characters
141
-                    'post_modified'=>current_time('mysql'),// VNU_modified
142
-                    'post_modified_gmt'=>current_time('mysql', true),
143
-                    'post_author'=>$old_venue['wp_user'],// VNU_wp_user
144
-                    'post_parent'=>0,// parent
145
-                    'menu_order'=>0,// VNU_order
146
-                    'post_type'=>'espresso_venues'// post_type
147
-                );
148
-        $datatypes_array = array(
149
-                    '%s',// VNU_name
150
-                    '%s',// VNU_desc
151
-                    '%s',// VNU_identifier
152
-                    '%s',// VNU_created
153
-                    '%s',
154
-                    '%s',// VNU_short_desc
155
-                    '%s',// VNU_modified
156
-                    '%s',
157
-                    '%d',// VNU_wp_user
158
-                    '%d',// parent
159
-                    '%d',// VNU_order
160
-                    '%s',// post_type
161
-                );
162
-        $success = $wpdb->insert(
163
-            $this->_new_table,
164
-            $insertion_array,
165
-            $datatypes_array
166
-        );
167
-        if (! $success) {
168
-            $this->add_error($this->get_migration_script()->_create_error_message_for_db_insertion($this->_old_table, $old_venue, $this->_new_table, $insertion_array, $datatypes_array));
169
-            return 0;
170
-        }
171
-        return $wpdb->insert_id;
172
-    }
124
+	/**
125
+	 * Inserts the CPT
126
+	 * @param array $old_venue keys are cols, values are col values
127
+	 * @return int
128
+	 */
129
+	private function _insert_into_posts($old_venue)
130
+	{
131
+		global $wpdb;
132
+		$meta = maybe_unserialize($old_venue['meta']);
133
+		$slug = $this->_find_unique_slug($old_venue['name'], $old_venue['identifier']);
134
+		$insertion_array = array(
135
+					'post_title'=>stripslashes($old_venue['name']),// VNU_name
136
+					'post_content'=>isset($meta['description']) ? stripslashes(strip_tags($meta['description'])) : '',// VNU_desc
137
+					'post_name'=> $slug,// VNU_identifier
138
+					'post_date'=>current_time('mysql'),// VNU_created
139
+					'post_date_gmt'=>  current_time('mysql', true),
140
+					'post_excerpt'=>'',// wp_trim_words($meta['description'] ? $meta['description'] : '',50),//VNU_short_desc arbitraty only 50 characters
141
+					'post_modified'=>current_time('mysql'),// VNU_modified
142
+					'post_modified_gmt'=>current_time('mysql', true),
143
+					'post_author'=>$old_venue['wp_user'],// VNU_wp_user
144
+					'post_parent'=>0,// parent
145
+					'menu_order'=>0,// VNU_order
146
+					'post_type'=>'espresso_venues'// post_type
147
+				);
148
+		$datatypes_array = array(
149
+					'%s',// VNU_name
150
+					'%s',// VNU_desc
151
+					'%s',// VNU_identifier
152
+					'%s',// VNU_created
153
+					'%s',
154
+					'%s',// VNU_short_desc
155
+					'%s',// VNU_modified
156
+					'%s',
157
+					'%d',// VNU_wp_user
158
+					'%d',// parent
159
+					'%d',// VNU_order
160
+					'%s',// post_type
161
+				);
162
+		$success = $wpdb->insert(
163
+			$this->_new_table,
164
+			$insertion_array,
165
+			$datatypes_array
166
+		);
167
+		if (! $success) {
168
+			$this->add_error($this->get_migration_script()->_create_error_message_for_db_insertion($this->_old_table, $old_venue, $this->_new_table, $insertion_array, $datatypes_array));
169
+			return 0;
170
+		}
171
+		return $wpdb->insert_id;
172
+	}
173 173
 
174
-    /**
175
-     * Finds a unique slug for this venue, given its name (we could have simply used
176
-     * the old unique_identifier column, but it added a long string of seemingly random characters onto the end
177
-     * and really wasn't that pretty for a slug, so we decided we'd make our own slug again)
178
-     * @param string $post_name
179
-     * @return string
180
-     */
181
-    private function _find_unique_slug($post_name, $old_identifier = '')
182
-    {
183
-        $count = 0;
184
-        $original_name = $post_name ? sanitize_title($post_name) : $old_identifier;
185
-        $event_slug = $original_name;
186
-        while ($this->_other_post_exists_with_that_slug($event_slug) && $count<50) {
187
-            $event_slug = sanitize_title($original_name."-".++$count);
188
-        }
189
-        return $event_slug;
190
-    }
174
+	/**
175
+	 * Finds a unique slug for this venue, given its name (we could have simply used
176
+	 * the old unique_identifier column, but it added a long string of seemingly random characters onto the end
177
+	 * and really wasn't that pretty for a slug, so we decided we'd make our own slug again)
178
+	 * @param string $post_name
179
+	 * @return string
180
+	 */
181
+	private function _find_unique_slug($post_name, $old_identifier = '')
182
+	{
183
+		$count = 0;
184
+		$original_name = $post_name ? sanitize_title($post_name) : $old_identifier;
185
+		$event_slug = $original_name;
186
+		while ($this->_other_post_exists_with_that_slug($event_slug) && $count<50) {
187
+			$event_slug = sanitize_title($original_name."-".++$count);
188
+		}
189
+		return $event_slug;
190
+	}
191 191
 
192
-    /**
193
-     * returns whether or not there is a post that has this same slug (post_title)
194
-     * @global type $wpdb
195
-     * @param type $slug
196
-     * @return boolean
197
-     */
198
-    private function _other_post_exists_with_that_slug($slug)
199
-    {
200
-        global $wpdb;
201
-        $query = $wpdb->prepare("SELECT COUNT(ID) FROM ".$this->_new_table." WHERE post_name = %s", $slug);
202
-        $count = $wpdb->get_var($query);
203
-        return (boolean) intval($count);
204
-    }
192
+	/**
193
+	 * returns whether or not there is a post that has this same slug (post_title)
194
+	 * @global type $wpdb
195
+	 * @param type $slug
196
+	 * @return boolean
197
+	 */
198
+	private function _other_post_exists_with_that_slug($slug)
199
+	{
200
+		global $wpdb;
201
+		$query = $wpdb->prepare("SELECT COUNT(ID) FROM ".$this->_new_table." WHERE post_name = %s", $slug);
202
+		$count = $wpdb->get_var($query);
203
+		return (boolean) intval($count);
204
+	}
205 205
 
206
-    /**
207
-     * Inserts into the venue_meta table
208
-     * @param type $cpt_id
209
-     * @param type $old_venue
210
-     * @return int
211
-     */
212
-    private function _insert_into_meta_table($cpt_id, $old_venue)
213
-    {
214
-        global $wpdb;
215
-        // get a country with the same name, or insert one
216
-        try {
217
-            $country = $this->get_migration_script()->get_or_create_country(stripslashes($old_venue['country']));
218
-            $country_iso = $country['CNT_ISO'];
219
-        } catch (EE_Error $e) {
220
-            $this->add_error(sprintf(__("%s for venue %s", "event_espresso"), $e->getMessage(), $this->_json_encode($old_venue)));
221
-            $country_iso = null;
222
-        }
223
-        // get a state with the same name, if possible
224
-        try {
225
-            $state = $this->get_migration_script()->get_or_create_state(stripslashes($old_venue['state']), isset($country['CNT_name']) ? $country['CNT_name'] : strip_tags($old_venue['country']));
226
-            $state_id = $state['STA_ID'];
227
-        } catch (EE_Error $e) {
228
-            $this->add_error(sprintf(__("%s for venue %s", "event_espresso"), $e->getMessage(), $this->_json_encode($old_venue)));
229
-            $state_id = 0;
230
-        }
231
-        $meta = maybe_unserialize($old_venue['meta']);
232
-        // now insert into meta table
233
-        $insertion_array = array(
234
-            'VNU_ID'=>$cpt_id,// VNU_ID_fk
235
-            'VNU_address'=>stripslashes($old_venue['address']),// VNU_address
236
-            'VNU_address2'=>stripslashes($old_venue['address2']),// VNU_address2
237
-            'VNU_city'=>stripslashes($old_venue['city']),// VNU_city
238
-            'STA_ID'=>$state_id,// STA_ID
239
-            'CNT_ISO'=>$country_iso,// CNT_ISO
240
-            'VNU_zip'=>stripslashes($old_venue['zip']),// VNU_zip
241
-            'VNU_phone'=>isset($meta['phone']) ? stripslashes($meta['phone']) : '',// VNU_phone
242
-            'VNU_capacity'=>-1,// VNU_capacity
243
-            'VNU_url'=>isset($meta['website']) ? stripslashes($meta['website']) : '',// VNU_url
244
-            'VNU_virtual_phone'=>'',// VNU_virtual_phone
245
-            'VNU_virtual_url'=>'',// VNU_virtual_url
246
-            'VNU_google_map_link'=>'',// VNU_google_map_link
247
-            'VNU_enable_for_gmap'=>true // VNU_enable_for_gmap
248
-        );
249
-        $datatypes = array(
250
-            '%d',// VNU_ID_fk
251
-            '%s',// VNU_address
252
-            '%s',// VNU_address2
253
-            '%s',// VNU_city
254
-            '%d',// STA_ID
255
-            '%s',// CNT_ISO
256
-            '%s',// VNU_zip
257
-            '%s',// VNU_phone
258
-            '%d',// VNU_capacity
259
-            '%s',// VNU_url
260
-            '%s',// VNU_virtual_phone
261
-            '%s',// VNU_virtual_url
262
-            '%s',// VNU_google_map_link
263
-            '%d',// VNU_enable_for_gmap
264
-        );
265
-        $success = $wpdb->insert($this->_new_meta_table, $insertion_array, $datatypes);
266
-        if (! $success) {
267
-            $this->add_error($this->get_migration_script()->_create_error_message_for_db_insertion($this->_old_table, $old_venue, $this->_new_meta_table, $insertion_array, $datatypes));
268
-            return 0;
269
-        }
270
-        return $wpdb->insert_id;
271
-    }
206
+	/**
207
+	 * Inserts into the venue_meta table
208
+	 * @param type $cpt_id
209
+	 * @param type $old_venue
210
+	 * @return int
211
+	 */
212
+	private function _insert_into_meta_table($cpt_id, $old_venue)
213
+	{
214
+		global $wpdb;
215
+		// get a country with the same name, or insert one
216
+		try {
217
+			$country = $this->get_migration_script()->get_or_create_country(stripslashes($old_venue['country']));
218
+			$country_iso = $country['CNT_ISO'];
219
+		} catch (EE_Error $e) {
220
+			$this->add_error(sprintf(__("%s for venue %s", "event_espresso"), $e->getMessage(), $this->_json_encode($old_venue)));
221
+			$country_iso = null;
222
+		}
223
+		// get a state with the same name, if possible
224
+		try {
225
+			$state = $this->get_migration_script()->get_or_create_state(stripslashes($old_venue['state']), isset($country['CNT_name']) ? $country['CNT_name'] : strip_tags($old_venue['country']));
226
+			$state_id = $state['STA_ID'];
227
+		} catch (EE_Error $e) {
228
+			$this->add_error(sprintf(__("%s for venue %s", "event_espresso"), $e->getMessage(), $this->_json_encode($old_venue)));
229
+			$state_id = 0;
230
+		}
231
+		$meta = maybe_unserialize($old_venue['meta']);
232
+		// now insert into meta table
233
+		$insertion_array = array(
234
+			'VNU_ID'=>$cpt_id,// VNU_ID_fk
235
+			'VNU_address'=>stripslashes($old_venue['address']),// VNU_address
236
+			'VNU_address2'=>stripslashes($old_venue['address2']),// VNU_address2
237
+			'VNU_city'=>stripslashes($old_venue['city']),// VNU_city
238
+			'STA_ID'=>$state_id,// STA_ID
239
+			'CNT_ISO'=>$country_iso,// CNT_ISO
240
+			'VNU_zip'=>stripslashes($old_venue['zip']),// VNU_zip
241
+			'VNU_phone'=>isset($meta['phone']) ? stripslashes($meta['phone']) : '',// VNU_phone
242
+			'VNU_capacity'=>-1,// VNU_capacity
243
+			'VNU_url'=>isset($meta['website']) ? stripslashes($meta['website']) : '',// VNU_url
244
+			'VNU_virtual_phone'=>'',// VNU_virtual_phone
245
+			'VNU_virtual_url'=>'',// VNU_virtual_url
246
+			'VNU_google_map_link'=>'',// VNU_google_map_link
247
+			'VNU_enable_for_gmap'=>true // VNU_enable_for_gmap
248
+		);
249
+		$datatypes = array(
250
+			'%d',// VNU_ID_fk
251
+			'%s',// VNU_address
252
+			'%s',// VNU_address2
253
+			'%s',// VNU_city
254
+			'%d',// STA_ID
255
+			'%s',// CNT_ISO
256
+			'%s',// VNU_zip
257
+			'%s',// VNU_phone
258
+			'%d',// VNU_capacity
259
+			'%s',// VNU_url
260
+			'%s',// VNU_virtual_phone
261
+			'%s',// VNU_virtual_url
262
+			'%s',// VNU_google_map_link
263
+			'%d',// VNU_enable_for_gmap
264
+		);
265
+		$success = $wpdb->insert($this->_new_meta_table, $insertion_array, $datatypes);
266
+		if (! $success) {
267
+			$this->add_error($this->get_migration_script()->_create_error_message_for_db_insertion($this->_old_table, $old_venue, $this->_new_meta_table, $insertion_array, $datatypes));
268
+			return 0;
269
+		}
270
+		return $wpdb->insert_id;
271
+	}
272 272
 }
Please login to merge, or discard this patch.
Spacing   +51 added lines, -51 removed lines patch added patch discarded remove patch
@@ -73,12 +73,12 @@  discard block
 block discarded – undo
73 73
         $rows = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$this->_old_table." LIMIT %d,%d", $start_at_record, $num_items), ARRAY_A);
74 74
         $items_actually_migrated = 0;
75 75
         foreach ($rows as $old_venue) {
76
-            if (! $new_id = $this->_insert_into_posts($old_venue)) {
76
+            if ( ! $new_id = $this->_insert_into_posts($old_venue)) {
77 77
                 $items_actually_migrated++;
78 78
                 continue;
79 79
             }
80 80
             $this->get_migration_script()->set_mapping($this->_old_table, $old_venue['id'], $this->_new_table, $new_id);
81
-            if (! $new_meta_id = $this->_insert_into_meta_table($new_id, $old_venue)) {
81
+            if ( ! $new_meta_id = $this->_insert_into_meta_table($new_id, $old_venue)) {
82 82
                 $items_actually_migrated++;
83 83
                 continue;
84 84
             }
@@ -132,39 +132,39 @@  discard block
 block discarded – undo
132 132
         $meta = maybe_unserialize($old_venue['meta']);
133 133
         $slug = $this->_find_unique_slug($old_venue['name'], $old_venue['identifier']);
134 134
         $insertion_array = array(
135
-                    'post_title'=>stripslashes($old_venue['name']),// VNU_name
136
-                    'post_content'=>isset($meta['description']) ? stripslashes(strip_tags($meta['description'])) : '',// VNU_desc
137
-                    'post_name'=> $slug,// VNU_identifier
138
-                    'post_date'=>current_time('mysql'),// VNU_created
135
+                    'post_title'=>stripslashes($old_venue['name']), // VNU_name
136
+                    'post_content'=>isset($meta['description']) ? stripslashes(strip_tags($meta['description'])) : '', // VNU_desc
137
+                    'post_name'=> $slug, // VNU_identifier
138
+                    'post_date'=>current_time('mysql'), // VNU_created
139 139
                     'post_date_gmt'=>  current_time('mysql', true),
140
-                    'post_excerpt'=>'',// wp_trim_words($meta['description'] ? $meta['description'] : '',50),//VNU_short_desc arbitraty only 50 characters
141
-                    'post_modified'=>current_time('mysql'),// VNU_modified
140
+                    'post_excerpt'=>'', // wp_trim_words($meta['description'] ? $meta['description'] : '',50),//VNU_short_desc arbitraty only 50 characters
141
+                    'post_modified'=>current_time('mysql'), // VNU_modified
142 142
                     'post_modified_gmt'=>current_time('mysql', true),
143
-                    'post_author'=>$old_venue['wp_user'],// VNU_wp_user
144
-                    'post_parent'=>0,// parent
145
-                    'menu_order'=>0,// VNU_order
143
+                    'post_author'=>$old_venue['wp_user'], // VNU_wp_user
144
+                    'post_parent'=>0, // parent
145
+                    'menu_order'=>0, // VNU_order
146 146
                     'post_type'=>'espresso_venues'// post_type
147 147
                 );
148 148
         $datatypes_array = array(
149
-                    '%s',// VNU_name
150
-                    '%s',// VNU_desc
151
-                    '%s',// VNU_identifier
152
-                    '%s',// VNU_created
149
+                    '%s', // VNU_name
150
+                    '%s', // VNU_desc
151
+                    '%s', // VNU_identifier
152
+                    '%s', // VNU_created
153 153
                     '%s',
154
-                    '%s',// VNU_short_desc
155
-                    '%s',// VNU_modified
154
+                    '%s', // VNU_short_desc
155
+                    '%s', // VNU_modified
156 156
                     '%s',
157
-                    '%d',// VNU_wp_user
158
-                    '%d',// parent
159
-                    '%d',// VNU_order
160
-                    '%s',// post_type
157
+                    '%d', // VNU_wp_user
158
+                    '%d', // parent
159
+                    '%d', // VNU_order
160
+                    '%s', // post_type
161 161
                 );
162 162
         $success = $wpdb->insert(
163 163
             $this->_new_table,
164 164
             $insertion_array,
165 165
             $datatypes_array
166 166
         );
167
-        if (! $success) {
167
+        if ( ! $success) {
168 168
             $this->add_error($this->get_migration_script()->_create_error_message_for_db_insertion($this->_old_table, $old_venue, $this->_new_table, $insertion_array, $datatypes_array));
169 169
             return 0;
170 170
         }
@@ -183,7 +183,7 @@  discard block
 block discarded – undo
183 183
         $count = 0;
184 184
         $original_name = $post_name ? sanitize_title($post_name) : $old_identifier;
185 185
         $event_slug = $original_name;
186
-        while ($this->_other_post_exists_with_that_slug($event_slug) && $count<50) {
186
+        while ($this->_other_post_exists_with_that_slug($event_slug) && $count < 50) {
187 187
             $event_slug = sanitize_title($original_name."-".++$count);
188 188
         }
189 189
         return $event_slug;
@@ -231,39 +231,39 @@  discard block
 block discarded – undo
231 231
         $meta = maybe_unserialize($old_venue['meta']);
232 232
         // now insert into meta table
233 233
         $insertion_array = array(
234
-            'VNU_ID'=>$cpt_id,// VNU_ID_fk
235
-            'VNU_address'=>stripslashes($old_venue['address']),// VNU_address
236
-            'VNU_address2'=>stripslashes($old_venue['address2']),// VNU_address2
237
-            'VNU_city'=>stripslashes($old_venue['city']),// VNU_city
238
-            'STA_ID'=>$state_id,// STA_ID
239
-            'CNT_ISO'=>$country_iso,// CNT_ISO
240
-            'VNU_zip'=>stripslashes($old_venue['zip']),// VNU_zip
241
-            'VNU_phone'=>isset($meta['phone']) ? stripslashes($meta['phone']) : '',// VNU_phone
242
-            'VNU_capacity'=>-1,// VNU_capacity
243
-            'VNU_url'=>isset($meta['website']) ? stripslashes($meta['website']) : '',// VNU_url
244
-            'VNU_virtual_phone'=>'',// VNU_virtual_phone
245
-            'VNU_virtual_url'=>'',// VNU_virtual_url
246
-            'VNU_google_map_link'=>'',// VNU_google_map_link
234
+            'VNU_ID'=>$cpt_id, // VNU_ID_fk
235
+            'VNU_address'=>stripslashes($old_venue['address']), // VNU_address
236
+            'VNU_address2'=>stripslashes($old_venue['address2']), // VNU_address2
237
+            'VNU_city'=>stripslashes($old_venue['city']), // VNU_city
238
+            'STA_ID'=>$state_id, // STA_ID
239
+            'CNT_ISO'=>$country_iso, // CNT_ISO
240
+            'VNU_zip'=>stripslashes($old_venue['zip']), // VNU_zip
241
+            'VNU_phone'=>isset($meta['phone']) ? stripslashes($meta['phone']) : '', // VNU_phone
242
+            'VNU_capacity'=>-1, // VNU_capacity
243
+            'VNU_url'=>isset($meta['website']) ? stripslashes($meta['website']) : '', // VNU_url
244
+            'VNU_virtual_phone'=>'', // VNU_virtual_phone
245
+            'VNU_virtual_url'=>'', // VNU_virtual_url
246
+            'VNU_google_map_link'=>'', // VNU_google_map_link
247 247
             'VNU_enable_for_gmap'=>true // VNU_enable_for_gmap
248 248
         );
249 249
         $datatypes = array(
250
-            '%d',// VNU_ID_fk
251
-            '%s',// VNU_address
252
-            '%s',// VNU_address2
253
-            '%s',// VNU_city
254
-            '%d',// STA_ID
255
-            '%s',// CNT_ISO
256
-            '%s',// VNU_zip
257
-            '%s',// VNU_phone
258
-            '%d',// VNU_capacity
259
-            '%s',// VNU_url
260
-            '%s',// VNU_virtual_phone
261
-            '%s',// VNU_virtual_url
262
-            '%s',// VNU_google_map_link
263
-            '%d',// VNU_enable_for_gmap
250
+            '%d', // VNU_ID_fk
251
+            '%s', // VNU_address
252
+            '%s', // VNU_address2
253
+            '%s', // VNU_city
254
+            '%d', // STA_ID
255
+            '%s', // CNT_ISO
256
+            '%s', // VNU_zip
257
+            '%s', // VNU_phone
258
+            '%d', // VNU_capacity
259
+            '%s', // VNU_url
260
+            '%s', // VNU_virtual_phone
261
+            '%s', // VNU_virtual_url
262
+            '%s', // VNU_google_map_link
263
+            '%d', // VNU_enable_for_gmap
264 264
         );
265 265
         $success = $wpdb->insert($this->_new_meta_table, $insertion_array, $datatypes);
266
-        if (! $success) {
266
+        if ( ! $success) {
267 267
             $this->add_error($this->get_migration_script()->_create_error_message_for_db_insertion($this->_old_table, $old_venue, $this->_new_meta_table, $insertion_array, $datatypes));
268 268
             return 0;
269 269
         }
Please login to merge, or discard this patch.
4_6_0_stages/EE_DMS_4_6_0_payment_method_currencies.dmsstage.php 3 patches
Doc Comments   +3 added lines, -2 removed lines patch added patch discarded remove patch
@@ -128,6 +128,9 @@  discard block
 block discarded – undo
128 128
         return $items_actually_migrated;
129 129
     }
130 130
 
131
+    /**
132
+     * @param integer $num_items_to_migrate
133
+     */
131 134
     private function _gather_relations_to_add($num_items_to_migrate)
132 135
     {
133 136
         $relations_to_add_this_step = array();
@@ -160,8 +163,6 @@  discard block
 block discarded – undo
160 163
 
161 164
     /**
162 165
      * Adds teh relation between the payment method and the currencies it can be used for
163
-     * @param int $id
164
-     * @param string $gateway_slug
165 166
      */
166 167
     private function _add_currency_relations($pm_id, $currency_code)
167 168
     {
Please login to merge, or discard this patch.
Indentation   +164 added lines, -164 removed lines patch added patch discarded remove patch
@@ -12,174 +12,174 @@
 block discarded – undo
12 12
  */
13 13
 class EE_DMS_4_6_0_payment_method_currencies extends EE_Data_Migration_Script_Stage
14 14
 {
15
-    protected $_currency_table_name;
16
-    protected $_currency_payment_method_table_name;
17
-    protected $_payment_method_table_name;
18
-    /**
19
-     * each key is the name of a 4.1-style gateway we know how to migrate to 4.6
20
-     * @var array
21
-     */
22
-    protected $_gateway_currencies = array(
23
-        'Aim' => array(
24
-            'AUD',
25
-            'USD',
26
-            'CAD',
27
-            'EUR',
28
-            'GBP',
29
-            'NZD',
30
-        ),
31
-        'Bank' => 'all',
32
-        'Check' => 'all',
33
-        'Invoice' => 'all',
34
-        'Mijireh' => 'all',
35
-        'Paypal_Pro' => array(
36
-            'USD',
37
-            'GBP',
38
-            'CAD',
39
-            'AUD',
40
-            'BRL',
41
-            'CHF',
42
-            'CZK',
43
-            'DKK',
44
-            'EUR',
45
-            'HKD',
46
-            'HUF',
47
-            'ILS',
48
-            'JPY',
49
-            'MXN',
50
-            'MYR',
51
-            'NOK',
52
-            'NZD',
53
-            'PHP',
54
-            'PLN',
55
-            'SEK',
56
-            'SGD',
57
-            'THB',
58
-            'TRY',
59
-            'TWD',
60
-        ),
61
-        'Paypal_Standard' => array(
62
-            'USD',
63
-            'GBP',
64
-            'CAD',
65
-            'AUD',
66
-            'BRL',
67
-            'CHF',
68
-            'CZK',
69
-            'DKK',
70
-            'EUR',
71
-            'HKD',
72
-            'HUF',
73
-            'ILS',
74
-            'JPY',
75
-            'MXN',
76
-            'MYR',
77
-            'NOK',
78
-            'NZD',
79
-            'PHP',
80
-            'PLN',
81
-            'SEK',
82
-            'SGD',
83
-            'THB',
84
-            'TRY',
85
-            'TWD'
86
-        )
87
-    );
88
-    public function __construct()
89
-    {
90
-        global $wpdb;
91
-        $this->_pretty_name = __('Payment Method Currencies', 'event_espresso');
92
-        $this->_payment_method_table_name = $wpdb->prefix.'esp_payment_method';
93
-        $this->_currency_payment_method_table_name = $wpdb->prefix.'esp_currency_payment_method';
94
-        $this->_currency_table_name = $wpdb->prefix.'esp_currency';
95
-        parent::__construct();
96
-    }
15
+	protected $_currency_table_name;
16
+	protected $_currency_payment_method_table_name;
17
+	protected $_payment_method_table_name;
18
+	/**
19
+	 * each key is the name of a 4.1-style gateway we know how to migrate to 4.6
20
+	 * @var array
21
+	 */
22
+	protected $_gateway_currencies = array(
23
+		'Aim' => array(
24
+			'AUD',
25
+			'USD',
26
+			'CAD',
27
+			'EUR',
28
+			'GBP',
29
+			'NZD',
30
+		),
31
+		'Bank' => 'all',
32
+		'Check' => 'all',
33
+		'Invoice' => 'all',
34
+		'Mijireh' => 'all',
35
+		'Paypal_Pro' => array(
36
+			'USD',
37
+			'GBP',
38
+			'CAD',
39
+			'AUD',
40
+			'BRL',
41
+			'CHF',
42
+			'CZK',
43
+			'DKK',
44
+			'EUR',
45
+			'HKD',
46
+			'HUF',
47
+			'ILS',
48
+			'JPY',
49
+			'MXN',
50
+			'MYR',
51
+			'NOK',
52
+			'NZD',
53
+			'PHP',
54
+			'PLN',
55
+			'SEK',
56
+			'SGD',
57
+			'THB',
58
+			'TRY',
59
+			'TWD',
60
+		),
61
+		'Paypal_Standard' => array(
62
+			'USD',
63
+			'GBP',
64
+			'CAD',
65
+			'AUD',
66
+			'BRL',
67
+			'CHF',
68
+			'CZK',
69
+			'DKK',
70
+			'EUR',
71
+			'HKD',
72
+			'HUF',
73
+			'ILS',
74
+			'JPY',
75
+			'MXN',
76
+			'MYR',
77
+			'NOK',
78
+			'NZD',
79
+			'PHP',
80
+			'PLN',
81
+			'SEK',
82
+			'SGD',
83
+			'THB',
84
+			'TRY',
85
+			'TWD'
86
+		)
87
+	);
88
+	public function __construct()
89
+	{
90
+		global $wpdb;
91
+		$this->_pretty_name = __('Payment Method Currencies', 'event_espresso');
92
+		$this->_payment_method_table_name = $wpdb->prefix.'esp_payment_method';
93
+		$this->_currency_payment_method_table_name = $wpdb->prefix.'esp_currency_payment_method';
94
+		$this->_currency_table_name = $wpdb->prefix.'esp_currency';
95
+		parent::__construct();
96
+	}
97 97
 
98
-    protected function _count_records_to_migrate()
99
-    {
100
-        $count = 0;
101
-        foreach ($this->_gateway_currencies as $currencies) {
102
-            if ($currencies == 'all') {
103
-                $currencies = $this->_get_all_currencies();
104
-            }
105
-            $count += count($currencies);
106
-        }
107
-        return $count;
108
-    }
98
+	protected function _count_records_to_migrate()
99
+	{
100
+		$count = 0;
101
+		foreach ($this->_gateway_currencies as $currencies) {
102
+			if ($currencies == 'all') {
103
+				$currencies = $this->_get_all_currencies();
104
+			}
105
+			$count += count($currencies);
106
+		}
107
+		return $count;
108
+	}
109 109
 
110 110
 
111 111
 
112
-    protected function _migration_step($num_items_to_migrate = 50)
113
-    {
114
-        $items_actually_migrated = 0;
115
-        $relations_to_add_this_step = $this->_gather_relations_to_add($num_items_to_migrate);
116
-        foreach ($relations_to_add_this_step as $pm_slug => $currencies) {
117
-            $id = $this->get_migration_script()->get_mapping_new_pk('EE_Gateway_Config', $pm_slug, $this->_payment_method_table_name);
118
-            foreach ($currencies as $currency) {
119
-                if ($id) {
120
-                    $this->_add_currency_relations($id, $currency);
121
-                }
122
-                $items_actually_migrated++;
123
-            }
124
-        }
125
-        if ($this->count_records_migrated() + $items_actually_migrated >= $this->count_records_to_migrate()) {
126
-            $this->set_completed();
127
-        }
128
-        return $items_actually_migrated;
129
-    }
112
+	protected function _migration_step($num_items_to_migrate = 50)
113
+	{
114
+		$items_actually_migrated = 0;
115
+		$relations_to_add_this_step = $this->_gather_relations_to_add($num_items_to_migrate);
116
+		foreach ($relations_to_add_this_step as $pm_slug => $currencies) {
117
+			$id = $this->get_migration_script()->get_mapping_new_pk('EE_Gateway_Config', $pm_slug, $this->_payment_method_table_name);
118
+			foreach ($currencies as $currency) {
119
+				if ($id) {
120
+					$this->_add_currency_relations($id, $currency);
121
+				}
122
+				$items_actually_migrated++;
123
+			}
124
+		}
125
+		if ($this->count_records_migrated() + $items_actually_migrated >= $this->count_records_to_migrate()) {
126
+			$this->set_completed();
127
+		}
128
+		return $items_actually_migrated;
129
+	}
130 130
 
131
-    private function _gather_relations_to_add($num_items_to_migrate)
132
-    {
133
-        $relations_to_add_this_step = array();
134
-        $migrate_up_to_count = $this->count_records_migrated() + $num_items_to_migrate;
135
-        $iterator = 0;
136
-        foreach ($this->_gateway_currencies as $pm_slug => $currencies) {
137
-            if ($currencies == 'all') {
138
-                $currencies = $this->_get_all_currencies();
139
-            }
140
-            foreach ($currencies as $currency_code) {
141
-                if ($this->count_records_migrated() <= $iterator &&
142
-                        $iterator < $migrate_up_to_count ) {
143
-                    $relations_to_add_this_step[ $pm_slug ] [] = $currency_code;
144
-                }
145
-                $iterator++;
146
-            }
147
-        }
148
-        return $relations_to_add_this_step;
149
-    }
150
-    /**
151
-     * Gets all the currency codes in the database
152
-     * @return array
153
-     */
154
-    private function _get_all_currencies()
155
-    {
156
-        global $wpdb;
157
-        $currencies = $wpdb->get_col("SELECT CUR_code FROM {$this->_currency_table_name}");
158
-        return $currencies;
159
-    }
131
+	private function _gather_relations_to_add($num_items_to_migrate)
132
+	{
133
+		$relations_to_add_this_step = array();
134
+		$migrate_up_to_count = $this->count_records_migrated() + $num_items_to_migrate;
135
+		$iterator = 0;
136
+		foreach ($this->_gateway_currencies as $pm_slug => $currencies) {
137
+			if ($currencies == 'all') {
138
+				$currencies = $this->_get_all_currencies();
139
+			}
140
+			foreach ($currencies as $currency_code) {
141
+				if ($this->count_records_migrated() <= $iterator &&
142
+						$iterator < $migrate_up_to_count ) {
143
+					$relations_to_add_this_step[ $pm_slug ] [] = $currency_code;
144
+				}
145
+				$iterator++;
146
+			}
147
+		}
148
+		return $relations_to_add_this_step;
149
+	}
150
+	/**
151
+	 * Gets all the currency codes in the database
152
+	 * @return array
153
+	 */
154
+	private function _get_all_currencies()
155
+	{
156
+		global $wpdb;
157
+		$currencies = $wpdb->get_col("SELECT CUR_code FROM {$this->_currency_table_name}");
158
+		return $currencies;
159
+	}
160 160
 
161
-    /**
162
-     * Adds teh relation between the payment method and the currencies it can be used for
163
-     * @param int $id
164
-     * @param string $gateway_slug
165
-     */
166
-    private function _add_currency_relations($pm_id, $currency_code)
167
-    {
168
-        global $wpdb;
169
-        $cur_pm_relation = array(
170
-                    'CUR_code'=>$currency_code,
171
-                    'PMD_ID'=>$pm_id,
172
-                );
173
-        $success = $wpdb->insert(
174
-            $this->_currency_payment_method_table_name,
175
-            $cur_pm_relation,
176
-            array(
177
-                    '%s',// CUR_code
178
-                    '%d',// PMD_ID
179
-                )
180
-        );
181
-        if (! $success) {
182
-            $this->add_error(sprintf(__('Could not add currency relation %s because %s', "event_espresso"), wp_json_encode($cur_pm_relation), $wpdb->last_error));
183
-        }
184
-    }
161
+	/**
162
+	 * Adds teh relation between the payment method and the currencies it can be used for
163
+	 * @param int $id
164
+	 * @param string $gateway_slug
165
+	 */
166
+	private function _add_currency_relations($pm_id, $currency_code)
167
+	{
168
+		global $wpdb;
169
+		$cur_pm_relation = array(
170
+					'CUR_code'=>$currency_code,
171
+					'PMD_ID'=>$pm_id,
172
+				);
173
+		$success = $wpdb->insert(
174
+			$this->_currency_payment_method_table_name,
175
+			$cur_pm_relation,
176
+			array(
177
+					'%s',// CUR_code
178
+					'%d',// PMD_ID
179
+				)
180
+		);
181
+		if (! $success) {
182
+			$this->add_error(sprintf(__('Could not add currency relation %s because %s', "event_espresso"), wp_json_encode($cur_pm_relation), $wpdb->last_error));
183
+		}
184
+	}
185 185
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -139,8 +139,8 @@  discard block
 block discarded – undo
139 139
             }
140 140
             foreach ($currencies as $currency_code) {
141 141
                 if ($this->count_records_migrated() <= $iterator &&
142
-                        $iterator < $migrate_up_to_count ) {
143
-                    $relations_to_add_this_step[ $pm_slug ] [] = $currency_code;
142
+                        $iterator < $migrate_up_to_count) {
143
+                    $relations_to_add_this_step[$pm_slug] [] = $currency_code;
144 144
                 }
145 145
                 $iterator++;
146 146
             }
@@ -174,11 +174,11 @@  discard block
 block discarded – undo
174 174
             $this->_currency_payment_method_table_name,
175 175
             $cur_pm_relation,
176 176
             array(
177
-                    '%s',// CUR_code
178
-                    '%d',// PMD_ID
177
+                    '%s', // CUR_code
178
+                    '%d', // PMD_ID
179 179
                 )
180 180
         );
181
-        if (! $success) {
181
+        if ( ! $success) {
182 182
             $this->add_error(sprintf(__('Could not add currency relation %s because %s', "event_espresso"), wp_json_encode($cur_pm_relation), $wpdb->last_error));
183 183
         }
184 184
     }
Please login to merge, or discard this patch.
core/data_migration_scripts/4_6_0_stages/EE_DMS_4_6_0_payments.dmsstage.php 3 patches
Doc Comments   -1 removed lines patch added patch discarded remove patch
@@ -58,7 +58,6 @@
 block discarded – undo
58 58
             'IV'=>  __("Invoice", 'event_espresso'),
59 59
             'MO'=>  __("Money Order", 'event_espresso'),
60 60
      * @global type $wpdb
61
-     * @param int $id
62 61
      * @return string
63 62
      */
64 63
     protected function _get_payment_method_id_by_gateway_name($gateway_name, $old_pay_method_column)
Please login to merge, or discard this patch.
Indentation   +78 added lines, -78 removed lines patch added patch discarded remove patch
@@ -11,44 +11,44 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class EE_DMS_4_6_0_payments extends EE_Data_Migration_Script_Stage_Table
13 13
 {
14
-    protected $_payment_method_table;
15
-    public function __construct()
16
-    {
17
-        global $wpdb;
18
-        $this->_old_table = $wpdb->prefix . 'esp_payment';
19
-        $this->_payment_method_table = $wpdb->prefix . 'esp_payment_method';
20
-        $this->_pretty_name = __('Payment-Payment Method Relations', 'event_espresso');
21
-        parent::__construct();
22
-    }
23
-    protected function _migrate_old_row($payment_row)
24
-    {
25
-        global $wpdb;
26
-        // get the payment method's ID
27
-        $PMD_ID = apply_filters('FHEE__EE_DMS_4_6_0_payments__migrate_old_row__PMD_ID', $this->_get_payment_method_id_by_gateway_name($payment_row['PAY_gateway'], $payment_row['PAY_method']));
28
-        if (! $PMD_ID) {
29
-            $this->add_error(sprintf(__('Could not find payment method with PMD_type = \'%1$s\' when migrating payment row %2$s so just assigned it an unknown payment method', 'event_espresso'), $payment_row['PAY_gateway'], $this->_json_encode($payment_row)));
30
-            $PMD_ID = 0;
31
-        }
32
-        $new_values = array(
33
-            'PMD_ID' => $PMD_ID,
34
-            'PAY_source' => ( $payment_row['PAY_via_admin'] ? 'ADMIN' : 'CART' ) );
35
-        $wheres = array( 'PAY_ID' => $payment_row['PAY_ID'] );
36
-        $new_value_datatypes = array( '%d', '%s' );
37
-        $where_datatypes = array( '%d' );
38
-        $success = $wpdb->update(
39
-            $this->_old_table,
40
-            $new_values,
41
-            $wheres,
42
-            $new_value_datatypes,
43
-            $where_datatypes
44
-        );
45
-        if (! $success) {
46
-            $this->add_error(sprintf(__('Couldnt set %1$s row in table %2$s where %3$s', 'event_espresso'), $this->_json_encode($new_values), $this->_old_table, $this->_json_encode($wheres)));
47
-        }
48
-    }
49
-    /**
50
-     *
51
-     *  array(
14
+	protected $_payment_method_table;
15
+	public function __construct()
16
+	{
17
+		global $wpdb;
18
+		$this->_old_table = $wpdb->prefix . 'esp_payment';
19
+		$this->_payment_method_table = $wpdb->prefix . 'esp_payment_method';
20
+		$this->_pretty_name = __('Payment-Payment Method Relations', 'event_espresso');
21
+		parent::__construct();
22
+	}
23
+	protected function _migrate_old_row($payment_row)
24
+	{
25
+		global $wpdb;
26
+		// get the payment method's ID
27
+		$PMD_ID = apply_filters('FHEE__EE_DMS_4_6_0_payments__migrate_old_row__PMD_ID', $this->_get_payment_method_id_by_gateway_name($payment_row['PAY_gateway'], $payment_row['PAY_method']));
28
+		if (! $PMD_ID) {
29
+			$this->add_error(sprintf(__('Could not find payment method with PMD_type = \'%1$s\' when migrating payment row %2$s so just assigned it an unknown payment method', 'event_espresso'), $payment_row['PAY_gateway'], $this->_json_encode($payment_row)));
30
+			$PMD_ID = 0;
31
+		}
32
+		$new_values = array(
33
+			'PMD_ID' => $PMD_ID,
34
+			'PAY_source' => ( $payment_row['PAY_via_admin'] ? 'ADMIN' : 'CART' ) );
35
+		$wheres = array( 'PAY_ID' => $payment_row['PAY_ID'] );
36
+		$new_value_datatypes = array( '%d', '%s' );
37
+		$where_datatypes = array( '%d' );
38
+		$success = $wpdb->update(
39
+			$this->_old_table,
40
+			$new_values,
41
+			$wheres,
42
+			$new_value_datatypes,
43
+			$where_datatypes
44
+		);
45
+		if (! $success) {
46
+			$this->add_error(sprintf(__('Couldnt set %1$s row in table %2$s where %3$s', 'event_espresso'), $this->_json_encode($new_values), $this->_old_table, $this->_json_encode($wheres)));
47
+		}
48
+	}
49
+	/**
50
+	 *
51
+	 *  array(
52 52
             'PP' => __( 'PayPal', 'event_espresso' ),
53 53
             'CC' => __( 'Credit Card', 'event_espresso' ),
54 54
             'DB'=>  __("Debit Card", 'event_espresso'),
@@ -57,44 +57,44 @@  discard block
 block discarded – undo
57 57
             'BK'=>  __("Bank", 'event_espresso'),
58 58
             'IV'=>  __("Invoice", 'event_espresso'),
59 59
             'MO'=>  __("Money Order", 'event_espresso'),
60
-     * @global type $wpdb
61
-     * @param int $id
62
-     * @return string
63
-     */
64
-    protected function _get_payment_method_id_by_gateway_name($gateway_name, $old_pay_method_column)
65
-    {
66
-        global $wpdb;
67
-        // convert from old known PAY_method values to their corresponding
68
-        // PMD_type or default PMD_name
69
-        switch ($old_pay_method_column) {
70
-            case 'PP':
71
-                $pmd_type = 'Paypal_Standard';
72
-                break;
73
-            case 'CC':
74
-                $pmd_type = 'Credit_Card';
75
-                break;
76
-            case 'DB':
77
-                $pmd_type = 'Debit_Card';
78
-                break;
79
-            case 'CHQ':
80
-                $pmd_type = 'Check';
81
-                break;
82
-            case 'CSH':
83
-                $pmd_type = 'Cash';
84
-                break;
85
-            case 'BK':
86
-                $pmd_type = 'Bank';
87
-                break;
88
-            case 'IV':
89
-                $pmd_type = 'Invoice';
90
-                break;
91
-            case 'MO':
92
-                $pmd_type = 'Money_Order';
93
-                break;
94
-            default:
95
-                $pmd_type = $gateway_name;
96
-        }
97
-        $pmd_name = str_replace("_", " ", $pmd_type);
98
-        return $wpdb->get_var($wpdb->prepare("SELECT PMD_ID FROM " . $wpdb->prefix . "esp_payment_method WHERE PMD_type = %s OR PMD_name = %s", $pmd_type, $pmd_name));
99
-    }
60
+	 * @global type $wpdb
61
+	 * @param int $id
62
+	 * @return string
63
+	 */
64
+	protected function _get_payment_method_id_by_gateway_name($gateway_name, $old_pay_method_column)
65
+	{
66
+		global $wpdb;
67
+		// convert from old known PAY_method values to their corresponding
68
+		// PMD_type or default PMD_name
69
+		switch ($old_pay_method_column) {
70
+			case 'PP':
71
+				$pmd_type = 'Paypal_Standard';
72
+				break;
73
+			case 'CC':
74
+				$pmd_type = 'Credit_Card';
75
+				break;
76
+			case 'DB':
77
+				$pmd_type = 'Debit_Card';
78
+				break;
79
+			case 'CHQ':
80
+				$pmd_type = 'Check';
81
+				break;
82
+			case 'CSH':
83
+				$pmd_type = 'Cash';
84
+				break;
85
+			case 'BK':
86
+				$pmd_type = 'Bank';
87
+				break;
88
+			case 'IV':
89
+				$pmd_type = 'Invoice';
90
+				break;
91
+			case 'MO':
92
+				$pmd_type = 'Money_Order';
93
+				break;
94
+			default:
95
+				$pmd_type = $gateway_name;
96
+		}
97
+		$pmd_name = str_replace("_", " ", $pmd_type);
98
+		return $wpdb->get_var($wpdb->prepare("SELECT PMD_ID FROM " . $wpdb->prefix . "esp_payment_method WHERE PMD_type = %s OR PMD_name = %s", $pmd_type, $pmd_name));
99
+	}
100 100
 }
Please login to merge, or discard this patch.
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -15,8 +15,8 @@  discard block
 block discarded – undo
15 15
     public function __construct()
16 16
     {
17 17
         global $wpdb;
18
-        $this->_old_table = $wpdb->prefix . 'esp_payment';
19
-        $this->_payment_method_table = $wpdb->prefix . 'esp_payment_method';
18
+        $this->_old_table = $wpdb->prefix.'esp_payment';
19
+        $this->_payment_method_table = $wpdb->prefix.'esp_payment_method';
20 20
         $this->_pretty_name = __('Payment-Payment Method Relations', 'event_espresso');
21 21
         parent::__construct();
22 22
     }
@@ -25,16 +25,16 @@  discard block
 block discarded – undo
25 25
         global $wpdb;
26 26
         // get the payment method's ID
27 27
         $PMD_ID = apply_filters('FHEE__EE_DMS_4_6_0_payments__migrate_old_row__PMD_ID', $this->_get_payment_method_id_by_gateway_name($payment_row['PAY_gateway'], $payment_row['PAY_method']));
28
-        if (! $PMD_ID) {
28
+        if ( ! $PMD_ID) {
29 29
             $this->add_error(sprintf(__('Could not find payment method with PMD_type = \'%1$s\' when migrating payment row %2$s so just assigned it an unknown payment method', 'event_espresso'), $payment_row['PAY_gateway'], $this->_json_encode($payment_row)));
30 30
             $PMD_ID = 0;
31 31
         }
32 32
         $new_values = array(
33 33
             'PMD_ID' => $PMD_ID,
34
-            'PAY_source' => ( $payment_row['PAY_via_admin'] ? 'ADMIN' : 'CART' ) );
35
-        $wheres = array( 'PAY_ID' => $payment_row['PAY_ID'] );
36
-        $new_value_datatypes = array( '%d', '%s' );
37
-        $where_datatypes = array( '%d' );
34
+            'PAY_source' => ($payment_row['PAY_via_admin'] ? 'ADMIN' : 'CART') );
35
+        $wheres = array('PAY_ID' => $payment_row['PAY_ID']);
36
+        $new_value_datatypes = array('%d', '%s');
37
+        $where_datatypes = array('%d');
38 38
         $success = $wpdb->update(
39 39
             $this->_old_table,
40 40
             $new_values,
@@ -42,7 +42,7 @@  discard block
 block discarded – undo
42 42
             $new_value_datatypes,
43 43
             $where_datatypes
44 44
         );
45
-        if (! $success) {
45
+        if ( ! $success) {
46 46
             $this->add_error(sprintf(__('Couldnt set %1$s row in table %2$s where %3$s', 'event_espresso'), $this->_json_encode($new_values), $this->_old_table, $this->_json_encode($wheres)));
47 47
         }
48 48
     }
@@ -95,6 +95,6 @@  discard block
 block discarded – undo
95 95
                 $pmd_type = $gateway_name;
96 96
         }
97 97
         $pmd_name = str_replace("_", " ", $pmd_type);
98
-        return $wpdb->get_var($wpdb->prepare("SELECT PMD_ID FROM " . $wpdb->prefix . "esp_payment_method WHERE PMD_type = %s OR PMD_name = %s", $pmd_type, $pmd_name));
98
+        return $wpdb->get_var($wpdb->prepare("SELECT PMD_ID FROM ".$wpdb->prefix."esp_payment_method WHERE PMD_type = %s OR PMD_name = %s", $pmd_type, $pmd_name));
99 99
     }
100 100
 }
Please login to merge, or discard this patch.
data_migration_scripts/4_6_0_stages/EE_DMS_4_6_0_transactions.dmsstage.php 3 patches
Doc Comments   -1 removed lines patch added patch discarded remove patch
@@ -50,7 +50,6 @@
 block discarded – undo
50 50
     /**
51 51
      *
52 52
      * @global type $wpdb
53
-     * @param int $id
54 53
      * @return string
55 54
      */
56 55
     protected function _get_payment_method_id_by_gateway_name($gateway_name)
Please login to merge, or discard this patch.
Indentation   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -11,51 +11,51 @@
 block discarded – undo
11 11
  */
12 12
 class EE_DMS_4_6_0_transactions extends EE_Data_Migration_Script_Stage_Table
13 13
 {
14
-    protected $_transaction_table;
15
-    protected $_payment_method_table;
16
-    public function __construct()
17
-    {
18
-        global $wpdb;
19
-        $this->_old_table = $wpdb->prefix . 'esp_extra_meta';
20
-        $this->_transaction_table = $wpdb->prefix . 'esp_transaction';
21
-        $this->_payment_method_table = $wpdb->prefix . 'esp_payment_method';
22
-        $this->_pretty_name = __('Transaction Payment Method Relations', 'event_espresso');
23
-        $this->_extra_where_sql = "WHERE EXM_key = 'gateway' AND EXM_type = 'Transaction'";
24
-        parent::__construct();
25
-    }
26
-    protected function _migrate_old_row($extra_meta_row)
27
-    {
28
-        global $wpdb;
29
-        // get the payment method's ID
30
-        $PMD_ID = $this->_get_payment_method_id_by_gateway_name($extra_meta_row['EXM_value']);
31
-        if (! $PMD_ID) {
32
-            $this->add_error(sprintf(__('Could not find payment method with PMD_type = \'%1$s\' when migrating extra meta row %2$s', 'event_espresso'), $extra_meta_row['EXM_value'], $this->_json_encode($extra_meta_row)));
33
-            return;
34
-        }
35
-        $new_values = array( 'PMD_ID' => $PMD_ID );
36
-        $wheres = array( 'TXN_ID' => $extra_meta_row['OBJ_ID'] );
37
-        $new_value_datatypes = array( '%d' );
38
-        $where_datatypes = array( '%d' );
39
-        $success = $wpdb->update(
40
-            $this->_transaction_table,
41
-            $new_values,
42
-            $wheres,
43
-            $new_value_datatypes,
44
-            $where_datatypes
45
-        );
46
-        if (! $success) {
47
-            $this->add_error(sprintf(__('Couldnt set %1$s row in table %2$s where %3$s', 'event_espresso'), $this->_json_encode($new_values), $this->_transaction_table, $this->_json_encode($wheres)));
48
-        }
49
-    }
50
-    /**
51
-     *
52
-     * @global type $wpdb
53
-     * @param int $id
54
-     * @return string
55
-     */
56
-    protected function _get_payment_method_id_by_gateway_name($gateway_name)
57
-    {
58
-        global $wpdb;
59
-        return $wpdb->get_var($wpdb->prepare("SELECT PMD_ID FROM " . $wpdb->prefix . "esp_payment_method WHERE PMD_type = %s", $gateway_name));
60
-    }
14
+	protected $_transaction_table;
15
+	protected $_payment_method_table;
16
+	public function __construct()
17
+	{
18
+		global $wpdb;
19
+		$this->_old_table = $wpdb->prefix . 'esp_extra_meta';
20
+		$this->_transaction_table = $wpdb->prefix . 'esp_transaction';
21
+		$this->_payment_method_table = $wpdb->prefix . 'esp_payment_method';
22
+		$this->_pretty_name = __('Transaction Payment Method Relations', 'event_espresso');
23
+		$this->_extra_where_sql = "WHERE EXM_key = 'gateway' AND EXM_type = 'Transaction'";
24
+		parent::__construct();
25
+	}
26
+	protected function _migrate_old_row($extra_meta_row)
27
+	{
28
+		global $wpdb;
29
+		// get the payment method's ID
30
+		$PMD_ID = $this->_get_payment_method_id_by_gateway_name($extra_meta_row['EXM_value']);
31
+		if (! $PMD_ID) {
32
+			$this->add_error(sprintf(__('Could not find payment method with PMD_type = \'%1$s\' when migrating extra meta row %2$s', 'event_espresso'), $extra_meta_row['EXM_value'], $this->_json_encode($extra_meta_row)));
33
+			return;
34
+		}
35
+		$new_values = array( 'PMD_ID' => $PMD_ID );
36
+		$wheres = array( 'TXN_ID' => $extra_meta_row['OBJ_ID'] );
37
+		$new_value_datatypes = array( '%d' );
38
+		$where_datatypes = array( '%d' );
39
+		$success = $wpdb->update(
40
+			$this->_transaction_table,
41
+			$new_values,
42
+			$wheres,
43
+			$new_value_datatypes,
44
+			$where_datatypes
45
+		);
46
+		if (! $success) {
47
+			$this->add_error(sprintf(__('Couldnt set %1$s row in table %2$s where %3$s', 'event_espresso'), $this->_json_encode($new_values), $this->_transaction_table, $this->_json_encode($wheres)));
48
+		}
49
+	}
50
+	/**
51
+	 *
52
+	 * @global type $wpdb
53
+	 * @param int $id
54
+	 * @return string
55
+	 */
56
+	protected function _get_payment_method_id_by_gateway_name($gateway_name)
57
+	{
58
+		global $wpdb;
59
+		return $wpdb->get_var($wpdb->prepare("SELECT PMD_ID FROM " . $wpdb->prefix . "esp_payment_method WHERE PMD_type = %s", $gateway_name));
60
+	}
61 61
 }
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -16,9 +16,9 @@  discard block
 block discarded – undo
16 16
     public function __construct()
17 17
     {
18 18
         global $wpdb;
19
-        $this->_old_table = $wpdb->prefix . 'esp_extra_meta';
20
-        $this->_transaction_table = $wpdb->prefix . 'esp_transaction';
21
-        $this->_payment_method_table = $wpdb->prefix . 'esp_payment_method';
19
+        $this->_old_table = $wpdb->prefix.'esp_extra_meta';
20
+        $this->_transaction_table = $wpdb->prefix.'esp_transaction';
21
+        $this->_payment_method_table = $wpdb->prefix.'esp_payment_method';
22 22
         $this->_pretty_name = __('Transaction Payment Method Relations', 'event_espresso');
23 23
         $this->_extra_where_sql = "WHERE EXM_key = 'gateway' AND EXM_type = 'Transaction'";
24 24
         parent::__construct();
@@ -28,14 +28,14 @@  discard block
 block discarded – undo
28 28
         global $wpdb;
29 29
         // get the payment method's ID
30 30
         $PMD_ID = $this->_get_payment_method_id_by_gateway_name($extra_meta_row['EXM_value']);
31
-        if (! $PMD_ID) {
31
+        if ( ! $PMD_ID) {
32 32
             $this->add_error(sprintf(__('Could not find payment method with PMD_type = \'%1$s\' when migrating extra meta row %2$s', 'event_espresso'), $extra_meta_row['EXM_value'], $this->_json_encode($extra_meta_row)));
33 33
             return;
34 34
         }
35
-        $new_values = array( 'PMD_ID' => $PMD_ID );
36
-        $wheres = array( 'TXN_ID' => $extra_meta_row['OBJ_ID'] );
37
-        $new_value_datatypes = array( '%d' );
38
-        $where_datatypes = array( '%d' );
35
+        $new_values = array('PMD_ID' => $PMD_ID);
36
+        $wheres = array('TXN_ID' => $extra_meta_row['OBJ_ID']);
37
+        $new_value_datatypes = array('%d');
38
+        $where_datatypes = array('%d');
39 39
         $success = $wpdb->update(
40 40
             $this->_transaction_table,
41 41
             $new_values,
@@ -43,7 +43,7 @@  discard block
 block discarded – undo
43 43
             $new_value_datatypes,
44 44
             $where_datatypes
45 45
         );
46
-        if (! $success) {
46
+        if ( ! $success) {
47 47
             $this->add_error(sprintf(__('Couldnt set %1$s row in table %2$s where %3$s', 'event_espresso'), $this->_json_encode($new_values), $this->_transaction_table, $this->_json_encode($wheres)));
48 48
         }
49 49
     }
@@ -56,6 +56,6 @@  discard block
 block discarded – undo
56 56
     protected function _get_payment_method_id_by_gateway_name($gateway_name)
57 57
     {
58 58
         global $wpdb;
59
-        return $wpdb->get_var($wpdb->prepare("SELECT PMD_ID FROM " . $wpdb->prefix . "esp_payment_method WHERE PMD_type = %s", $gateway_name));
59
+        return $wpdb->get_var($wpdb->prepare("SELECT PMD_ID FROM ".$wpdb->prefix."esp_payment_method WHERE PMD_type = %s", $gateway_name));
60 60
     }
61 61
 }
Please login to merge, or discard this patch.
core/data_migration_scripts/EE_Data_Migration_Class_Base.core.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -325,7 +325,7 @@
 block discarded – undo
325 325
      * @param array  $old_row_as_array
326 326
      * @param string $new_table
327 327
      * @param array  $new_row_as_array columns=>values like used in wpdb->insert
328
-     * @param array  $data_types       numerically indexed
328
+     * @param string[]  $data_types       numerically indexed
329 329
      * @return string
330 330
      */
331 331
     protected function _create_error_message_for_db_insertion(
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -185,7 +185,7 @@  discard block
 block discarded – undo
185 185
      */
186 186
     public function add_error($error, $force = false)
187 187
     {
188
-        if (! defined('EE_DMS_ERROR_LIMIT')) {
188
+        if ( ! defined('EE_DMS_ERROR_LIMIT')) {
189 189
             $limit = 50;
190 190
         } else {
191 191
             $limit = EE_DMS_ERROR_LIMIT;
@@ -201,7 +201,7 @@  discard block
 block discarded – undo
201 201
                 $this->_errors[] = "Limit reached; removed first half of errors to save space";
202 202
                 $this->_errors[] = $error;
203 203
             } else {
204
-                $this->_errors[ $limit ] = 'More, but limit reached...';
204
+                $this->_errors[$limit] = 'More, but limit reached...';
205 205
             }
206 206
         } else {
207 207
             $this->_errors[] = $error;
@@ -343,7 +343,7 @@  discard block
 block discarded – undo
343 343
         $new_columns_and_values_for_string = array();
344 344
         $count = 0;
345 345
         foreach ($new_row_as_array as $column => $value) {
346
-            $new_columns_and_values_for_string[] = " $column => $value (" . $data_types[ $count++ ] . ")";
346
+            $new_columns_and_values_for_string[] = " $column => $value (".$data_types[$count++].")";
347 347
         }
348 348
         return sprintf(
349 349
             __(
@@ -374,7 +374,7 @@  discard block
 block discarded – undo
374 374
         foreach ($array_of_data as $name => $value) {
375 375
             $unserialized_data = @unserialize($value);
376 376
             if ($unserialized_data === false) {
377
-                $fields_to_include[ $name ] = $value;
377
+                $fields_to_include[$name] = $value;
378 378
             }
379 379
         }
380 380
         return wp_json_encode($fields_to_include);
Please login to merge, or discard this patch.
Indentation   +404 added lines, -404 removed lines patch added patch discarded remove patch
@@ -17,408 +17,408 @@
 block discarded – undo
17 17
 abstract class EE_Data_Migration_Class_Base
18 18
 {
19 19
 
20
-    /**
21
-     * @var $records_to_migrate int count of all that have been migrated
22
-     */
23
-    protected $_records_to_migrate = 0;
24
-
25
-    /**
26
-     *
27
-     * @var $records_migrated int
28
-     */
29
-    protected $_records_migrated = 0;
30
-
31
-    /**
32
-     * Whether this migration script is done or not. This COULD be deduced by
33
-     * _records_to_migrate and _records_migrated, but that might nto be accurate
34
-     *
35
-     * @var string one of EE_Data_migration_Manager::status_* constants
36
-     */
37
-    protected $_status = null;
38
-
39
-    /**
40
-     * internationalized name of this class. Convention is to NOT restate that
41
-     * this class if a migration script or a migration script stage
42
-     *
43
-     * @var string (i18ned)
44
-     */
45
-    protected $_pretty_name = null;
46
-
47
-    /**
48
-     * @var array
49
-     */
50
-    protected $_errors = array();
51
-
52
-    /**
53
-     * @var \EventEspresso\core\services\database\TableManager $table_manager
54
-     */
55
-    protected $_table_manager;
56
-
57
-    /**
58
-     * @var \EventEspresso\core\services\database\TableAnalysis $table_analysis
59
-     */
60
-    protected $_table_analysis;
61
-
62
-
63
-    /**
64
-     * Just initializes the status of the migration
65
-     *
66
-     * @param TableManager  $table_manager
67
-     * @param TableAnalysis $table_analysis
68
-     */
69
-    public function __construct(TableManager $table_manager = null, TableAnalysis $table_analysis = null)
70
-    {
71
-        $this->_table_manager = $table_manager;
72
-        $this->_table_analysis = $table_analysis;
73
-        $this->set_status(EE_Data_Migration_Manager::status_continue);
74
-    }
75
-
76
-
77
-    /**
78
-     * Just gets the pretty name for this migration script or stage
79
-     *
80
-     * @throws EE_Error
81
-     * @return string
82
-     */
83
-    public function pretty_name()
84
-    {
85
-        if ($this->_pretty_name === null) {
86
-            throw new EE_Error(
87
-                sprintf(
88
-                    __(
89
-                        "Please give a pretty name to the migration script stage %s by assigning the property _pretty_name in the constructor",
90
-                        "event_espresso"
91
-                    ),
92
-                    get_class($this)
93
-                )
94
-            );
95
-        }
96
-        return $this->_pretty_name;
97
-    }
98
-
99
-    /**
100
-     *
101
-     * @return int
102
-     */
103
-    public function count_records_to_migrate()
104
-    {
105
-        if ($this->_records_to_migrate == null) {
106
-            $this->_records_to_migrate = $this->_count_records_to_migrate();
107
-        }
108
-        return $this->_records_to_migrate;
109
-    }
110
-
111
-    /**
112
-     * Counts records already migrated. This should only be implemented by EE_Data_Migration_Script_base and
113
-     * EE_Data_migration_Script_Stage
114
-     *
115
-     * @return int
116
-     */
117
-    abstract public function count_records_migrated();
118
-
119
-    /**
120
-     * Counts the records to migrate; the public version may cache it
121
-     *
122
-     * @return int
123
-     */
124
-    abstract protected function _count_records_to_migrate();
125
-
126
-    /**
127
-     * Returns a string indicating the migration script's status.
128
-     *
129
-     * @return string one of EE_Data_Migration_Manager::status_* constants
130
-     * @throws EE_Error
131
-     */
132
-    public function get_status()
133
-    {
134
-        if ($this->_status === null) {
135
-            throw new EE_Error(
136
-                sprintf(
137
-                    __(
138
-                        "Trying to get status of Migration class %s, but it has not been initialized yet. It should be set in the constructor.",
139
-                        "event_espresso"
140
-                    ),
141
-                    get_class($this)
142
-                )
143
-            );
144
-        }
145
-        return $this->_status;
146
-    }
147
-
148
-    /**
149
-     *
150
-     * @param string $status
151
-     * @return void
152
-     */
153
-    protected function set_status($status)
154
-    {
155
-        $this->_status = $status;
156
-    }
157
-
158
-    /**
159
-     * @return array of strings
160
-     */
161
-    abstract public function get_errors();
162
-
163
-    /**
164
-     * Returns the last error that occurred. If none occurred, returns null
165
-     *
166
-     * @return string
167
-     */
168
-    public function get_last_error()
169
-    {
170
-        $errors = $this->get_errors();
171
-        if ($errors) {
172
-            return end($errors);
173
-        } else {
174
-            return null;
175
-        }
176
-    }
177
-
178
-    /**
179
-     * Adds an error to the array of errors on this class.
180
-     *
181
-     * @param string  $error a string describing the error that will be useful for debugging. Consider including all
182
-     *                       the data that led to the error, and a stack trace etc.
183
-     * @param boolean $force force the error to be added (because otherwise we have a limit). If forcing and errors are
184
-     *                       already at their limit, we will purposefully forget the first half
185
-     */
186
-    public function add_error($error, $force = false)
187
-    {
188
-        if (! defined('EE_DMS_ERROR_LIMIT')) {
189
-            $limit = 50;
190
-        } else {
191
-            $limit = EE_DMS_ERROR_LIMIT;
192
-        }
193
-        // make sure errors is an array, see ticket #8261
194
-        if (is_string($this->_errors)) {
195
-            $this->_errors = array($this->_errors);
196
-        }
197
-        if (count($this->_errors) >= $limit) {
198
-            if ($force) {
199
-                // get rid of the first half of the errors and any above the limit
200
-                $this->_errors = array_slice($this->_errors, $limit / 2, $limit / 2);
201
-                $this->_errors[] = "Limit reached; removed first half of errors to save space";
202
-                $this->_errors[] = $error;
203
-            } else {
204
-                $this->_errors[ $limit ] = 'More, but limit reached...';
205
-            }
206
-        } else {
207
-            $this->_errors[] = $error;
208
-        }
209
-    }
210
-
211
-    /**
212
-     * Indicates there was a fatal error and the migration cannot possibly continue
213
-     *
214
-     * @return boolean
215
-     */
216
-    public function is_broken()
217
-    {
218
-        return $this->get_status() == EE_Data_Migration_Manager::status_fatal_error;
219
-    }
220
-
221
-    /**
222
-     * @deprecated since 4.6.12
223
-     */
224
-    public function is_borked()
225
-    {
226
-        EE_Error::doing_it_wrong(
227
-            'is_borked',
228
-            __(
229
-                'The cheeky "is_borked" method had been replaced with the more proper "is_broken"',
230
-                'event_espresso'
231
-            ),
232
-            '4.6.12'
233
-        );
234
-        return $this->is_broken();
235
-    }
236
-
237
-    /**
238
-     * Sets the status to as having a fatal error
239
-     */
240
-    public function set_broken()
241
-    {
242
-        $this->_status = EE_Data_Migration_Manager::status_fatal_error;
243
-    }
244
-
245
-    /**
246
-     *
247
-     * @deprecated since 4.6.12
248
-     */
249
-    public function set_borked()
250
-    {
251
-        EE_Error::doing_it_wrong(
252
-            'is_borked',
253
-            __(
254
-                'The cheeky "is_borked" method had been replaced with the more proper "is_broken"',
255
-                'event_espresso'
256
-            ),
257
-            '4.6.12'
258
-        );
259
-        return $this->set_broken();
260
-    }
261
-
262
-    /**
263
-     * Checks if this thing believes it is completed
264
-     *
265
-     * @return boolean
266
-     */
267
-    public function is_completed()
268
-    {
269
-        return $this->get_status() == EE_Data_Migration_Manager::status_completed;
270
-    }
271
-
272
-    /**
273
-     * Checks if the current script has more to do or not (ie, if it's status is CONTINUE)
274
-     *
275
-     * @return boolean
276
-     */
277
-    public function has_more_to_do()
278
-    {
279
-        return $this->get_status() == EE_Data_Migration_Manager::status_continue;
280
-    }
281
-
282
-    /**
283
-     * Marks that we believe this migration thing is completed
284
-     */
285
-    public function set_completed()
286
-    {
287
-        $this->_status = EE_Data_Migration_Manager::status_completed;
288
-    }
289
-
290
-    /**
291
-     * Marks that we think this migration class can continue to migrate
292
-     */
293
-    public function reattempt()
294
-    {
295
-        $this->_status = EE_Data_Migration_Manager::status_continue;
296
-        $this->add_error(__('Reattempt migration', 'event_espresso'), true);
297
-    }
298
-
299
-    /**
300
-     * A lot like "__sleep()" magic method in purpose, this is meant for persisting this class'
301
-     * properties to the DB. However, we don't want to use __sleep() because its quite
302
-     * possible that this class is defined when it goes to sleep, but NOT available when it
303
-     * awakes (eg, this class is part of an addon that is deactivated at some point).
304
-     */
305
-    public function properties_as_array()
306
-    {
307
-        $properties = get_object_vars($this);
308
-        $properties['class'] = get_class($this);
309
-        unset($properties['_migration_script']);
310
-        unset($properties['_table_manager']);
311
-        unset($properties['_table_analysis']);
312
-        return $properties;
313
-    }
314
-
315
-    /**
316
-     * Sets all of the properties of this script stage to match what's in the array, which is assumed
317
-     * to have been made from the properties_as_array() function.
318
-     *
319
-     * @param array $array_of_properties like what's produced from properties_as_array() method
320
-     */
321
-    abstract public function instantiate_from_array_of_properties($array_of_properties);
322
-
323
-    /**
324
-     * Convenience method for showing a database insertion error
325
-     *
326
-     * @param string $old_table
327
-     * @param array  $old_row_as_array
328
-     * @param string $new_table
329
-     * @param array  $new_row_as_array columns=>values like used in wpdb->insert
330
-     * @param array  $data_types       numerically indexed
331
-     * @return string
332
-     */
333
-    protected function _create_error_message_for_db_insertion(
334
-        $old_table,
335
-        $old_row_as_array,
336
-        $new_table,
337
-        $new_row_as_array,
338
-        $data_types
339
-    ) {
340
-        global $wpdb;
341
-        $old_columns_and_values_for_string = array();
342
-        foreach ($old_row_as_array as $column => $value) {
343
-            $old_columns_and_values_for_string[] = "$column => $value";
344
-        }
345
-        $new_columns_and_values_for_string = array();
346
-        $count = 0;
347
-        foreach ($new_row_as_array as $column => $value) {
348
-            $new_columns_and_values_for_string[] = " $column => $value (" . $data_types[ $count++ ] . ")";
349
-        }
350
-        return sprintf(
351
-            __(
352
-                'Received error "%6$s" inserting row %5$s %1$s %5$s into table %2$s.%5$s Data used was %5$s %3$s %5$s from table %4$s.',
353
-                'event_espresso'
354
-            ),
355
-            implode(", ", $new_columns_and_values_for_string),
356
-            $new_table,
357
-            implode(", ", $old_columns_and_values_for_string),
358
-            $old_table,
359
-            '<br/>',
360
-            $wpdb->last_error
361
-        );
362
-    }
363
-
364
-
365
-    /**
366
-     * Same as json_encode, just avoids putting
367
-     * serialized arrays into the http build query, as that would
368
-     *
369
-     * @param array $array_of_data
370
-     * @return string
371
-     */
372
-    protected function _json_encode($array_of_data)
373
-    {
374
-        // we'd rather NOT serialize the transaction details
375
-        $fields_to_include = array();
376
-        foreach ($array_of_data as $name => $value) {
377
-            $unserialized_data = @unserialize($value);
378
-            if ($unserialized_data === false) {
379
-                $fields_to_include[ $name ] = $value;
380
-            }
381
-        }
382
-        return wp_json_encode($fields_to_include);
383
-    }
384
-
385
-    /**
386
-     * Gets the table manager (or throws an exception if it cannot be retrieved)
387
-     *
388
-     * @return TableManager
389
-     * @throws EE_Error
390
-     */
391
-    protected function _get_table_manager()
392
-    {
393
-        if ($this->_table_manager instanceof TableManager) {
394
-            return $this->_table_manager;
395
-        } else {
396
-            throw new EE_Error(
397
-                sprintf(
398
-                    __('Table manager on migration class %1$s is not set properly.', 'event_espresso'),
399
-                    get_class($this)
400
-                )
401
-            );
402
-        }
403
-    }
404
-
405
-    /**
406
-     * Gets the injected table analyzer, or throws an exception
407
-     *
408
-     * @return TableAnalysis
409
-     * @throws EE_Error
410
-     */
411
-    protected function _get_table_analysis()
412
-    {
413
-        if ($this->_table_analysis instanceof TableAnalysis) {
414
-            return $this->_table_analysis;
415
-        } else {
416
-            throw new EE_Error(
417
-                sprintf(
418
-                    __('Table analysis class on migration class %1$s is not set properly.', 'event_espresso'),
419
-                    get_class($this)
420
-                )
421
-            );
422
-        }
423
-    }
20
+	/**
21
+	 * @var $records_to_migrate int count of all that have been migrated
22
+	 */
23
+	protected $_records_to_migrate = 0;
24
+
25
+	/**
26
+	 *
27
+	 * @var $records_migrated int
28
+	 */
29
+	protected $_records_migrated = 0;
30
+
31
+	/**
32
+	 * Whether this migration script is done or not. This COULD be deduced by
33
+	 * _records_to_migrate and _records_migrated, but that might nto be accurate
34
+	 *
35
+	 * @var string one of EE_Data_migration_Manager::status_* constants
36
+	 */
37
+	protected $_status = null;
38
+
39
+	/**
40
+	 * internationalized name of this class. Convention is to NOT restate that
41
+	 * this class if a migration script or a migration script stage
42
+	 *
43
+	 * @var string (i18ned)
44
+	 */
45
+	protected $_pretty_name = null;
46
+
47
+	/**
48
+	 * @var array
49
+	 */
50
+	protected $_errors = array();
51
+
52
+	/**
53
+	 * @var \EventEspresso\core\services\database\TableManager $table_manager
54
+	 */
55
+	protected $_table_manager;
56
+
57
+	/**
58
+	 * @var \EventEspresso\core\services\database\TableAnalysis $table_analysis
59
+	 */
60
+	protected $_table_analysis;
61
+
62
+
63
+	/**
64
+	 * Just initializes the status of the migration
65
+	 *
66
+	 * @param TableManager  $table_manager
67
+	 * @param TableAnalysis $table_analysis
68
+	 */
69
+	public function __construct(TableManager $table_manager = null, TableAnalysis $table_analysis = null)
70
+	{
71
+		$this->_table_manager = $table_manager;
72
+		$this->_table_analysis = $table_analysis;
73
+		$this->set_status(EE_Data_Migration_Manager::status_continue);
74
+	}
75
+
76
+
77
+	/**
78
+	 * Just gets the pretty name for this migration script or stage
79
+	 *
80
+	 * @throws EE_Error
81
+	 * @return string
82
+	 */
83
+	public function pretty_name()
84
+	{
85
+		if ($this->_pretty_name === null) {
86
+			throw new EE_Error(
87
+				sprintf(
88
+					__(
89
+						"Please give a pretty name to the migration script stage %s by assigning the property _pretty_name in the constructor",
90
+						"event_espresso"
91
+					),
92
+					get_class($this)
93
+				)
94
+			);
95
+		}
96
+		return $this->_pretty_name;
97
+	}
98
+
99
+	/**
100
+	 *
101
+	 * @return int
102
+	 */
103
+	public function count_records_to_migrate()
104
+	{
105
+		if ($this->_records_to_migrate == null) {
106
+			$this->_records_to_migrate = $this->_count_records_to_migrate();
107
+		}
108
+		return $this->_records_to_migrate;
109
+	}
110
+
111
+	/**
112
+	 * Counts records already migrated. This should only be implemented by EE_Data_Migration_Script_base and
113
+	 * EE_Data_migration_Script_Stage
114
+	 *
115
+	 * @return int
116
+	 */
117
+	abstract public function count_records_migrated();
118
+
119
+	/**
120
+	 * Counts the records to migrate; the public version may cache it
121
+	 *
122
+	 * @return int
123
+	 */
124
+	abstract protected function _count_records_to_migrate();
125
+
126
+	/**
127
+	 * Returns a string indicating the migration script's status.
128
+	 *
129
+	 * @return string one of EE_Data_Migration_Manager::status_* constants
130
+	 * @throws EE_Error
131
+	 */
132
+	public function get_status()
133
+	{
134
+		if ($this->_status === null) {
135
+			throw new EE_Error(
136
+				sprintf(
137
+					__(
138
+						"Trying to get status of Migration class %s, but it has not been initialized yet. It should be set in the constructor.",
139
+						"event_espresso"
140
+					),
141
+					get_class($this)
142
+				)
143
+			);
144
+		}
145
+		return $this->_status;
146
+	}
147
+
148
+	/**
149
+	 *
150
+	 * @param string $status
151
+	 * @return void
152
+	 */
153
+	protected function set_status($status)
154
+	{
155
+		$this->_status = $status;
156
+	}
157
+
158
+	/**
159
+	 * @return array of strings
160
+	 */
161
+	abstract public function get_errors();
162
+
163
+	/**
164
+	 * Returns the last error that occurred. If none occurred, returns null
165
+	 *
166
+	 * @return string
167
+	 */
168
+	public function get_last_error()
169
+	{
170
+		$errors = $this->get_errors();
171
+		if ($errors) {
172
+			return end($errors);
173
+		} else {
174
+			return null;
175
+		}
176
+	}
177
+
178
+	/**
179
+	 * Adds an error to the array of errors on this class.
180
+	 *
181
+	 * @param string  $error a string describing the error that will be useful for debugging. Consider including all
182
+	 *                       the data that led to the error, and a stack trace etc.
183
+	 * @param boolean $force force the error to be added (because otherwise we have a limit). If forcing and errors are
184
+	 *                       already at their limit, we will purposefully forget the first half
185
+	 */
186
+	public function add_error($error, $force = false)
187
+	{
188
+		if (! defined('EE_DMS_ERROR_LIMIT')) {
189
+			$limit = 50;
190
+		} else {
191
+			$limit = EE_DMS_ERROR_LIMIT;
192
+		}
193
+		// make sure errors is an array, see ticket #8261
194
+		if (is_string($this->_errors)) {
195
+			$this->_errors = array($this->_errors);
196
+		}
197
+		if (count($this->_errors) >= $limit) {
198
+			if ($force) {
199
+				// get rid of the first half of the errors and any above the limit
200
+				$this->_errors = array_slice($this->_errors, $limit / 2, $limit / 2);
201
+				$this->_errors[] = "Limit reached; removed first half of errors to save space";
202
+				$this->_errors[] = $error;
203
+			} else {
204
+				$this->_errors[ $limit ] = 'More, but limit reached...';
205
+			}
206
+		} else {
207
+			$this->_errors[] = $error;
208
+		}
209
+	}
210
+
211
+	/**
212
+	 * Indicates there was a fatal error and the migration cannot possibly continue
213
+	 *
214
+	 * @return boolean
215
+	 */
216
+	public function is_broken()
217
+	{
218
+		return $this->get_status() == EE_Data_Migration_Manager::status_fatal_error;
219
+	}
220
+
221
+	/**
222
+	 * @deprecated since 4.6.12
223
+	 */
224
+	public function is_borked()
225
+	{
226
+		EE_Error::doing_it_wrong(
227
+			'is_borked',
228
+			__(
229
+				'The cheeky "is_borked" method had been replaced with the more proper "is_broken"',
230
+				'event_espresso'
231
+			),
232
+			'4.6.12'
233
+		);
234
+		return $this->is_broken();
235
+	}
236
+
237
+	/**
238
+	 * Sets the status to as having a fatal error
239
+	 */
240
+	public function set_broken()
241
+	{
242
+		$this->_status = EE_Data_Migration_Manager::status_fatal_error;
243
+	}
244
+
245
+	/**
246
+	 *
247
+	 * @deprecated since 4.6.12
248
+	 */
249
+	public function set_borked()
250
+	{
251
+		EE_Error::doing_it_wrong(
252
+			'is_borked',
253
+			__(
254
+				'The cheeky "is_borked" method had been replaced with the more proper "is_broken"',
255
+				'event_espresso'
256
+			),
257
+			'4.6.12'
258
+		);
259
+		return $this->set_broken();
260
+	}
261
+
262
+	/**
263
+	 * Checks if this thing believes it is completed
264
+	 *
265
+	 * @return boolean
266
+	 */
267
+	public function is_completed()
268
+	{
269
+		return $this->get_status() == EE_Data_Migration_Manager::status_completed;
270
+	}
271
+
272
+	/**
273
+	 * Checks if the current script has more to do or not (ie, if it's status is CONTINUE)
274
+	 *
275
+	 * @return boolean
276
+	 */
277
+	public function has_more_to_do()
278
+	{
279
+		return $this->get_status() == EE_Data_Migration_Manager::status_continue;
280
+	}
281
+
282
+	/**
283
+	 * Marks that we believe this migration thing is completed
284
+	 */
285
+	public function set_completed()
286
+	{
287
+		$this->_status = EE_Data_Migration_Manager::status_completed;
288
+	}
289
+
290
+	/**
291
+	 * Marks that we think this migration class can continue to migrate
292
+	 */
293
+	public function reattempt()
294
+	{
295
+		$this->_status = EE_Data_Migration_Manager::status_continue;
296
+		$this->add_error(__('Reattempt migration', 'event_espresso'), true);
297
+	}
298
+
299
+	/**
300
+	 * A lot like "__sleep()" magic method in purpose, this is meant for persisting this class'
301
+	 * properties to the DB. However, we don't want to use __sleep() because its quite
302
+	 * possible that this class is defined when it goes to sleep, but NOT available when it
303
+	 * awakes (eg, this class is part of an addon that is deactivated at some point).
304
+	 */
305
+	public function properties_as_array()
306
+	{
307
+		$properties = get_object_vars($this);
308
+		$properties['class'] = get_class($this);
309
+		unset($properties['_migration_script']);
310
+		unset($properties['_table_manager']);
311
+		unset($properties['_table_analysis']);
312
+		return $properties;
313
+	}
314
+
315
+	/**
316
+	 * Sets all of the properties of this script stage to match what's in the array, which is assumed
317
+	 * to have been made from the properties_as_array() function.
318
+	 *
319
+	 * @param array $array_of_properties like what's produced from properties_as_array() method
320
+	 */
321
+	abstract public function instantiate_from_array_of_properties($array_of_properties);
322
+
323
+	/**
324
+	 * Convenience method for showing a database insertion error
325
+	 *
326
+	 * @param string $old_table
327
+	 * @param array  $old_row_as_array
328
+	 * @param string $new_table
329
+	 * @param array  $new_row_as_array columns=>values like used in wpdb->insert
330
+	 * @param array  $data_types       numerically indexed
331
+	 * @return string
332
+	 */
333
+	protected function _create_error_message_for_db_insertion(
334
+		$old_table,
335
+		$old_row_as_array,
336
+		$new_table,
337
+		$new_row_as_array,
338
+		$data_types
339
+	) {
340
+		global $wpdb;
341
+		$old_columns_and_values_for_string = array();
342
+		foreach ($old_row_as_array as $column => $value) {
343
+			$old_columns_and_values_for_string[] = "$column => $value";
344
+		}
345
+		$new_columns_and_values_for_string = array();
346
+		$count = 0;
347
+		foreach ($new_row_as_array as $column => $value) {
348
+			$new_columns_and_values_for_string[] = " $column => $value (" . $data_types[ $count++ ] . ")";
349
+		}
350
+		return sprintf(
351
+			__(
352
+				'Received error "%6$s" inserting row %5$s %1$s %5$s into table %2$s.%5$s Data used was %5$s %3$s %5$s from table %4$s.',
353
+				'event_espresso'
354
+			),
355
+			implode(", ", $new_columns_and_values_for_string),
356
+			$new_table,
357
+			implode(", ", $old_columns_and_values_for_string),
358
+			$old_table,
359
+			'<br/>',
360
+			$wpdb->last_error
361
+		);
362
+	}
363
+
364
+
365
+	/**
366
+	 * Same as json_encode, just avoids putting
367
+	 * serialized arrays into the http build query, as that would
368
+	 *
369
+	 * @param array $array_of_data
370
+	 * @return string
371
+	 */
372
+	protected function _json_encode($array_of_data)
373
+	{
374
+		// we'd rather NOT serialize the transaction details
375
+		$fields_to_include = array();
376
+		foreach ($array_of_data as $name => $value) {
377
+			$unserialized_data = @unserialize($value);
378
+			if ($unserialized_data === false) {
379
+				$fields_to_include[ $name ] = $value;
380
+			}
381
+		}
382
+		return wp_json_encode($fields_to_include);
383
+	}
384
+
385
+	/**
386
+	 * Gets the table manager (or throws an exception if it cannot be retrieved)
387
+	 *
388
+	 * @return TableManager
389
+	 * @throws EE_Error
390
+	 */
391
+	protected function _get_table_manager()
392
+	{
393
+		if ($this->_table_manager instanceof TableManager) {
394
+			return $this->_table_manager;
395
+		} else {
396
+			throw new EE_Error(
397
+				sprintf(
398
+					__('Table manager on migration class %1$s is not set properly.', 'event_espresso'),
399
+					get_class($this)
400
+				)
401
+			);
402
+		}
403
+	}
404
+
405
+	/**
406
+	 * Gets the injected table analyzer, or throws an exception
407
+	 *
408
+	 * @return TableAnalysis
409
+	 * @throws EE_Error
410
+	 */
411
+	protected function _get_table_analysis()
412
+	{
413
+		if ($this->_table_analysis instanceof TableAnalysis) {
414
+			return $this->_table_analysis;
415
+		} else {
416
+			throw new EE_Error(
417
+				sprintf(
418
+					__('Table analysis class on migration class %1$s is not set properly.', 'event_espresso'),
419
+					get_class($this)
420
+				)
421
+			);
422
+		}
423
+	}
424 424
 }
Please login to merge, or discard this patch.
core/db_models/EEM_Message_Template_Group.model.php 3 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -84,7 +84,7 @@  discard block
 block discarded – undo
84 84
      * @param        $messenger
85 85
      * @param string $orderby
86 86
      * @param string $order
87
-     * @return array all (including trashed or inactive) message template group objects for the given messenger
87
+     * @return EE_Base_Class[] all (including trashed or inactive) message template group objects for the given messenger
88 88
      */
89 89
     public function get_all_message_templates_by_messenger($messenger, $orderby = 'GRP_ID', $order = 'ASC')
90 90
     {
@@ -341,7 +341,7 @@  discard block
 block discarded – undo
341 341
     /**
342 342
      * This sends things to the validator for the given messenger and message type.
343 343
      *
344
-     * @param  array $fields the incoming fields to check.
344
+     * @param  string $fields the incoming fields to check.
345 345
      *                       Note this array is in the formatted fields from the form fields setup.
346 346
      *                       So we need to reformat this into an array of expected field refs by the validator.
347 347
      *                       Note also that this is not only the fields for the Message Template Group
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -44,7 +44,7 @@  discard block
 block discarded – undo
44 44
             'WP_User' => new EE_Belongs_To_Relation()
45 45
         );
46 46
         foreach ($this->_cap_contexts_to_cap_action_map as $context => $action) {
47
-            $this->_cap_restriction_generators[ $context ] = new EE_Restriction_Generator_Global('MTP_is_global');
47
+            $this->_cap_restriction_generators[$context] = new EE_Restriction_Generator_Global('MTP_is_global');
48 48
         }
49 49
         $this->_caps_slug = 'messages';
50 50
 
@@ -71,7 +71,7 @@  discard block
 block discarded – undo
71 71
         $limit = null,
72 72
         $count = false
73 73
     ) {
74
-        $query_params = array( array('Event.EVT_ID' => $EVT_ID), 'order_by' => array($orderby => $order), 'limit' => $limit );
74
+        $query_params = array(array('Event.EVT_ID' => $EVT_ID), 'order_by' => array($orderby => $order), 'limit' => $limit);
75 75
         return $count ? $this->count_deleted($query_params, 'GRP_ID', true) : $this->get_all_deleted($query_params);
76 76
     }
77 77
 
@@ -89,7 +89,7 @@  discard block
 block discarded – undo
89 89
     public function get_all_message_templates_by_messenger($messenger, $orderby = 'GRP_ID', $order = 'ASC')
90 90
     {
91 91
         return $this->get_all_deleted_and_undeleted(
92
-            array( array( 'MTP_messenger' => $messenger ), 'order_by' => array( $orderby => $order ) )
92
+            array(array('MTP_messenger' => $messenger), 'order_by' => array($orderby => $order))
93 93
         );
94 94
     }
95 95
 
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
             && $_REQUEST['ee_messenger_filter_by'] != 'none_selected'
108 108
             && $_REQUEST['ee_messenger_filter_by'] != 'all'
109 109
         ) {
110
-            $_where['MTP_messenger'] =  $_REQUEST['ee_messenger_filter_by'] ;
110
+            $_where['MTP_messenger'] = $_REQUEST['ee_messenger_filter_by'];
111 111
         }
112 112
 
113 113
         if (isset($_REQUEST['ee_message_type_filter_by'])
@@ -141,7 +141,7 @@  discard block
 block discarded – undo
141 141
         $global = true,
142 142
         $user_check = false
143 143
     ) {
144
-        $_where = $global ? array('MTP_is_global' => true ) : array('MTP_is_global' => false );
144
+        $_where = $global ? array('MTP_is_global' => true) : array('MTP_is_global' => false);
145 145
         $_where['MTP_is_active'] = true;
146 146
         $_where = $this->_maybe_mtp_filters($_where);
147 147
 
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
             $_where['MTP_user_id'] = get_current_user_id();
156 156
         }
157 157
 
158
-        $query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
158
+        $query_params = array($_where, 'order_by' => array($orderby => $order), 'limit' => $limit);
159 159
 
160 160
         return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
161 161
     }
@@ -176,7 +176,7 @@  discard block
 block discarded – undo
176 176
     {
177 177
         $_where = $this->_maybe_mtp_filters();
178 178
 
179
-        $query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
179
+        $query_params = array($_where, 'order_by' => array($orderby => $order), 'limit' => $limit);
180 180
 
181 181
         $r_templates = $count
182 182
             ? $this->count_deleted_and_undeleted($query_params, 'GRP_ID', true)
@@ -196,9 +196,9 @@  discard block
 block discarded – undo
196 196
      */
197 197
     public function get_all_custom_templates_by_event($EVT_ID, $query_params = array())
198 198
     {
199
-        $where = array_merge($query_params, array( 'Event.EVT_ID' => $EVT_ID ));
199
+        $where = array_merge($query_params, array('Event.EVT_ID' => $EVT_ID));
200 200
         return $this->get_all(
201
-            array( $where )
201
+            array($where)
202 202
         );
203 203
     }
204 204
 
@@ -223,11 +223,11 @@  discard block
 block discarded – undo
223 223
         $count = false,
224 224
         $global = true
225 225
     ) {
226
-        $_where = $global ? array('MTP_is_global' => true ) : array('MTP_is_global' => false );
226
+        $_where = $global ? array('MTP_is_global' => true) : array('MTP_is_global' => false);
227 227
         $_where['MTP_is_active'] = true;
228 228
         $_where = $this->_maybe_mtp_filters($_where);
229 229
 
230
-        $query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
230
+        $query_params = array($_where, 'order_by' => array($orderby => $order), 'limit' => $limit);
231 231
 
232 232
         return $count ? $this->count_deleted($query_params, 'GRP_ID', true) : $this->get_all_deleted($query_params);
233 233
     }
@@ -265,7 +265,7 @@  discard block
 block discarded – undo
265 265
             'MTP_is_active' => $active
266 266
         );
267 267
 
268
-        $query_params = array( $_where, 'order_by' => array($orderby=>$order), 'limit' => $limit );
268
+        $query_params = array($_where, 'order_by' => array($orderby=>$order), 'limit' => $limit);
269 269
 
270 270
         return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
271 271
     }
@@ -305,7 +305,7 @@  discard block
 block discarded – undo
305 305
             $_where['MTP_is_active'] = $active;
306 306
         }
307 307
 
308
-        $query_params = array( $_where, 'order_by' => array( $orderby => $order ), 'limit' => $limit );
308
+        $query_params = array($_where, 'order_by' => array($orderby => $order), 'limit' => $limit);
309 309
 
310 310
         return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
311 311
     }
@@ -363,19 +363,19 @@  discard block
 block discarded – undo
363 363
             // first let's figure out if the value['content'] in the current index is an array.
364 364
             //  If it is then this is special fields that are used in parsing special shortcodes (i.e. 'attendee_list').
365 365
             if (is_array($value['content'])) {
366
-                $assembled_fields[ $value['name'] ] = $value['content']['main'];
366
+                $assembled_fields[$value['name']] = $value['content']['main'];
367 367
                 // loop through the content and get the other fields.
368 368
                 foreach ($value['content'] as $name => $val) {
369 369
                     if ($name == 'main') {
370 370
                         continue;
371 371
                     }
372
-                    $assembled_fields[ $name ] = $val;
372
+                    $assembled_fields[$name] = $val;
373 373
                 }
374 374
                 continue;
375 375
             }
376 376
 
377 377
             // okay if we're here then this is just a straight field=>$value arrangement
378
-            $assembled_fields[ $value['name'] ] = $value['content'];
378
+            $assembled_fields[$value['name']] = $value['content'];
379 379
         }
380 380
 
381 381
         // now we've got the assembled_fields.
@@ -385,9 +385,9 @@  discard block
 block discarded – undo
385 385
         $mt_ref = ucwords(str_replace('_', ' ', $message_type));
386 386
         $mt_ref = str_replace(' ', '_', $mt_ref);
387 387
 
388
-        $classname = 'EE_Messages_' . $m_ref . '_' . $mt_ref . '_Validator';
388
+        $classname = 'EE_Messages_'.$m_ref.'_'.$mt_ref.'_Validator';
389 389
 
390
-        if (!class_exists($classname)) {
390
+        if ( ! class_exists($classname)) {
391 391
             $msg[] = __('The Validator class was unable to load', 'event_espresso');
392 392
             $msg[] = sprintf(
393 393
                 __(
@@ -425,12 +425,12 @@  discard block
 block discarded – undo
425 425
         if (empty($messenger_names) && empty($message_type_names)) {
426 426
             return 0;
427 427
         }
428
-        if (! empty($messenger_names)) {
429
-            $query_args[0]['MTP_messenger'] = array( 'IN', (array) $messenger_names );
428
+        if ( ! empty($messenger_names)) {
429
+            $query_args[0]['MTP_messenger'] = array('IN', (array) $messenger_names);
430 430
         }
431
-        if (! empty($message_type_names)) {
432
-            $query_args[0]['MTP_message_type'] = array( 'IN', (array) $message_type_names );
431
+        if ( ! empty($message_type_names)) {
432
+            $query_args[0]['MTP_message_type'] = array('IN', (array) $message_type_names);
433 433
         }
434
-        return $this->update(array( 'MTP_is_active' => false ), $query_args);
434
+        return $this->update(array('MTP_is_active' => false), $query_args);
435 435
     }
436 436
 }
Please login to merge, or discard this patch.
Indentation   +422 added lines, -422 removed lines patch added patch discarded remove patch
@@ -11,426 +11,426 @@
 block discarded – undo
11 11
 class EEM_Message_Template_Group extends EEM_Soft_Delete_Base
12 12
 {
13 13
 
14
-    // private instance of the EEM_Message_Template_Group object
15
-    protected static $_instance = null;
16
-
17
-
18
-
19
-    protected function __construct($timezone = null)
20
-    {
21
-        $this->singular_item = __('Message Template Group', 'event_espresso');
22
-        $this->plural_item = __('Message Template Groups', 'event_espresso');
23
-        $this->_tables = array(
24
-            'Message_Template_Group' => new EE_Primary_Table('esp_message_template_group', 'GRP_ID')
25
-        );
26
-        $this->_fields = array(
27
-            'Message_Template_Group' => array(
28
-                'GRP_ID' => new EE_Primary_Key_Int_Field('GRP_ID', __('Message Template Group ID', 'event_espresso')),
29
-                'MTP_name' => new EE_Plain_Text_Field('MTP_name', __('The name of the template group', 'event_espresso'), false, ''),
30
-                'MTP_description' => new EE_Simple_HTML_Field('MTP_description', __('A brief description about this template.', 'event_espresso'), false, ''),
31
-                'MTP_user_id'=> new EE_WP_User_Field('MTP_user_id', __('Template Creator ID', 'event_espresso'), false, get_current_user_id()),
32
-                'MTP_messenger'=>new EE_Plain_Text_Field('MTP_messenger', __('Messenger Used for Template', 'event_espresso'), false, 'email'),
33
-                'MTP_message_type'=>new EE_Plain_Text_Field('MTP_message_type', __('Message Type', 'event_espresso'), false, 'registration'),
34
-                'MTP_is_global'=>new EE_Boolean_Field('MTP_is_global', __('Flag indicating if Template Group is Global', 'event_espresso'), false, true),
35
-                'MTP_is_override'=>new EE_Boolean_Field('MTP_is_override', __('Flag indicating if Template Group overrides any other Templates for the messenger/messagetype combination', 'event_espresso'), false, false),
36
-                'MTP_deleted'=>new EE_Trashed_Flag_Field('MTP_deleted', __('Flag indicating whether this has been trashed', 'event_espresso'), false, false),
37
-                'MTP_is_active'=>new EE_Boolean_Field('MTP_is_active', __('Flag indicating whether template group is active', 'event_espresso'), false, true)
38
-            )
39
-        );
40
-        $this->_model_relations = array(
41
-            'Message_Template' => new EE_Has_Many_Relation(),
42
-            'Message' => new EE_Has_Many_Relation(),
43
-            'Event' => new EE_HABTM_Relation('Event_Message_Template'),
44
-            'WP_User' => new EE_Belongs_To_Relation()
45
-        );
46
-        foreach ($this->_cap_contexts_to_cap_action_map as $context => $action) {
47
-            $this->_cap_restriction_generators[ $context ] = new EE_Restriction_Generator_Global('MTP_is_global');
48
-        }
49
-        $this->_caps_slug = 'messages';
50
-
51
-        parent::__construct($timezone);
52
-    }
53
-
54
-
55
-
56
-    /**
57
-     * get_all_trashed_message_templates_by_event
58
-     *
59
-     * @access public
60
-     * @param int    $EVT_ID specific event id
61
-     * @param string $orderby
62
-     * @param string $order
63
-     * @param null   $limit
64
-     * @param bool   $count
65
-     * @return array message template objects that are attached to a specific event.
66
-     */
67
-    public function get_all_trashed_message_templates_by_event(
68
-        $EVT_ID,
69
-        $orderby = 'GRP_ID',
70
-        $order = 'ASC',
71
-        $limit = null,
72
-        $count = false
73
-    ) {
74
-        $query_params = array( array('Event.EVT_ID' => $EVT_ID), 'order_by' => array($orderby => $order), 'limit' => $limit );
75
-        return $count ? $this->count_deleted($query_params, 'GRP_ID', true) : $this->get_all_deleted($query_params);
76
-    }
77
-
78
-
79
-
80
-    /**
81
-     * get_all_message_templates_by_messenger
82
-     *
83
-     * @access public
84
-     * @param        $messenger
85
-     * @param string $orderby
86
-     * @param string $order
87
-     * @return array all (including trashed or inactive) message template group objects for the given messenger
88
-     */
89
-    public function get_all_message_templates_by_messenger($messenger, $orderby = 'GRP_ID', $order = 'ASC')
90
-    {
91
-        return $this->get_all_deleted_and_undeleted(
92
-            array( array( 'MTP_messenger' => $messenger ), 'order_by' => array( $orderby => $order ) )
93
-        );
94
-    }
95
-
96
-
97
-
98
-    /**
99
-     * This simply adds on any messenger/message type filters that may be present in the $_POST global
100
-     * @param  array  $_where any existing where conditions to append these to.
101
-     * @return array          original where conditions or original with additional filters.
102
-     */
103
-    protected function _maybe_mtp_filters($_where = array())
104
-    {
105
-        // account for messenger or message type filters
106
-        if (isset($_REQUEST['ee_messenger_filter_by'])
107
-            && $_REQUEST['ee_messenger_filter_by'] != 'none_selected'
108
-            && $_REQUEST['ee_messenger_filter_by'] != 'all'
109
-        ) {
110
-            $_where['MTP_messenger'] =  $_REQUEST['ee_messenger_filter_by'] ;
111
-        }
112
-
113
-        if (isset($_REQUEST['ee_message_type_filter_by'])
114
-            && $_REQUEST['ee_message_type_filter_by'] != 'none_selected'
115
-        ) {
116
-            $_where['MTP_message_type'] = $_REQUEST['ee_message_type_filter_by'];
117
-        }
118
-
119
-        return $_where;
120
-    }
121
-
122
-
123
-
124
-    /**
125
-     * get_all_active_message_templates groups
126
-     *
127
-     * @access public
128
-     * @param string $orderby
129
-     * @param string $order
130
-     * @param null   $limit
131
-     * @param bool   $count
132
-     * @param bool   $global
133
-     * @param bool   $user_check
134
-     * @return array all active (non_trashed, active) message template objects
135
-     */
136
-    public function get_all_active_message_templates(
137
-        $orderby = 'GRP_ID',
138
-        $order = 'ASC',
139
-        $limit = null,
140
-        $count = false,
141
-        $global = true,
142
-        $user_check = false
143
-    ) {
144
-        $_where = $global ? array('MTP_is_global' => true ) : array('MTP_is_global' => false );
145
-        $_where['MTP_is_active'] = true;
146
-        $_where = $this->_maybe_mtp_filters($_where);
147
-
148
-        if ($user_check
149
-            && ! $global
150
-            && ! EE_Registry::instance()->CAP->current_user_can(
151
-                'ee_read_others_messages',
152
-                'get_all_active_message_templates'
153
-            )
154
-        ) {
155
-            $_where['MTP_user_id'] = get_current_user_id();
156
-        }
157
-
158
-        $query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
159
-
160
-        return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
161
-    }
162
-
163
-
164
-
165
-    /**
166
-     *    retrieve ALL message_template groups from db regardless of wht
167
-     *
168
-     * @access    public
169
-     * @param string $orderby
170
-     * @param string $order
171
-     * @param null   $limit
172
-     * @param bool   $count
173
-     * @return mixed array on success, FALSE on fail
174
-     */
175
-    public function get_all_message_templates($orderby = 'GRP_ID', $order = 'ASC', $limit = null, $count = false)
176
-    {
177
-        $_where = $this->_maybe_mtp_filters();
178
-
179
-        $query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
180
-
181
-        $r_templates = $count
182
-            ? $this->count_deleted_and_undeleted($query_params, 'GRP_ID', true)
183
-            : $this->get_all_deleted_and_undeleted($query_params);
184
-
185
-        return $r_templates;
186
-    }
187
-
188
-
189
-
190
-
191
-    /**
192
-     * This gets all the custom templates attached to a specific event
193
-     * @param  int      $EVT_ID         event id
194
-     * @param  array  $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
195
-     * @return  EE_Message_Template_Group[]
196
-     */
197
-    public function get_all_custom_templates_by_event($EVT_ID, $query_params = array())
198
-    {
199
-        $where = array_merge($query_params, array( 'Event.EVT_ID' => $EVT_ID ));
200
-        return $this->get_all(
201
-            array( $where )
202
-        );
203
-    }
204
-
205
-
206
-
207
-    /**
208
-     * get_all_trashed_grouped_message_templates
209
-     * this returns ONLY the template groups where ALL contexts are trashed and none of the group are non-trashed
210
-     *
211
-     * @access public
212
-     * @param string $orderby
213
-     * @param string $order
214
-     * @param null   $limit
215
-     * @param bool   $count
216
-     * @param bool   $global
217
-     * @return \EE_Message_Template_Group[] message template groups.
218
-     */
219
-    public function get_all_trashed_grouped_message_templates(
220
-        $orderby = 'GRP_ID',
221
-        $order = 'ASC',
222
-        $limit = null,
223
-        $count = false,
224
-        $global = true
225
-    ) {
226
-        $_where = $global ? array('MTP_is_global' => true ) : array('MTP_is_global' => false );
227
-        $_where['MTP_is_active'] = true;
228
-        $_where = $this->_maybe_mtp_filters($_where);
229
-
230
-        $query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
231
-
232
-        return $count ? $this->count_deleted($query_params, 'GRP_ID', true) : $this->get_all_deleted($query_params);
233
-    }
234
-
235
-
236
-
237
-    /**
238
-     * this returns the message template group(s) for a given event, messenger, and message template
239
-     *
240
-     * @param  string             $messenger
241
-     * @param  string             $message_type
242
-     * @param                     $evt_id
243
-     * @param  string             $orderby pointless at this point but still included
244
-     * @param  string             $order
245
-     * @param  mixed (array|null) $limit   array($offset, $num)
246
-     * @param  bool               $count   true = just return count, false = objects
247
-     * @param  bool               $active  ignore "active" or not. (default only return active)
248
-     * @return \mixed[]) depending on $count.
249
-     */
250
-    public function get_event_message_templates_by_m_and_mt_and_evt(
251
-        $messenger,
252
-        $message_type,
253
-        $evt_id,
254
-        $orderby = 'GRP_ID',
255
-        $order = 'ASC',
256
-        $limit = null,
257
-        $count = false,
258
-        $active = true
259
-    ) {
260
-        $_where = array(
261
-            'MTP_messenger' => $messenger,
262
-            'MTP_message_type' => $message_type,
263
-            'Event.EVT_ID' => $evt_id,
264
-            'MTP_is_global' => true,
265
-            'MTP_is_active' => $active
266
-        );
267
-
268
-        $query_params = array( $_where, 'order_by' => array($orderby=>$order), 'limit' => $limit );
269
-
270
-        return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
271
-    }
272
-
273
-
274
-
275
-
276
-    /**
277
-     * get all GLOBAL message template groups for the given messenger and message type
278
-     *
279
-     * @param  string $messenger    slug for messenger
280
-     * @param  string $message_type slug for message type
281
-     * @param  string $orderby      what column to orderby
282
-     * @param  string $order        ASC or DESC
283
-     * @param  mixed (array|null) $limit array($offset, $num)
284
-     * @param  bool   $count        true = just return count, false = objects
285
-     * @param  bool   $active       ignore "active" or not. (default only return active) -
286
-     *                              'all' means return both inactive AND inactive.
287
-     * @return array               message template objects that are global (i.e. non-event)
288
-     */
289
-    public function get_global_message_template_by_m_and_mt(
290
-        $messenger,
291
-        $message_type,
292
-        $orderby = 'GRP_ID',
293
-        $order = 'ASC',
294
-        $limit = null,
295
-        $count = false,
296
-        $active = true
297
-    ) {
298
-        $_where = array(
299
-            'MTP_messenger' => $messenger,
300
-            'MTP_message_type' => $message_type,
301
-            'MTP_is_global' => true,
302
-        );
303
-
304
-        if ($active != 'all') {
305
-            $_where['MTP_is_active'] = $active;
306
-        }
307
-
308
-        $query_params = array( $_where, 'order_by' => array( $orderby => $order ), 'limit' => $limit );
309
-
310
-        return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
311
-    }
312
-
313
-
314
-
315
-
316
-    /**
317
-     * get all custom message template groups for the given messenger and message type
318
-     * @param  string $messenger    messenger
319
-     * @param  string $message_type messagetype
320
-     * @param  array  $query_params same as EEM_Base->get_all()
321
-     * @return EE_Message_Template_Group[]
322
-     */
323
-    public function get_custom_message_template_by_m_and_mt($messenger, $message_type, $query_params = array())
324
-    {
325
-        return $this->get_all(
326
-            array_merge(
327
-                $query_params,
328
-                array(
329
-                    array(
330
-                        'MTP_is_global'    => false,
331
-                        'MTP_messenger'    => $messenger,
332
-                        'MTP_message_type' => $message_type
333
-                    )
334
-                )
335
-            )
336
-        );
337
-    }
338
-
339
-
340
-
341
-    /**
342
-     * This sends things to the validator for the given messenger and message type.
343
-     *
344
-     * @param  array $fields the incoming fields to check.
345
-     *                       Note this array is in the formatted fields from the form fields setup.
346
-     *                       So we need to reformat this into an array of expected field refs by the validator.
347
-     *                       Note also that this is not only the fields for the Message Template Group
348
-     *                       but ALSO for Message Template.
349
-     * @param string $context      The context the fields were obtained from.
350
-     * @param string $messenger    The messenger we are validating
351
-     * @param string $message_type The message type we are validating.
352
-     * @return mixed If the fields all check out then we return true otherwise error messages are returned
353
-     *                       (indexed by field name);
354
-     * @throws \EE_Error
355
-     */
356
-    public function validate($fields, $context, $messenger, $message_type)
357
-    {
358
-
359
-        $assembled_fields = array();
360
-
361
-        // let's loop through all the fields and set them up in the right format
362
-        foreach ($fields as $index => $value) {
363
-            // first let's figure out if the value['content'] in the current index is an array.
364
-            //  If it is then this is special fields that are used in parsing special shortcodes (i.e. 'attendee_list').
365
-            if (is_array($value['content'])) {
366
-                $assembled_fields[ $value['name'] ] = $value['content']['main'];
367
-                // loop through the content and get the other fields.
368
-                foreach ($value['content'] as $name => $val) {
369
-                    if ($name == 'main') {
370
-                        continue;
371
-                    }
372
-                    $assembled_fields[ $name ] = $val;
373
-                }
374
-                continue;
375
-            }
376
-
377
-            // okay if we're here then this is just a straight field=>$value arrangement
378
-            $assembled_fields[ $value['name'] ] = $value['content'];
379
-        }
380
-
381
-        // now we've got the assembled_fields.
382
-        // We need to setup the string for the appropriate validator class and call that.
383
-        $m_ref = ucwords(str_replace('_', ' ', $messenger));
384
-        $m_ref = str_replace(' ', '_', $m_ref);
385
-        $mt_ref = ucwords(str_replace('_', ' ', $message_type));
386
-        $mt_ref = str_replace(' ', '_', $mt_ref);
387
-
388
-        $classname = 'EE_Messages_' . $m_ref . '_' . $mt_ref . '_Validator';
389
-
390
-        if (!class_exists($classname)) {
391
-            $msg[] = __('The Validator class was unable to load', 'event_espresso');
392
-            $msg[] = sprintf(
393
-                __(
394
-                    'The class name compiled was %s. Please check and make sure the spelling and case is correct for the class name and that there is an autoloader in place for this class',
395
-                    'event_espresso'
396
-                ),
397
-                $classname
398
-            );
399
-            throw new EE_Error(implode('||', $msg));
400
-        }
401
-
402
-        $a = new ReflectionClass($classname);
403
-        $_VLD = $a->newInstance($assembled_fields, $context);
404
-        $result = $_VLD->validate();
405
-        return $result;
406
-    }
407
-
408
-
409
-
410
-    /**
411
-     * Updates all message template groups matching the incoming arguments to inactive status.
412
-     *
413
-     * @param array $messenger_names    The messenger slugs.
414
-     *                              If empty then all templates matching the message types are marked inactive.
415
-     *                              Otherwise only templates matching the messengers and message types.
416
-     * @param array $message_type_names     The message type slugs.
417
-     *                              If empty then all templates matching the messengers are marked inactive.
418
-     *                              Otherwise only templates matching the messengers and message types.
419
-     *
420
-     * @return int  count of updated records.
421
-     */
422
-    public function deactivate_message_template_groups_for($messenger_names = array(), $message_type_names = array())
423
-    {
424
-        $query_args = array();
425
-        if (empty($messenger_names) && empty($message_type_names)) {
426
-            return 0;
427
-        }
428
-        if (! empty($messenger_names)) {
429
-            $query_args[0]['MTP_messenger'] = array( 'IN', (array) $messenger_names );
430
-        }
431
-        if (! empty($message_type_names)) {
432
-            $query_args[0]['MTP_message_type'] = array( 'IN', (array) $message_type_names );
433
-        }
434
-        return $this->update(array( 'MTP_is_active' => false ), $query_args);
435
-    }
14
+	// private instance of the EEM_Message_Template_Group object
15
+	protected static $_instance = null;
16
+
17
+
18
+
19
+	protected function __construct($timezone = null)
20
+	{
21
+		$this->singular_item = __('Message Template Group', 'event_espresso');
22
+		$this->plural_item = __('Message Template Groups', 'event_espresso');
23
+		$this->_tables = array(
24
+			'Message_Template_Group' => new EE_Primary_Table('esp_message_template_group', 'GRP_ID')
25
+		);
26
+		$this->_fields = array(
27
+			'Message_Template_Group' => array(
28
+				'GRP_ID' => new EE_Primary_Key_Int_Field('GRP_ID', __('Message Template Group ID', 'event_espresso')),
29
+				'MTP_name' => new EE_Plain_Text_Field('MTP_name', __('The name of the template group', 'event_espresso'), false, ''),
30
+				'MTP_description' => new EE_Simple_HTML_Field('MTP_description', __('A brief description about this template.', 'event_espresso'), false, ''),
31
+				'MTP_user_id'=> new EE_WP_User_Field('MTP_user_id', __('Template Creator ID', 'event_espresso'), false, get_current_user_id()),
32
+				'MTP_messenger'=>new EE_Plain_Text_Field('MTP_messenger', __('Messenger Used for Template', 'event_espresso'), false, 'email'),
33
+				'MTP_message_type'=>new EE_Plain_Text_Field('MTP_message_type', __('Message Type', 'event_espresso'), false, 'registration'),
34
+				'MTP_is_global'=>new EE_Boolean_Field('MTP_is_global', __('Flag indicating if Template Group is Global', 'event_espresso'), false, true),
35
+				'MTP_is_override'=>new EE_Boolean_Field('MTP_is_override', __('Flag indicating if Template Group overrides any other Templates for the messenger/messagetype combination', 'event_espresso'), false, false),
36
+				'MTP_deleted'=>new EE_Trashed_Flag_Field('MTP_deleted', __('Flag indicating whether this has been trashed', 'event_espresso'), false, false),
37
+				'MTP_is_active'=>new EE_Boolean_Field('MTP_is_active', __('Flag indicating whether template group is active', 'event_espresso'), false, true)
38
+			)
39
+		);
40
+		$this->_model_relations = array(
41
+			'Message_Template' => new EE_Has_Many_Relation(),
42
+			'Message' => new EE_Has_Many_Relation(),
43
+			'Event' => new EE_HABTM_Relation('Event_Message_Template'),
44
+			'WP_User' => new EE_Belongs_To_Relation()
45
+		);
46
+		foreach ($this->_cap_contexts_to_cap_action_map as $context => $action) {
47
+			$this->_cap_restriction_generators[ $context ] = new EE_Restriction_Generator_Global('MTP_is_global');
48
+		}
49
+		$this->_caps_slug = 'messages';
50
+
51
+		parent::__construct($timezone);
52
+	}
53
+
54
+
55
+
56
+	/**
57
+	 * get_all_trashed_message_templates_by_event
58
+	 *
59
+	 * @access public
60
+	 * @param int    $EVT_ID specific event id
61
+	 * @param string $orderby
62
+	 * @param string $order
63
+	 * @param null   $limit
64
+	 * @param bool   $count
65
+	 * @return array message template objects that are attached to a specific event.
66
+	 */
67
+	public function get_all_trashed_message_templates_by_event(
68
+		$EVT_ID,
69
+		$orderby = 'GRP_ID',
70
+		$order = 'ASC',
71
+		$limit = null,
72
+		$count = false
73
+	) {
74
+		$query_params = array( array('Event.EVT_ID' => $EVT_ID), 'order_by' => array($orderby => $order), 'limit' => $limit );
75
+		return $count ? $this->count_deleted($query_params, 'GRP_ID', true) : $this->get_all_deleted($query_params);
76
+	}
77
+
78
+
79
+
80
+	/**
81
+	 * get_all_message_templates_by_messenger
82
+	 *
83
+	 * @access public
84
+	 * @param        $messenger
85
+	 * @param string $orderby
86
+	 * @param string $order
87
+	 * @return array all (including trashed or inactive) message template group objects for the given messenger
88
+	 */
89
+	public function get_all_message_templates_by_messenger($messenger, $orderby = 'GRP_ID', $order = 'ASC')
90
+	{
91
+		return $this->get_all_deleted_and_undeleted(
92
+			array( array( 'MTP_messenger' => $messenger ), 'order_by' => array( $orderby => $order ) )
93
+		);
94
+	}
95
+
96
+
97
+
98
+	/**
99
+	 * This simply adds on any messenger/message type filters that may be present in the $_POST global
100
+	 * @param  array  $_where any existing where conditions to append these to.
101
+	 * @return array          original where conditions or original with additional filters.
102
+	 */
103
+	protected function _maybe_mtp_filters($_where = array())
104
+	{
105
+		// account for messenger or message type filters
106
+		if (isset($_REQUEST['ee_messenger_filter_by'])
107
+			&& $_REQUEST['ee_messenger_filter_by'] != 'none_selected'
108
+			&& $_REQUEST['ee_messenger_filter_by'] != 'all'
109
+		) {
110
+			$_where['MTP_messenger'] =  $_REQUEST['ee_messenger_filter_by'] ;
111
+		}
112
+
113
+		if (isset($_REQUEST['ee_message_type_filter_by'])
114
+			&& $_REQUEST['ee_message_type_filter_by'] != 'none_selected'
115
+		) {
116
+			$_where['MTP_message_type'] = $_REQUEST['ee_message_type_filter_by'];
117
+		}
118
+
119
+		return $_where;
120
+	}
121
+
122
+
123
+
124
+	/**
125
+	 * get_all_active_message_templates groups
126
+	 *
127
+	 * @access public
128
+	 * @param string $orderby
129
+	 * @param string $order
130
+	 * @param null   $limit
131
+	 * @param bool   $count
132
+	 * @param bool   $global
133
+	 * @param bool   $user_check
134
+	 * @return array all active (non_trashed, active) message template objects
135
+	 */
136
+	public function get_all_active_message_templates(
137
+		$orderby = 'GRP_ID',
138
+		$order = 'ASC',
139
+		$limit = null,
140
+		$count = false,
141
+		$global = true,
142
+		$user_check = false
143
+	) {
144
+		$_where = $global ? array('MTP_is_global' => true ) : array('MTP_is_global' => false );
145
+		$_where['MTP_is_active'] = true;
146
+		$_where = $this->_maybe_mtp_filters($_where);
147
+
148
+		if ($user_check
149
+			&& ! $global
150
+			&& ! EE_Registry::instance()->CAP->current_user_can(
151
+				'ee_read_others_messages',
152
+				'get_all_active_message_templates'
153
+			)
154
+		) {
155
+			$_where['MTP_user_id'] = get_current_user_id();
156
+		}
157
+
158
+		$query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
159
+
160
+		return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
161
+	}
162
+
163
+
164
+
165
+	/**
166
+	 *    retrieve ALL message_template groups from db regardless of wht
167
+	 *
168
+	 * @access    public
169
+	 * @param string $orderby
170
+	 * @param string $order
171
+	 * @param null   $limit
172
+	 * @param bool   $count
173
+	 * @return mixed array on success, FALSE on fail
174
+	 */
175
+	public function get_all_message_templates($orderby = 'GRP_ID', $order = 'ASC', $limit = null, $count = false)
176
+	{
177
+		$_where = $this->_maybe_mtp_filters();
178
+
179
+		$query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
180
+
181
+		$r_templates = $count
182
+			? $this->count_deleted_and_undeleted($query_params, 'GRP_ID', true)
183
+			: $this->get_all_deleted_and_undeleted($query_params);
184
+
185
+		return $r_templates;
186
+	}
187
+
188
+
189
+
190
+
191
+	/**
192
+	 * This gets all the custom templates attached to a specific event
193
+	 * @param  int      $EVT_ID         event id
194
+	 * @param  array  $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
195
+	 * @return  EE_Message_Template_Group[]
196
+	 */
197
+	public function get_all_custom_templates_by_event($EVT_ID, $query_params = array())
198
+	{
199
+		$where = array_merge($query_params, array( 'Event.EVT_ID' => $EVT_ID ));
200
+		return $this->get_all(
201
+			array( $where )
202
+		);
203
+	}
204
+
205
+
206
+
207
+	/**
208
+	 * get_all_trashed_grouped_message_templates
209
+	 * this returns ONLY the template groups where ALL contexts are trashed and none of the group are non-trashed
210
+	 *
211
+	 * @access public
212
+	 * @param string $orderby
213
+	 * @param string $order
214
+	 * @param null   $limit
215
+	 * @param bool   $count
216
+	 * @param bool   $global
217
+	 * @return \EE_Message_Template_Group[] message template groups.
218
+	 */
219
+	public function get_all_trashed_grouped_message_templates(
220
+		$orderby = 'GRP_ID',
221
+		$order = 'ASC',
222
+		$limit = null,
223
+		$count = false,
224
+		$global = true
225
+	) {
226
+		$_where = $global ? array('MTP_is_global' => true ) : array('MTP_is_global' => false );
227
+		$_where['MTP_is_active'] = true;
228
+		$_where = $this->_maybe_mtp_filters($_where);
229
+
230
+		$query_params = array( $_where, 'order_by' => array($orderby => $order), 'limit' => $limit );
231
+
232
+		return $count ? $this->count_deleted($query_params, 'GRP_ID', true) : $this->get_all_deleted($query_params);
233
+	}
234
+
235
+
236
+
237
+	/**
238
+	 * this returns the message template group(s) for a given event, messenger, and message template
239
+	 *
240
+	 * @param  string             $messenger
241
+	 * @param  string             $message_type
242
+	 * @param                     $evt_id
243
+	 * @param  string             $orderby pointless at this point but still included
244
+	 * @param  string             $order
245
+	 * @param  mixed (array|null) $limit   array($offset, $num)
246
+	 * @param  bool               $count   true = just return count, false = objects
247
+	 * @param  bool               $active  ignore "active" or not. (default only return active)
248
+	 * @return \mixed[]) depending on $count.
249
+	 */
250
+	public function get_event_message_templates_by_m_and_mt_and_evt(
251
+		$messenger,
252
+		$message_type,
253
+		$evt_id,
254
+		$orderby = 'GRP_ID',
255
+		$order = 'ASC',
256
+		$limit = null,
257
+		$count = false,
258
+		$active = true
259
+	) {
260
+		$_where = array(
261
+			'MTP_messenger' => $messenger,
262
+			'MTP_message_type' => $message_type,
263
+			'Event.EVT_ID' => $evt_id,
264
+			'MTP_is_global' => true,
265
+			'MTP_is_active' => $active
266
+		);
267
+
268
+		$query_params = array( $_where, 'order_by' => array($orderby=>$order), 'limit' => $limit );
269
+
270
+		return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
271
+	}
272
+
273
+
274
+
275
+
276
+	/**
277
+	 * get all GLOBAL message template groups for the given messenger and message type
278
+	 *
279
+	 * @param  string $messenger    slug for messenger
280
+	 * @param  string $message_type slug for message type
281
+	 * @param  string $orderby      what column to orderby
282
+	 * @param  string $order        ASC or DESC
283
+	 * @param  mixed (array|null) $limit array($offset, $num)
284
+	 * @param  bool   $count        true = just return count, false = objects
285
+	 * @param  bool   $active       ignore "active" or not. (default only return active) -
286
+	 *                              'all' means return both inactive AND inactive.
287
+	 * @return array               message template objects that are global (i.e. non-event)
288
+	 */
289
+	public function get_global_message_template_by_m_and_mt(
290
+		$messenger,
291
+		$message_type,
292
+		$orderby = 'GRP_ID',
293
+		$order = 'ASC',
294
+		$limit = null,
295
+		$count = false,
296
+		$active = true
297
+	) {
298
+		$_where = array(
299
+			'MTP_messenger' => $messenger,
300
+			'MTP_message_type' => $message_type,
301
+			'MTP_is_global' => true,
302
+		);
303
+
304
+		if ($active != 'all') {
305
+			$_where['MTP_is_active'] = $active;
306
+		}
307
+
308
+		$query_params = array( $_where, 'order_by' => array( $orderby => $order ), 'limit' => $limit );
309
+
310
+		return $count ? $this->count($query_params, 'GRP_ID', true) : $this->get_all($query_params);
311
+	}
312
+
313
+
314
+
315
+
316
+	/**
317
+	 * get all custom message template groups for the given messenger and message type
318
+	 * @param  string $messenger    messenger
319
+	 * @param  string $message_type messagetype
320
+	 * @param  array  $query_params same as EEM_Base->get_all()
321
+	 * @return EE_Message_Template_Group[]
322
+	 */
323
+	public function get_custom_message_template_by_m_and_mt($messenger, $message_type, $query_params = array())
324
+	{
325
+		return $this->get_all(
326
+			array_merge(
327
+				$query_params,
328
+				array(
329
+					array(
330
+						'MTP_is_global'    => false,
331
+						'MTP_messenger'    => $messenger,
332
+						'MTP_message_type' => $message_type
333
+					)
334
+				)
335
+			)
336
+		);
337
+	}
338
+
339
+
340
+
341
+	/**
342
+	 * This sends things to the validator for the given messenger and message type.
343
+	 *
344
+	 * @param  array $fields the incoming fields to check.
345
+	 *                       Note this array is in the formatted fields from the form fields setup.
346
+	 *                       So we need to reformat this into an array of expected field refs by the validator.
347
+	 *                       Note also that this is not only the fields for the Message Template Group
348
+	 *                       but ALSO for Message Template.
349
+	 * @param string $context      The context the fields were obtained from.
350
+	 * @param string $messenger    The messenger we are validating
351
+	 * @param string $message_type The message type we are validating.
352
+	 * @return mixed If the fields all check out then we return true otherwise error messages are returned
353
+	 *                       (indexed by field name);
354
+	 * @throws \EE_Error
355
+	 */
356
+	public function validate($fields, $context, $messenger, $message_type)
357
+	{
358
+
359
+		$assembled_fields = array();
360
+
361
+		// let's loop through all the fields and set them up in the right format
362
+		foreach ($fields as $index => $value) {
363
+			// first let's figure out if the value['content'] in the current index is an array.
364
+			//  If it is then this is special fields that are used in parsing special shortcodes (i.e. 'attendee_list').
365
+			if (is_array($value['content'])) {
366
+				$assembled_fields[ $value['name'] ] = $value['content']['main'];
367
+				// loop through the content and get the other fields.
368
+				foreach ($value['content'] as $name => $val) {
369
+					if ($name == 'main') {
370
+						continue;
371
+					}
372
+					$assembled_fields[ $name ] = $val;
373
+				}
374
+				continue;
375
+			}
376
+
377
+			// okay if we're here then this is just a straight field=>$value arrangement
378
+			$assembled_fields[ $value['name'] ] = $value['content'];
379
+		}
380
+
381
+		// now we've got the assembled_fields.
382
+		// We need to setup the string for the appropriate validator class and call that.
383
+		$m_ref = ucwords(str_replace('_', ' ', $messenger));
384
+		$m_ref = str_replace(' ', '_', $m_ref);
385
+		$mt_ref = ucwords(str_replace('_', ' ', $message_type));
386
+		$mt_ref = str_replace(' ', '_', $mt_ref);
387
+
388
+		$classname = 'EE_Messages_' . $m_ref . '_' . $mt_ref . '_Validator';
389
+
390
+		if (!class_exists($classname)) {
391
+			$msg[] = __('The Validator class was unable to load', 'event_espresso');
392
+			$msg[] = sprintf(
393
+				__(
394
+					'The class name compiled was %s. Please check and make sure the spelling and case is correct for the class name and that there is an autoloader in place for this class',
395
+					'event_espresso'
396
+				),
397
+				$classname
398
+			);
399
+			throw new EE_Error(implode('||', $msg));
400
+		}
401
+
402
+		$a = new ReflectionClass($classname);
403
+		$_VLD = $a->newInstance($assembled_fields, $context);
404
+		$result = $_VLD->validate();
405
+		return $result;
406
+	}
407
+
408
+
409
+
410
+	/**
411
+	 * Updates all message template groups matching the incoming arguments to inactive status.
412
+	 *
413
+	 * @param array $messenger_names    The messenger slugs.
414
+	 *                              If empty then all templates matching the message types are marked inactive.
415
+	 *                              Otherwise only templates matching the messengers and message types.
416
+	 * @param array $message_type_names     The message type slugs.
417
+	 *                              If empty then all templates matching the messengers are marked inactive.
418
+	 *                              Otherwise only templates matching the messengers and message types.
419
+	 *
420
+	 * @return int  count of updated records.
421
+	 */
422
+	public function deactivate_message_template_groups_for($messenger_names = array(), $message_type_names = array())
423
+	{
424
+		$query_args = array();
425
+		if (empty($messenger_names) && empty($message_type_names)) {
426
+			return 0;
427
+		}
428
+		if (! empty($messenger_names)) {
429
+			$query_args[0]['MTP_messenger'] = array( 'IN', (array) $messenger_names );
430
+		}
431
+		if (! empty($message_type_names)) {
432
+			$query_args[0]['MTP_message_type'] = array( 'IN', (array) $message_type_names );
433
+		}
434
+		return $this->update(array( 'MTP_is_active' => false ), $query_args);
435
+	}
436 436
 }
Please login to merge, or discard this patch.
core/db_models/EEM_Payment_Method.model.php 3 patches
Doc Comments   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -214,7 +214,7 @@  discard block
 block discarded – undo
214 214
     /**
215 215
      * Overrides parent ot also check by the slug
216 216
      * @see EEM_Base::ensure_is_obj()
217
-     * @param string|int|EE_Payment_Method $base_class_obj_or_id
217
+     * @param EE_Payment_Method $base_class_obj_or_id
218 218
      * @param boolean                      $ensure_is_in_db
219 219
      * @return EE_Payment_Method
220 220
      * @throws EE_Error
@@ -382,8 +382,8 @@  discard block
 block discarded – undo
382 382
      * Note: if an offline payment method was selected on the related transaction then this will have no payment methods returned.
383 383
      * It will ONLY return a payment method for a PAYMENT recorded against the registration.
384 384
      *
385
-     * @param EE_Registration|int $registration_or_reg_id  Either the EE_Registration object or the id for the registration.
386
-     * @return EE_Payment|null
385
+     * @param EE_Registration $registration_or_reg_id  Either the EE_Registration object or the id for the registration.
386
+     * @return null|EE_Base_Class
387 387
      */
388 388
     public function get_last_used_for_registration($registration_or_reg_id)
389 389
     {
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -44,7 +44,7 @@  discard block
 block discarded – undo
44 44
     {
45 45
         $this->singlular_item = __('Payment Method', 'event_espresso');
46 46
         $this->plural_item = __('Payment Methods', 'event_espresso');
47
-        $this->_tables = array( 'Payment_Method' => new EE_Primary_Table('esp_payment_method', 'PMD_ID') );
47
+        $this->_tables = array('Payment_Method' => new EE_Primary_Table('esp_payment_method', 'PMD_ID'));
48 48
         $this->_fields = array(
49 49
             'Payment_Method' => array(
50 50
                 'PMD_ID' => new EE_Primary_Key_Int_Field('PMD_ID', __("ID", 'event_espresso')),
@@ -78,7 +78,7 @@  discard block
 block discarded – undo
78 78
      */
79 79
     public function get_one_by_slug($slug)
80 80
     {
81
-        return $this->get_one(array( array( 'PMD_slug' => $slug ) ));
81
+        return $this->get_one(array(array('PMD_slug' => $slug)));
82 82
     }
83 83
 
84 84
 
@@ -109,7 +109,7 @@  discard block
 block discarded – undo
109 109
     public function is_valid_scope($scope)
110 110
     {
111 111
         $scopes = $this->scopes();
112
-        if (isset($scopes[ $scope ])) {
112
+        if (isset($scopes[$scope])) {
113 113
             return true;
114 114
         } else {
115 115
             return false;
@@ -127,8 +127,8 @@  discard block
 block discarded – undo
127 127
      */
128 128
     public function get_all_active($scope = null, $query_params = array())
129 129
     {
130
-        if (! isset($query_params['order_by']) && ! isset($query_params['order'])) {
131
-            $query_params['order_by'] = array( 'PMD_order' => 'ASC', 'PMD_ID' => 'ASC' );
130
+        if ( ! isset($query_params['order_by']) && ! isset($query_params['order'])) {
131
+            $query_params['order_by'] = array('PMD_order' => 'ASC', 'PMD_ID' => 'ASC');
132 132
         }
133 133
         return $this->get_all($this->_get_query_params_for_all_active($scope, $query_params));
134 134
     }
@@ -156,7 +156,7 @@  discard block
 block discarded – undo
156 156
     {
157 157
         if ($scope) {
158 158
             if ($this->is_valid_scope($scope)) {
159
-                return array_replace_recursive(array( array( 'PMD_scope' => array( 'LIKE', "%$scope%" ) ) ), $query_params);
159
+                return array_replace_recursive(array(array('PMD_scope' => array('LIKE', "%$scope%"))), $query_params);
160 160
             } else {
161 161
                 throw new EE_Error(sprintf(__("'%s' is not a valid scope for a payment method", "event_espresso"), $scope));
162 162
             }
@@ -165,9 +165,9 @@  discard block
 block discarded – undo
165 165
             $count = 0;
166 166
             foreach ($this->scopes() as $scope_name => $desc) {
167 167
                 $count++;
168
-                $acceptable_scopes[ 'PMD_scope*' . $count ] = array( 'LIKE', '%' . $scope_name . '%' );
168
+                $acceptable_scopes['PMD_scope*'.$count] = array('LIKE', '%'.$scope_name.'%');
169 169
             }
170
-            return array_replace_recursive(array( array( 'OR*active_scope' => $acceptable_scopes ) ), $query_params);
170
+            return array_replace_recursive(array(array('OR*active_scope' => $acceptable_scopes)), $query_params);
171 171
         }
172 172
     }
173 173
 
@@ -205,7 +205,7 @@  discard block
 block discarded – undo
205 205
      */
206 206
     public function get_one_of_type($type)
207 207
     {
208
-        return $this->get_one(array( array( 'PMD_type' => $type ) ));
208
+        return $this->get_one(array(array('PMD_type' => $type)));
209 209
     }
210 210
 
211 211
 
@@ -298,7 +298,7 @@  discard block
 block discarded – undo
298 298
         $usable_payment_methods = array();
299 299
         foreach ($payment_methods as $key => $payment_method) {
300 300
             if (EE_Payment_Method_Manager::instance()->payment_method_type_exists($payment_method->type())) {
301
-                $usable_payment_methods[ $key ] = $payment_method;
301
+                $usable_payment_methods[$key] = $payment_method;
302 302
                 // some payment methods enqueue their scripts in EE_PMT_*::__construct
303 303
                 // which is kinda a no-no (just because it's being constructed doesn't mean we need to enqueue
304 304
                 // its scripts). but for backwards-compat we should continue to do that
@@ -312,7 +312,7 @@  discard block
 block discarded – undo
312 312
                     $payment_method
313 313
                 );
314 314
                 new PersistentAdminNotice(
315
-                    'auto-deactivated-' . $payment_method->type(),
315
+                    'auto-deactivated-'.$payment_method->type(),
316 316
                     sprintf(
317 317
                         __(
318 318
                             'The payment method %1$s was automatically deactivated because it appears its associated Event Espresso Addon was recently deactivated.%2$sIt can be reactivated on the %3$sPlugins admin page%4$s, then you can reactivate the payment method.',
@@ -320,7 +320,7 @@  discard block
 block discarded – undo
320 320
                         ),
321 321
                         $payment_method->admin_name(),
322 322
                         '<br />',
323
-                        '<a href="' . admin_url('plugins.php') . '">',
323
+                        '<a href="'.admin_url('plugins.php').'">',
324 324
                         '</a>'
325 325
                     ),
326 326
                     true
@@ -345,7 +345,7 @@  discard block
 block discarded – undo
345 345
         // give addons a chance to override what payment methods are chosen based on the transaction
346 346
         return apply_filters(
347 347
             'FHEE__EEM_Payment_Method__get_all_for_transaction__payment_methods',
348
-            $this->get_all_active($scope, array( 'group_by' => 'PMD_type' )),
348
+            $this->get_all_active($scope, array('group_by' => 'PMD_type')),
349 349
             $transaction,
350 350
             $scope
351 351
         );
@@ -369,7 +369,7 @@  discard block
 block discarded – undo
369 369
             0 => array(
370 370
                 'Payment.Registration.REG_ID' => $registration_id,
371 371
             ),
372
-            'order_by' => array( 'Payment.PAY_ID' => 'DESC' )
372
+            'order_by' => array('Payment.PAY_ID' => 'DESC')
373 373
         );
374 374
         return $this->get_one($query_params);
375 375
     }
Please login to merge, or discard this patch.
Indentation   +359 added lines, -359 removed lines patch added patch discarded remove patch
@@ -20,363 +20,363 @@
 block discarded – undo
20 20
 class EEM_Payment_Method extends EEM_Base
21 21
 {
22 22
 
23
-    const scope_cart = 'CART';
24
-
25
-    const scope_admin = 'ADMIN';
26
-
27
-    const scope_api = 'API';
28
-
29
-    /**
30
-     *
31
-     * @type EEM_Payment_Method
32
-     */
33
-    protected static $_instance = null;
34
-
35
-
36
-
37
-    /**
38
-     * private constructor to prevent direct creation
39
-     * @Constructor
40
-     * @access   protected
41
-     * @return EEM_Payment_Method
42
-     */
43
-    protected function __construct($timezone = null)
44
-    {
45
-        $this->singlular_item = __('Payment Method', 'event_espresso');
46
-        $this->plural_item = __('Payment Methods', 'event_espresso');
47
-        $this->_tables = array( 'Payment_Method' => new EE_Primary_Table('esp_payment_method', 'PMD_ID') );
48
-        $this->_fields = array(
49
-            'Payment_Method' => array(
50
-                'PMD_ID' => new EE_Primary_Key_Int_Field('PMD_ID', __("ID", 'event_espresso')),
51
-                'PMD_type' => new EE_Plain_Text_Field('PMD_type', __("Payment Method Type", 'event_espresso'), false, 'Admin_Only'),
52
-                'PMD_name' => new EE_Plain_Text_Field('PMD_name', __("Name", 'event_espresso'), false),
53
-                'PMD_desc' => new EE_Post_Content_Field('PMD_desc', __("Description", 'event_espresso'), false, ''),
54
-                'PMD_admin_name' => new EE_Plain_Text_Field('PMD_admin_name', __("Admin-Only Name", 'event_espresso'), true),
55
-                'PMD_admin_desc' => new EE_Post_Content_Field('PMD_admin_desc', __("Admin-Only Description", 'event_espresso'), true),
56
-                'PMD_slug' => new EE_Slug_Field('PMD_slug', __("Slug", 'event_espresso'), false),
57
-                'PMD_order' => new EE_Integer_Field('PMD_order', __("Order", 'event_espresso'), false, 0),
58
-                'PMD_debug_mode' => new EE_Boolean_Field('PMD_debug_mode', __("Debug Mode On?", 'event_espresso'), false, false),
59
-                'PMD_wp_user' => new EE_WP_User_Field('PMD_wp_user', __("Payment Method Creator ID", 'event_espresso'), false),
60
-                'PMD_open_by_default' => new EE_Boolean_Field('PMD_open_by_default', __("Open by Default?", 'event_espresso'), false, false), 'PMD_button_url' => new EE_Plain_Text_Field('PMD_button_url', __("Button URL", 'event_espresso'), true, ''),
61
-                'PMD_scope' => new EE_Serialized_Text_Field('PMD_scope', __("Usable From?", 'event_espresso'), false, array()), // possible values currently are 'CART','ADMIN','API'
62
-        ) );
63
-        $this->_model_relations = array(
64
-            'Payment' => new EE_Has_Many_Relation(),
65
-            'Currency' => new EE_HABTM_Relation('Currency_Payment_Method'),
66
-            'Transaction' => new EE_Has_Many_Relation(),
67
-            'WP_User' => new EE_Belongs_To_Relation(),
68
-        );
69
-        parent::__construct($timezone);
70
-    }
71
-
72
-
73
-
74
-    /**
75
-     * Gets one by the slug provided
76
-     * @param string $slug
77
-     * @return EE_Payment_Method
78
-     */
79
-    public function get_one_by_slug($slug)
80
-    {
81
-        return $this->get_one(array( array( 'PMD_slug' => $slug ) ));
82
-    }
83
-
84
-
85
-
86
-    /**
87
-     * Gets all the acceptable scopes for payment methods.
88
-     * Keys are their names as store din the DB, and values are nice names for displaying them
89
-     * @return array
90
-     */
91
-    public function scopes()
92
-    {
93
-        return apply_filters(
94
-            'FHEE__EEM_Payment_Method__scopes',
95
-            array(
96
-                self::scope_cart        => __("Front-end Registration Page", 'event_espresso'),
97
-                self::scope_admin   => __("Admin Registration Page (no online processing)", 'event_espresso')
98
-            )
99
-        );
100
-    }
101
-
102
-
103
-
104
-    /**
105
-     * Determines if this is an valid scope
106
-     * @param string $scope like one of EEM_Payment_Method::instance()->scopes()
107
-     * @return boolean
108
-     */
109
-    public function is_valid_scope($scope)
110
-    {
111
-        $scopes = $this->scopes();
112
-        if (isset($scopes[ $scope ])) {
113
-            return true;
114
-        } else {
115
-            return false;
116
-        }
117
-    }
118
-
119
-
120
-
121
-    /**
122
-     * Gets all active payment methods
123
-     * @param string $scope one of
124
-     * @param array  $query_params
125
-     * @throws EE_Error
126
-     * @return EE_Payment_Method[]
127
-     */
128
-    public function get_all_active($scope = null, $query_params = array())
129
-    {
130
-        if (! isset($query_params['order_by']) && ! isset($query_params['order'])) {
131
-            $query_params['order_by'] = array( 'PMD_order' => 'ASC', 'PMD_ID' => 'ASC' );
132
-        }
133
-        return $this->get_all($this->_get_query_params_for_all_active($scope, $query_params));
134
-    }
135
-
136
-    /**
137
-     * Counts all active gateways in the specified scope
138
-     * @param string $scope one of EEM_Payment_Method::scope_*
139
-     * @param array $query_params
140
-     * @return int
141
-     */
142
-    public function count_active($scope = null, $query_params = array())
143
-    {
144
-        return $this->count($this->_get_query_params_for_all_active($scope, $query_params));
145
-    }
146
-
147
-    /**
148
-     * Creates the $query_params that can be passed into any EEM_Payment_Method as their $query_params
149
-     * argument to get all active for a given scope
150
-     * @param string $scope one of the constants EEM_Payment_Method::scope_*
151
-     * @param array $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
152
-     * @return array @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
153
-     * @throws EE_Error
154
-     */
155
-    protected function _get_query_params_for_all_active($scope = null, $query_params = array())
156
-    {
157
-        if ($scope) {
158
-            if ($this->is_valid_scope($scope)) {
159
-                return array_replace_recursive(array( array( 'PMD_scope' => array( 'LIKE', "%$scope%" ) ) ), $query_params);
160
-            } else {
161
-                throw new EE_Error(sprintf(__("'%s' is not a valid scope for a payment method", "event_espresso"), $scope));
162
-            }
163
-        } else {
164
-            $acceptable_scopes = array();
165
-            $count = 0;
166
-            foreach ($this->scopes() as $scope_name => $desc) {
167
-                $count++;
168
-                $acceptable_scopes[ 'PMD_scope*' . $count ] = array( 'LIKE', '%' . $scope_name . '%' );
169
-            }
170
-            return array_replace_recursive(array( array( 'OR*active_scope' => $acceptable_scopes ) ), $query_params);
171
-        }
172
-    }
173
-
174
-    /**
175
-     * Creates the $query_params that can be passed into any EEM_Payment_Method as their $query_params
176
-     * argument to get all active for a given scope
177
-     * @param string $scope one of the constants EEM_Payment_Method::scope_*
178
-     * @param array $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
179
-     * @return array @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
180
-     * @throws EE_Error
181
-     */
182
-    public function get_query_params_for_all_active($scope = null, $query_params = array())
183
-    {
184
-        return $this->_get_query_params_for_all_active($scope, $query_params);
185
-    }
186
-
187
-
188
-    /**
189
-     * Gets one active payment method. see @get_all_active for documentation
190
-     * @param string $scope
191
-     * @param array  $query_params
192
-     * @return EE_Payment_Method
193
-     */
194
-    public function get_one_active($scope = null, $query_params = array())
195
-    {
196
-        return $this->get_one($this->_get_query_params_for_all_active($scope, $query_params));
197
-    }
198
-
199
-
200
-
201
-    /**
202
-     * Gets one payment method of that type, regardless of whether its active or not
203
-     * @param string $type
204
-     * @return EE_Payment_Method
205
-     */
206
-    public function get_one_of_type($type)
207
-    {
208
-        return $this->get_one(array( array( 'PMD_type' => $type ) ));
209
-    }
210
-
211
-
212
-
213
-    /**
214
-     * Overrides parent ot also check by the slug
215
-     * @see EEM_Base::ensure_is_obj()
216
-     * @param string|int|EE_Payment_Method $base_class_obj_or_id
217
-     * @param boolean                      $ensure_is_in_db
218
-     * @return EE_Payment_Method
219
-     * @throws EE_Error
220
-     */
221
-    public function ensure_is_obj($base_class_obj_or_id, $ensure_is_in_db = false)
222
-    {
223
-        // first: check if it's a slug
224
-        if (is_string($base_class_obj_or_id)) {
225
-            $obj = $this->get_one_by_slug($base_class_obj_or_id);
226
-            if ($obj) {
227
-                return $obj;
228
-            }
229
-        }
230
-        // ok so it wasn't a slug we were passed. try the usual then (ie, it's an object or an ID)
231
-        try {
232
-            return parent::ensure_is_obj($base_class_obj_or_id, $ensure_is_in_db);
233
-        } catch (EE_Error $e) {
234
-            // handle it outside the catch
235
-        }
236
-        throw new EE_Error(sprintf(__("'%s' is neither a Payment Method ID, slug, nor object.", "event_espresso"), $base_class_obj_or_id));
237
-    }
238
-
239
-
240
-
241
-    /**
242
-     * Gets the ID of this object, or if its a string finds the object's id
243
-     * associated with that slug
244
-     * @param mixed $base_obj_or_id_or_slug
245
-     * @return int
246
-     */
247
-    public function ensure_is_ID($base_obj_or_id_or_slug)
248
-    {
249
-        if (is_string($base_obj_or_id_or_slug)) {
250
-            // assume it's a slug
251
-            $base_obj_or_id_or_slug = $this->get_one_by_slug($base_obj_or_id_or_slug);
252
-        }
253
-        return parent::ensure_is_ID($base_obj_or_id_or_slug);
254
-    }
255
-
256
-
257
-
258
-    /**
259
-     * Verifies the button urls on all the passed payment methods have a valid button url. If not, resets them to their default.
260
-     * @param EE_Payment_Method[] $payment_methods. If NULL is provided defaults to all payment methods active in the cart
261
-     */
262
-    public function verify_button_urls($payment_methods = null)
263
-    {
264
-        $payment_methods = is_array($payment_methods) ? $payment_methods : $this->get_all_active(EEM_Payment_Method::scope_cart);
265
-        foreach ($payment_methods as $payment_method) {
266
-            try {
267
-                // If there is really no button URL at all, or if the button URLs still point to decaf folder even
268
-                // though this is a caffeinated install, reset it to the default.
269
-                $current_button_url = $payment_method->button_url();
270
-                if (empty($current_button_url)
271
-                || (
272
-                        strpos($current_button_url, 'decaf') !== false
273
-                        && strpos($payment_method->type_obj()->default_button_url(), 'decaf') === false
274
-                    )
275
-                ) {
276
-                    $payment_method->save(
277
-                        [
278
-                            'PMD_button_url' => $payment_method->type_obj()->default_button_url()
279
-                        ]
280
-                    );
281
-                }
282
-            } catch (EE_Error $e) {
283
-                $payment_method->set_active(false);
284
-            }
285
-        }
286
-    }
287
-
288
-
289
-
290
-    /**
291
-     * Overrides parent to not only turn wpdb results into EE_Payment_Method objects,
292
-     * but also verifies the payment method type of each is a usable object. If not,
293
-     * deactivate it, sets a notification, and deactivates it
294
-     *
295
-     * @param array $rows
296
-     * @return EE_Payment_Method[]
297
-     * @throws InvalidDataTypeException
298
-     */
299
-    protected function _create_objects($rows = array())
300
-    {
301
-        EE_Registry::instance()->load_lib('Payment_Method_Manager');
302
-        $payment_methods = parent::_create_objects($rows);
303
-        /* @var $payment_methods EE_Payment_Method[] */
304
-        $usable_payment_methods = array();
305
-        foreach ($payment_methods as $key => $payment_method) {
306
-            if (EE_Payment_Method_Manager::instance()->payment_method_type_exists($payment_method->type())) {
307
-                $usable_payment_methods[ $key ] = $payment_method;
308
-                // some payment methods enqueue their scripts in EE_PMT_*::__construct
309
-                // which is kinda a no-no (just because it's being constructed doesn't mean we need to enqueue
310
-                // its scripts). but for backwards-compat we should continue to do that
311
-                $payment_method->type_obj();
312
-            } elseif ($payment_method->active()) {
313
-                // only deactivate and notify the admin if the payment is active somewhere
314
-                $payment_method->deactivate();
315
-                $payment_method->save();
316
-                do_action(
317
-                    'AHEE__EEM_Payment_Method___create_objects_auto_deactivated_payment_method',
318
-                    $payment_method
319
-                );
320
-                new PersistentAdminNotice(
321
-                    'auto-deactivated-' . $payment_method->type(),
322
-                    sprintf(
323
-                        __(
324
-                            'The payment method %1$s was automatically deactivated because it appears its associated Event Espresso Addon was recently deactivated.%2$sIt can be reactivated on the %3$sPlugins admin page%4$s, then you can reactivate the payment method.',
325
-                            'event_espresso'
326
-                        ),
327
-                        $payment_method->admin_name(),
328
-                        '<br />',
329
-                        '<a href="' . admin_url('plugins.php') . '">',
330
-                        '</a>'
331
-                    ),
332
-                    true
333
-                );
334
-            }
335
-        }
336
-        return $usable_payment_methods;
337
-    }
338
-
339
-
340
-
341
-    /**
342
-     * Gets all the payment methods which can be used for transaction
343
-     * (according to the relations between payment methods and events, and
344
-     * the currencies used for the transaction and their relation to payment methods)
345
-     * @param EE_Transaction $transaction
346
-     * @param string    $scope @see EEM_Payment_Method::get_all_for_events
347
-     * @return EE_Payment_Method[]
348
-     */
349
-    public function get_all_for_transaction($transaction, $scope)
350
-    {
351
-        // give addons a chance to override what payment methods are chosen based on the transaction
352
-        return apply_filters(
353
-            'FHEE__EEM_Payment_Method__get_all_for_transaction__payment_methods',
354
-            $this->get_all_active($scope, array( 'group_by' => 'PMD_type' )),
355
-            $transaction,
356
-            $scope
357
-        );
358
-    }
359
-
360
-
361
-    /**
362
-     * Returns the payment method used for the last payment made for a registration.
363
-     *
364
-     * Note: if an offline payment method was selected on the related transaction then this will have no payment methods returned.
365
-     * It will ONLY return a payment method for a PAYMENT recorded against the registration.
366
-     *
367
-     * @param EE_Registration|int $registration_or_reg_id  Either the EE_Registration object or the id for the registration.
368
-     * @return EE_Payment|null
369
-     */
370
-    public function get_last_used_for_registration($registration_or_reg_id)
371
-    {
372
-        $registration_id = EEM_Registration::instance()->ensure_is_ID($registration_or_reg_id);
373
-
374
-        $query_params = array(
375
-            0 => array(
376
-                'Payment.Registration.REG_ID' => $registration_id,
377
-            ),
378
-            'order_by' => array( 'Payment.PAY_ID' => 'DESC' )
379
-        );
380
-        return $this->get_one($query_params);
381
-    }
23
+	const scope_cart = 'CART';
24
+
25
+	const scope_admin = 'ADMIN';
26
+
27
+	const scope_api = 'API';
28
+
29
+	/**
30
+	 *
31
+	 * @type EEM_Payment_Method
32
+	 */
33
+	protected static $_instance = null;
34
+
35
+
36
+
37
+	/**
38
+	 * private constructor to prevent direct creation
39
+	 * @Constructor
40
+	 * @access   protected
41
+	 * @return EEM_Payment_Method
42
+	 */
43
+	protected function __construct($timezone = null)
44
+	{
45
+		$this->singlular_item = __('Payment Method', 'event_espresso');
46
+		$this->plural_item = __('Payment Methods', 'event_espresso');
47
+		$this->_tables = array( 'Payment_Method' => new EE_Primary_Table('esp_payment_method', 'PMD_ID') );
48
+		$this->_fields = array(
49
+			'Payment_Method' => array(
50
+				'PMD_ID' => new EE_Primary_Key_Int_Field('PMD_ID', __("ID", 'event_espresso')),
51
+				'PMD_type' => new EE_Plain_Text_Field('PMD_type', __("Payment Method Type", 'event_espresso'), false, 'Admin_Only'),
52
+				'PMD_name' => new EE_Plain_Text_Field('PMD_name', __("Name", 'event_espresso'), false),
53
+				'PMD_desc' => new EE_Post_Content_Field('PMD_desc', __("Description", 'event_espresso'), false, ''),
54
+				'PMD_admin_name' => new EE_Plain_Text_Field('PMD_admin_name', __("Admin-Only Name", 'event_espresso'), true),
55
+				'PMD_admin_desc' => new EE_Post_Content_Field('PMD_admin_desc', __("Admin-Only Description", 'event_espresso'), true),
56
+				'PMD_slug' => new EE_Slug_Field('PMD_slug', __("Slug", 'event_espresso'), false),
57
+				'PMD_order' => new EE_Integer_Field('PMD_order', __("Order", 'event_espresso'), false, 0),
58
+				'PMD_debug_mode' => new EE_Boolean_Field('PMD_debug_mode', __("Debug Mode On?", 'event_espresso'), false, false),
59
+				'PMD_wp_user' => new EE_WP_User_Field('PMD_wp_user', __("Payment Method Creator ID", 'event_espresso'), false),
60
+				'PMD_open_by_default' => new EE_Boolean_Field('PMD_open_by_default', __("Open by Default?", 'event_espresso'), false, false), 'PMD_button_url' => new EE_Plain_Text_Field('PMD_button_url', __("Button URL", 'event_espresso'), true, ''),
61
+				'PMD_scope' => new EE_Serialized_Text_Field('PMD_scope', __("Usable From?", 'event_espresso'), false, array()), // possible values currently are 'CART','ADMIN','API'
62
+		) );
63
+		$this->_model_relations = array(
64
+			'Payment' => new EE_Has_Many_Relation(),
65
+			'Currency' => new EE_HABTM_Relation('Currency_Payment_Method'),
66
+			'Transaction' => new EE_Has_Many_Relation(),
67
+			'WP_User' => new EE_Belongs_To_Relation(),
68
+		);
69
+		parent::__construct($timezone);
70
+	}
71
+
72
+
73
+
74
+	/**
75
+	 * Gets one by the slug provided
76
+	 * @param string $slug
77
+	 * @return EE_Payment_Method
78
+	 */
79
+	public function get_one_by_slug($slug)
80
+	{
81
+		return $this->get_one(array( array( 'PMD_slug' => $slug ) ));
82
+	}
83
+
84
+
85
+
86
+	/**
87
+	 * Gets all the acceptable scopes for payment methods.
88
+	 * Keys are their names as store din the DB, and values are nice names for displaying them
89
+	 * @return array
90
+	 */
91
+	public function scopes()
92
+	{
93
+		return apply_filters(
94
+			'FHEE__EEM_Payment_Method__scopes',
95
+			array(
96
+				self::scope_cart        => __("Front-end Registration Page", 'event_espresso'),
97
+				self::scope_admin   => __("Admin Registration Page (no online processing)", 'event_espresso')
98
+			)
99
+		);
100
+	}
101
+
102
+
103
+
104
+	/**
105
+	 * Determines if this is an valid scope
106
+	 * @param string $scope like one of EEM_Payment_Method::instance()->scopes()
107
+	 * @return boolean
108
+	 */
109
+	public function is_valid_scope($scope)
110
+	{
111
+		$scopes = $this->scopes();
112
+		if (isset($scopes[ $scope ])) {
113
+			return true;
114
+		} else {
115
+			return false;
116
+		}
117
+	}
118
+
119
+
120
+
121
+	/**
122
+	 * Gets all active payment methods
123
+	 * @param string $scope one of
124
+	 * @param array  $query_params
125
+	 * @throws EE_Error
126
+	 * @return EE_Payment_Method[]
127
+	 */
128
+	public function get_all_active($scope = null, $query_params = array())
129
+	{
130
+		if (! isset($query_params['order_by']) && ! isset($query_params['order'])) {
131
+			$query_params['order_by'] = array( 'PMD_order' => 'ASC', 'PMD_ID' => 'ASC' );
132
+		}
133
+		return $this->get_all($this->_get_query_params_for_all_active($scope, $query_params));
134
+	}
135
+
136
+	/**
137
+	 * Counts all active gateways in the specified scope
138
+	 * @param string $scope one of EEM_Payment_Method::scope_*
139
+	 * @param array $query_params
140
+	 * @return int
141
+	 */
142
+	public function count_active($scope = null, $query_params = array())
143
+	{
144
+		return $this->count($this->_get_query_params_for_all_active($scope, $query_params));
145
+	}
146
+
147
+	/**
148
+	 * Creates the $query_params that can be passed into any EEM_Payment_Method as their $query_params
149
+	 * argument to get all active for a given scope
150
+	 * @param string $scope one of the constants EEM_Payment_Method::scope_*
151
+	 * @param array $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
152
+	 * @return array @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
153
+	 * @throws EE_Error
154
+	 */
155
+	protected function _get_query_params_for_all_active($scope = null, $query_params = array())
156
+	{
157
+		if ($scope) {
158
+			if ($this->is_valid_scope($scope)) {
159
+				return array_replace_recursive(array( array( 'PMD_scope' => array( 'LIKE', "%$scope%" ) ) ), $query_params);
160
+			} else {
161
+				throw new EE_Error(sprintf(__("'%s' is not a valid scope for a payment method", "event_espresso"), $scope));
162
+			}
163
+		} else {
164
+			$acceptable_scopes = array();
165
+			$count = 0;
166
+			foreach ($this->scopes() as $scope_name => $desc) {
167
+				$count++;
168
+				$acceptable_scopes[ 'PMD_scope*' . $count ] = array( 'LIKE', '%' . $scope_name . '%' );
169
+			}
170
+			return array_replace_recursive(array( array( 'OR*active_scope' => $acceptable_scopes ) ), $query_params);
171
+		}
172
+	}
173
+
174
+	/**
175
+	 * Creates the $query_params that can be passed into any EEM_Payment_Method as their $query_params
176
+	 * argument to get all active for a given scope
177
+	 * @param string $scope one of the constants EEM_Payment_Method::scope_*
178
+	 * @param array $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
179
+	 * @return array @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
180
+	 * @throws EE_Error
181
+	 */
182
+	public function get_query_params_for_all_active($scope = null, $query_params = array())
183
+	{
184
+		return $this->_get_query_params_for_all_active($scope, $query_params);
185
+	}
186
+
187
+
188
+	/**
189
+	 * Gets one active payment method. see @get_all_active for documentation
190
+	 * @param string $scope
191
+	 * @param array  $query_params
192
+	 * @return EE_Payment_Method
193
+	 */
194
+	public function get_one_active($scope = null, $query_params = array())
195
+	{
196
+		return $this->get_one($this->_get_query_params_for_all_active($scope, $query_params));
197
+	}
198
+
199
+
200
+
201
+	/**
202
+	 * Gets one payment method of that type, regardless of whether its active or not
203
+	 * @param string $type
204
+	 * @return EE_Payment_Method
205
+	 */
206
+	public function get_one_of_type($type)
207
+	{
208
+		return $this->get_one(array( array( 'PMD_type' => $type ) ));
209
+	}
210
+
211
+
212
+
213
+	/**
214
+	 * Overrides parent ot also check by the slug
215
+	 * @see EEM_Base::ensure_is_obj()
216
+	 * @param string|int|EE_Payment_Method $base_class_obj_or_id
217
+	 * @param boolean                      $ensure_is_in_db
218
+	 * @return EE_Payment_Method
219
+	 * @throws EE_Error
220
+	 */
221
+	public function ensure_is_obj($base_class_obj_or_id, $ensure_is_in_db = false)
222
+	{
223
+		// first: check if it's a slug
224
+		if (is_string($base_class_obj_or_id)) {
225
+			$obj = $this->get_one_by_slug($base_class_obj_or_id);
226
+			if ($obj) {
227
+				return $obj;
228
+			}
229
+		}
230
+		// ok so it wasn't a slug we were passed. try the usual then (ie, it's an object or an ID)
231
+		try {
232
+			return parent::ensure_is_obj($base_class_obj_or_id, $ensure_is_in_db);
233
+		} catch (EE_Error $e) {
234
+			// handle it outside the catch
235
+		}
236
+		throw new EE_Error(sprintf(__("'%s' is neither a Payment Method ID, slug, nor object.", "event_espresso"), $base_class_obj_or_id));
237
+	}
238
+
239
+
240
+
241
+	/**
242
+	 * Gets the ID of this object, or if its a string finds the object's id
243
+	 * associated with that slug
244
+	 * @param mixed $base_obj_or_id_or_slug
245
+	 * @return int
246
+	 */
247
+	public function ensure_is_ID($base_obj_or_id_or_slug)
248
+	{
249
+		if (is_string($base_obj_or_id_or_slug)) {
250
+			// assume it's a slug
251
+			$base_obj_or_id_or_slug = $this->get_one_by_slug($base_obj_or_id_or_slug);
252
+		}
253
+		return parent::ensure_is_ID($base_obj_or_id_or_slug);
254
+	}
255
+
256
+
257
+
258
+	/**
259
+	 * Verifies the button urls on all the passed payment methods have a valid button url. If not, resets them to their default.
260
+	 * @param EE_Payment_Method[] $payment_methods. If NULL is provided defaults to all payment methods active in the cart
261
+	 */
262
+	public function verify_button_urls($payment_methods = null)
263
+	{
264
+		$payment_methods = is_array($payment_methods) ? $payment_methods : $this->get_all_active(EEM_Payment_Method::scope_cart);
265
+		foreach ($payment_methods as $payment_method) {
266
+			try {
267
+				// If there is really no button URL at all, or if the button URLs still point to decaf folder even
268
+				// though this is a caffeinated install, reset it to the default.
269
+				$current_button_url = $payment_method->button_url();
270
+				if (empty($current_button_url)
271
+				|| (
272
+						strpos($current_button_url, 'decaf') !== false
273
+						&& strpos($payment_method->type_obj()->default_button_url(), 'decaf') === false
274
+					)
275
+				) {
276
+					$payment_method->save(
277
+						[
278
+							'PMD_button_url' => $payment_method->type_obj()->default_button_url()
279
+						]
280
+					);
281
+				}
282
+			} catch (EE_Error $e) {
283
+				$payment_method->set_active(false);
284
+			}
285
+		}
286
+	}
287
+
288
+
289
+
290
+	/**
291
+	 * Overrides parent to not only turn wpdb results into EE_Payment_Method objects,
292
+	 * but also verifies the payment method type of each is a usable object. If not,
293
+	 * deactivate it, sets a notification, and deactivates it
294
+	 *
295
+	 * @param array $rows
296
+	 * @return EE_Payment_Method[]
297
+	 * @throws InvalidDataTypeException
298
+	 */
299
+	protected function _create_objects($rows = array())
300
+	{
301
+		EE_Registry::instance()->load_lib('Payment_Method_Manager');
302
+		$payment_methods = parent::_create_objects($rows);
303
+		/* @var $payment_methods EE_Payment_Method[] */
304
+		$usable_payment_methods = array();
305
+		foreach ($payment_methods as $key => $payment_method) {
306
+			if (EE_Payment_Method_Manager::instance()->payment_method_type_exists($payment_method->type())) {
307
+				$usable_payment_methods[ $key ] = $payment_method;
308
+				// some payment methods enqueue their scripts in EE_PMT_*::__construct
309
+				// which is kinda a no-no (just because it's being constructed doesn't mean we need to enqueue
310
+				// its scripts). but for backwards-compat we should continue to do that
311
+				$payment_method->type_obj();
312
+			} elseif ($payment_method->active()) {
313
+				// only deactivate and notify the admin if the payment is active somewhere
314
+				$payment_method->deactivate();
315
+				$payment_method->save();
316
+				do_action(
317
+					'AHEE__EEM_Payment_Method___create_objects_auto_deactivated_payment_method',
318
+					$payment_method
319
+				);
320
+				new PersistentAdminNotice(
321
+					'auto-deactivated-' . $payment_method->type(),
322
+					sprintf(
323
+						__(
324
+							'The payment method %1$s was automatically deactivated because it appears its associated Event Espresso Addon was recently deactivated.%2$sIt can be reactivated on the %3$sPlugins admin page%4$s, then you can reactivate the payment method.',
325
+							'event_espresso'
326
+						),
327
+						$payment_method->admin_name(),
328
+						'<br />',
329
+						'<a href="' . admin_url('plugins.php') . '">',
330
+						'</a>'
331
+					),
332
+					true
333
+				);
334
+			}
335
+		}
336
+		return $usable_payment_methods;
337
+	}
338
+
339
+
340
+
341
+	/**
342
+	 * Gets all the payment methods which can be used for transaction
343
+	 * (according to the relations between payment methods and events, and
344
+	 * the currencies used for the transaction and their relation to payment methods)
345
+	 * @param EE_Transaction $transaction
346
+	 * @param string    $scope @see EEM_Payment_Method::get_all_for_events
347
+	 * @return EE_Payment_Method[]
348
+	 */
349
+	public function get_all_for_transaction($transaction, $scope)
350
+	{
351
+		// give addons a chance to override what payment methods are chosen based on the transaction
352
+		return apply_filters(
353
+			'FHEE__EEM_Payment_Method__get_all_for_transaction__payment_methods',
354
+			$this->get_all_active($scope, array( 'group_by' => 'PMD_type' )),
355
+			$transaction,
356
+			$scope
357
+		);
358
+	}
359
+
360
+
361
+	/**
362
+	 * Returns the payment method used for the last payment made for a registration.
363
+	 *
364
+	 * Note: if an offline payment method was selected on the related transaction then this will have no payment methods returned.
365
+	 * It will ONLY return a payment method for a PAYMENT recorded against the registration.
366
+	 *
367
+	 * @param EE_Registration|int $registration_or_reg_id  Either the EE_Registration object or the id for the registration.
368
+	 * @return EE_Payment|null
369
+	 */
370
+	public function get_last_used_for_registration($registration_or_reg_id)
371
+	{
372
+		$registration_id = EEM_Registration::instance()->ensure_is_ID($registration_or_reg_id);
373
+
374
+		$query_params = array(
375
+			0 => array(
376
+				'Payment.Registration.REG_ID' => $registration_id,
377
+			),
378
+			'order_by' => array( 'Payment.PAY_ID' => 'DESC' )
379
+		);
380
+		return $this->get_one($query_params);
381
+	}
382 382
 }
Please login to merge, or discard this patch.
core/db_models/EEM_Price.model.php 3 patches
Doc Comments   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
      *      instantiate a new price object with blank/empty properties
67 67
      *
68 68
      *      @access     public
69
-     *      @return     mixed       array on success, FALSE on fail
69
+     *      @return     EE_Base_Class|null       array on success, FALSE on fail
70 70
      */
71 71
     public function get_new_price()
72 72
     {
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
      *
97 97
      * @access        public
98 98
      * @param int $EVT_ID
99
-     * @return array on success
99
+     * @return EE_Base_Class[] on success
100 100
      */
101 101
     public function get_all_event_prices($EVT_ID = 0)
102 102
     {
@@ -223,7 +223,7 @@  discard block
 block discarded – undo
223 223
      * @access public
224 224
      * @param \EE_Price $price_a
225 225
      * @param \EE_Price $price_b
226
-     * @return bool false on fail
226
+     * @return integer false on fail
227 227
      */
228 228
     public function _sort_event_prices_by_type(EE_Price $price_a, EE_Price $price_b)
229 229
     {
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
      * @access public
242 242
      * @param \EE_Price $price_a
243 243
      * @param \EE_Price $price_b
244
-     * @return bool false on fail
244
+     * @return integer false on fail
245 245
      */
246 246
     public function _sort_event_prices_by_order(EE_Price $price_a, EE_Price $price_b)
247 247
     {
@@ -258,7 +258,7 @@  discard block
 block discarded – undo
258 258
      *
259 259
      *      @access     public
260 260
      *      @param      int                 $type - PRT_ID
261
-     *      @return         boolean     false on fail
261
+     *      @return         EE_Base_Class[]     false on fail
262 262
      */
263 263
     public function get_all_prices_that_are_type($type = 0)
264 264
     {
Please login to merge, or discard this patch.
Indentation   +275 added lines, -275 removed lines patch added patch discarded remove patch
@@ -10,279 +10,279 @@
 block discarded – undo
10 10
 class EEM_Price extends EEM_Soft_Delete_Base
11 11
 {
12 12
 
13
-    // private instance of the EEM_Price object
14
-    protected static $_instance = null;
15
-
16
-
17
-
18
-    /**
19
-     *      private constructor to prevent direct creation
20
-     *      @Constructor
21
-     *      @access protected
22
-     *      @param string $timezone string representing the timezone we want to set for returned Date Time Strings (and any incoming timezone data that gets saved).  Note this just sends the timezone info to the date time model field objects.  Default is NULL (and will be assumed using the set timezone in the 'timezone_string' wp option)
23
-     *      @return EEM_Price
24
-     */
25
-    protected function __construct($timezone)
26
-    {
27
-        require_once(EE_MODELS . 'EEM_Price_Type.model.php');
28
-        $this->singular_item = __('Price', 'event_espresso');
29
-        $this->plural_item = __('Prices', 'event_espresso');
30
-
31
-        $this->_tables = array(
32
-            'Price'=>new EE_Primary_Table('esp_price', 'PRC_ID')
33
-        );
34
-        $this->_fields = array(
35
-            'Price'=> array(
36
-                'PRC_ID'=>new EE_Primary_Key_Int_Field('PRC_ID', 'Price ID'),
37
-                'PRT_ID'=>new EE_Foreign_Key_Int_Field('PRT_ID', 'Price type Id', false, null, 'Price_Type'),
38
-                'PRC_amount'=>new EE_Money_Field('PRC_amount', 'Price Amount', false, 0),
39
-                'PRC_name'=>new EE_Plain_Text_Field('PRC_name', 'Name of Price', false, ''),
40
-                'PRC_desc'=>new EE_Post_Content_Field('PRC_desc', 'Price Description', false, ''),
41
-                'PRC_is_default'=>new EE_Boolean_Field('PRC_is_default', 'Flag indicating whether price is a default price', false, false),
42
-                'PRC_overrides'=>new EE_Integer_Field('PRC_overrides', 'Price ID for a global Price that will be overridden by this Price  ( for replacing default prices )', true, 0),
43
-                'PRC_order'=>new EE_Integer_Field('PRC_order', 'Order of Application of Price (lower numbers apply first?)', false, 1),
44
-                'PRC_deleted'=>new EE_Trashed_Flag_Field('PRC_deleted', 'Flag Indicating if this has been deleted or not', false, false),
45
-                'PRC_parent' => new EE_Integer_Field('PRC_parent', __('Indicates what PRC_ID is the parent of this PRC_ID', 'event_espresso'), true, 0),
46
-                'PRC_wp_user' => new EE_WP_User_Field('PRC_wp_user', __('Price Creator ID', 'event_espresso'), false),
47
-            )
48
-        );
49
-        $this->_model_relations = array(
50
-            'Ticket'=>new EE_HABTM_Relation('Ticket_Price'),
51
-            'Price_Type'=>new EE_Belongs_To_Relation(),
52
-            'WP_User' => new EE_Belongs_To_Relation(),
53
-        );
54
-        // this model is generally available for reading
55
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Default_Public('PRC_is_default', 'Ticket.Datetime.Event');
56
-        // account for default tickets in the caps
57
-        $this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
58
-        $this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
59
-        $this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
60
-        parent::__construct($timezone);
61
-    }
62
-
63
-
64
-
65
-    /**
66
-     *      instantiate a new price object with blank/empty properties
67
-     *
68
-     *      @access     public
69
-     *      @return     mixed       array on success, FALSE on fail
70
-     */
71
-    public function get_new_price()
72
-    {
73
-        return $this->create_default_object();
74
-    }
75
-
76
-
77
-
78
-
79
-
80
-    /**
81
-     *      retrieve  ALL prices from db
82
-     *
83
-     *      @access     public
84
-     *      @return     EE_PRice[]
85
-     */
86
-    public function get_all_prices()
87
-    {
88
-        // retrieve all prices
89
-        return $this->get_all(array('order_by'=>array('PRC_amount'=>'ASC')));
90
-    }
91
-
92
-
93
-
94
-    /**
95
-     *        retrieve all active prices for a particular event
96
-     *
97
-     * @access        public
98
-     * @param int $EVT_ID
99
-     * @return array on success
100
-     */
101
-    public function get_all_event_prices($EVT_ID = 0)
102
-    {
103
-        return $this->get_all(array(
104
-            array(
105
-                'EVT_ID'=>$EVT_ID,
106
-                'Price_Type.PBT_ID'=>array('!=',  EEM_Price_Type::base_type_tax)
107
-            ),
108
-            'order_by'=>$this->_order_by_array_for_get_all_method()
109
-        ));
110
-    }
111
-
112
-
113
-    /**
114
-     *      retrieve all active global prices (that are not taxes (PBT_ID=4)) for a particular event
115
-     *
116
-     *      @access     public
117
-     *      @param      boolean         $count  return count
118
-     *      @return         array           on success
119
-     *      @return         boolean     false on fail
120
-     */
121
-    public function get_all_default_prices($count = false)
122
-    {
123
-        $_where = array(
124
-            'Price_Type.PBT_ID'=>array('!=',4),
125
-            'PRC_deleted' => 0,
126
-            'PRC_is_default' => 1
127
-        );
128
-        $_query_params = array(
129
-            $_where,
130
-            'order_by'=>$this->_order_by_array_for_get_all_method()
131
-        );
132
-        return $count ? $this->count(array($_where)) : $this->get_all($_query_params);
133
-    }
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-    /**
145
-     *      retrieve all prices that are taxes
146
-     *
147
-     *      @access     public
148
-     *      @return         array               on success
149
-     *      @return         array top-level keys are the price's order and their values are an array,
150
-     *                      next-level keys are the price's ID, and their values are EE_Price objects
151
-     */
152
-    public function get_all_prices_that_are_taxes()
153
-    {
154
-        $taxes = array();
155
-        $all_taxes = $this->get_all(array(
156
-            array( 'Price_Type.PBT_ID'=>  EEM_Price_Type::base_type_tax ),
157
-            'order_by' => array( 'Price_Type.PRT_order' => 'ASC', 'PRC_order' => 'ASC' )
158
-        ));
159
-        foreach ($all_taxes as $tax) {
160
-            if ($tax instanceof EE_Price) {
161
-                $taxes[ $tax->order() ][ $tax->ID() ] = $tax;
162
-            }
163
-        }
164
-        return $taxes;
165
-    }
166
-
167
-
168
-
169
-
170
-
171
-    /**
172
-     *      retrieve all prices for an ticket plus default global prices, but not taxes
173
-     *
174
-     *      @access     public
175
-     *      @param int $TKT_ID          the id of the event.  If not included then we assume that this is a new ticket.
176
-     *      @return         boolean         false on fail
177
-     */
178
-    public function get_all_ticket_prices_for_admin($TKT_ID = 0)
179
-    {
180
-        $array_of_price_objects = array();
181
-        if (empty($TKT_ID)) {
182
-            // if there is no tkt, get prices with no tkt ID, are global, are not a tax, and are active
183
-            // return that list
184
-            $default_prices = $this->get_all_default_prices();
185
-
186
-            if ($default_prices) {
187
-                foreach ($default_prices as $price) {
188
-                    if ($price instanceof EE_Price) {
189
-                        $array_of_price_objects[ $price->type() ][] = $price;
190
-                    }
191
-                }
192
-                return $array_of_price_objects;
193
-            } else {
194
-                return array();
195
-            }
196
-        } else {
197
-            $ticket_prices = $this->get_all(array(
198
-                array(
199
-                    'TKT_ID'=>$TKT_ID,
200
-                    'PRC_deleted' => 0
201
-                    ),
202
-                'order_by'=> array('PRC_order' => 'ASC')
203
-            ));
204
-        }
205
-
206
-        if (!empty($ticket_prices)) {
207
-            foreach ($ticket_prices as $price) {
208
-                if ($price instanceof EE_Price) {
209
-                    $array_of_price_objects[ $price->type() ][] = $price;
210
-                }
211
-            }
212
-            return $array_of_price_objects;
213
-        } else {
214
-            return false;
215
-        }
216
-    }
217
-
218
-
219
-
220
-    /**
221
-     *        _sort_event_prices_by_type
222
-     *
223
-     * @access public
224
-     * @param \EE_Price $price_a
225
-     * @param \EE_Price $price_b
226
-     * @return bool false on fail
227
-     */
228
-    public function _sort_event_prices_by_type(EE_Price $price_a, EE_Price $price_b)
229
-    {
230
-        if ($price_a->type_obj()->order() == $price_b->type_obj()->order()) {
231
-            return $this->_sort_event_prices_by_order($price_a, $price_b);
232
-        }
233
-        return $price_a->type_obj()->order() < $price_b->type_obj()->order() ? -1 : 1;
234
-    }
235
-
236
-
237
-
238
-    /**
239
-     *        _sort_event_prices_by_order
240
-     *
241
-     * @access public
242
-     * @param \EE_Price $price_a
243
-     * @param \EE_Price $price_b
244
-     * @return bool false on fail
245
-     */
246
-    public function _sort_event_prices_by_order(EE_Price $price_a, EE_Price $price_b)
247
-    {
248
-        if ($price_a->order() == $price_b->order()) {
249
-            return 0;
250
-        }
251
-        return $price_a->order() < $price_b->order() ? -1 : 1;
252
-    }
253
-
254
-
255
-
256
-    /**
257
-     *      get all prices of a specific type
258
-     *
259
-     *      @access     public
260
-     *      @param      int                 $type - PRT_ID
261
-     *      @return         boolean     false on fail
262
-     */
263
-    public function get_all_prices_that_are_type($type = 0)
264
-    {
265
-        return $this->get_all(array(
266
-            array(
267
-                'PRT_ID'=>$type
268
-            ),
269
-            'order_by'=>$this->_order_by_array_for_get_all_method()
270
-        ));
271
-    }
272
-
273
-
274
-
275
-    /**
276
-     * Returns an array of the normal 'order_by' query parameter provided to the get_all query.
277
-     * Of course you don't have to use it, but this is the order we usually want to sort prices by
278
-     * @return array which can be used like so: $this->get_all(array(array(...where stuff...),'order_by'=>$this->_order_by_array_for_get_all_method()));
279
-     */
280
-    public function _order_by_array_for_get_all_method()
281
-    {
282
-        return array(
283
-                'PRC_order'=>'ASC',
284
-                'Price_Type.PRT_order'=>'ASC',
285
-                'PRC_ID'=>'ASC'
286
-        );
287
-    }
13
+	// private instance of the EEM_Price object
14
+	protected static $_instance = null;
15
+
16
+
17
+
18
+	/**
19
+	 *      private constructor to prevent direct creation
20
+	 *      @Constructor
21
+	 *      @access protected
22
+	 *      @param string $timezone string representing the timezone we want to set for returned Date Time Strings (and any incoming timezone data that gets saved).  Note this just sends the timezone info to the date time model field objects.  Default is NULL (and will be assumed using the set timezone in the 'timezone_string' wp option)
23
+	 *      @return EEM_Price
24
+	 */
25
+	protected function __construct($timezone)
26
+	{
27
+		require_once(EE_MODELS . 'EEM_Price_Type.model.php');
28
+		$this->singular_item = __('Price', 'event_espresso');
29
+		$this->plural_item = __('Prices', 'event_espresso');
30
+
31
+		$this->_tables = array(
32
+			'Price'=>new EE_Primary_Table('esp_price', 'PRC_ID')
33
+		);
34
+		$this->_fields = array(
35
+			'Price'=> array(
36
+				'PRC_ID'=>new EE_Primary_Key_Int_Field('PRC_ID', 'Price ID'),
37
+				'PRT_ID'=>new EE_Foreign_Key_Int_Field('PRT_ID', 'Price type Id', false, null, 'Price_Type'),
38
+				'PRC_amount'=>new EE_Money_Field('PRC_amount', 'Price Amount', false, 0),
39
+				'PRC_name'=>new EE_Plain_Text_Field('PRC_name', 'Name of Price', false, ''),
40
+				'PRC_desc'=>new EE_Post_Content_Field('PRC_desc', 'Price Description', false, ''),
41
+				'PRC_is_default'=>new EE_Boolean_Field('PRC_is_default', 'Flag indicating whether price is a default price', false, false),
42
+				'PRC_overrides'=>new EE_Integer_Field('PRC_overrides', 'Price ID for a global Price that will be overridden by this Price  ( for replacing default prices )', true, 0),
43
+				'PRC_order'=>new EE_Integer_Field('PRC_order', 'Order of Application of Price (lower numbers apply first?)', false, 1),
44
+				'PRC_deleted'=>new EE_Trashed_Flag_Field('PRC_deleted', 'Flag Indicating if this has been deleted or not', false, false),
45
+				'PRC_parent' => new EE_Integer_Field('PRC_parent', __('Indicates what PRC_ID is the parent of this PRC_ID', 'event_espresso'), true, 0),
46
+				'PRC_wp_user' => new EE_WP_User_Field('PRC_wp_user', __('Price Creator ID', 'event_espresso'), false),
47
+			)
48
+		);
49
+		$this->_model_relations = array(
50
+			'Ticket'=>new EE_HABTM_Relation('Ticket_Price'),
51
+			'Price_Type'=>new EE_Belongs_To_Relation(),
52
+			'WP_User' => new EE_Belongs_To_Relation(),
53
+		);
54
+		// this model is generally available for reading
55
+		$this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Default_Public('PRC_is_default', 'Ticket.Datetime.Event');
56
+		// account for default tickets in the caps
57
+		$this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
58
+		$this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
59
+		$this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
60
+		parent::__construct($timezone);
61
+	}
62
+
63
+
64
+
65
+	/**
66
+	 *      instantiate a new price object with blank/empty properties
67
+	 *
68
+	 *      @access     public
69
+	 *      @return     mixed       array on success, FALSE on fail
70
+	 */
71
+	public function get_new_price()
72
+	{
73
+		return $this->create_default_object();
74
+	}
75
+
76
+
77
+
78
+
79
+
80
+	/**
81
+	 *      retrieve  ALL prices from db
82
+	 *
83
+	 *      @access     public
84
+	 *      @return     EE_PRice[]
85
+	 */
86
+	public function get_all_prices()
87
+	{
88
+		// retrieve all prices
89
+		return $this->get_all(array('order_by'=>array('PRC_amount'=>'ASC')));
90
+	}
91
+
92
+
93
+
94
+	/**
95
+	 *        retrieve all active prices for a particular event
96
+	 *
97
+	 * @access        public
98
+	 * @param int $EVT_ID
99
+	 * @return array on success
100
+	 */
101
+	public function get_all_event_prices($EVT_ID = 0)
102
+	{
103
+		return $this->get_all(array(
104
+			array(
105
+				'EVT_ID'=>$EVT_ID,
106
+				'Price_Type.PBT_ID'=>array('!=',  EEM_Price_Type::base_type_tax)
107
+			),
108
+			'order_by'=>$this->_order_by_array_for_get_all_method()
109
+		));
110
+	}
111
+
112
+
113
+	/**
114
+	 *      retrieve all active global prices (that are not taxes (PBT_ID=4)) for a particular event
115
+	 *
116
+	 *      @access     public
117
+	 *      @param      boolean         $count  return count
118
+	 *      @return         array           on success
119
+	 *      @return         boolean     false on fail
120
+	 */
121
+	public function get_all_default_prices($count = false)
122
+	{
123
+		$_where = array(
124
+			'Price_Type.PBT_ID'=>array('!=',4),
125
+			'PRC_deleted' => 0,
126
+			'PRC_is_default' => 1
127
+		);
128
+		$_query_params = array(
129
+			$_where,
130
+			'order_by'=>$this->_order_by_array_for_get_all_method()
131
+		);
132
+		return $count ? $this->count(array($_where)) : $this->get_all($_query_params);
133
+	}
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+	/**
145
+	 *      retrieve all prices that are taxes
146
+	 *
147
+	 *      @access     public
148
+	 *      @return         array               on success
149
+	 *      @return         array top-level keys are the price's order and their values are an array,
150
+	 *                      next-level keys are the price's ID, and their values are EE_Price objects
151
+	 */
152
+	public function get_all_prices_that_are_taxes()
153
+	{
154
+		$taxes = array();
155
+		$all_taxes = $this->get_all(array(
156
+			array( 'Price_Type.PBT_ID'=>  EEM_Price_Type::base_type_tax ),
157
+			'order_by' => array( 'Price_Type.PRT_order' => 'ASC', 'PRC_order' => 'ASC' )
158
+		));
159
+		foreach ($all_taxes as $tax) {
160
+			if ($tax instanceof EE_Price) {
161
+				$taxes[ $tax->order() ][ $tax->ID() ] = $tax;
162
+			}
163
+		}
164
+		return $taxes;
165
+	}
166
+
167
+
168
+
169
+
170
+
171
+	/**
172
+	 *      retrieve all prices for an ticket plus default global prices, but not taxes
173
+	 *
174
+	 *      @access     public
175
+	 *      @param int $TKT_ID          the id of the event.  If not included then we assume that this is a new ticket.
176
+	 *      @return         boolean         false on fail
177
+	 */
178
+	public function get_all_ticket_prices_for_admin($TKT_ID = 0)
179
+	{
180
+		$array_of_price_objects = array();
181
+		if (empty($TKT_ID)) {
182
+			// if there is no tkt, get prices with no tkt ID, are global, are not a tax, and are active
183
+			// return that list
184
+			$default_prices = $this->get_all_default_prices();
185
+
186
+			if ($default_prices) {
187
+				foreach ($default_prices as $price) {
188
+					if ($price instanceof EE_Price) {
189
+						$array_of_price_objects[ $price->type() ][] = $price;
190
+					}
191
+				}
192
+				return $array_of_price_objects;
193
+			} else {
194
+				return array();
195
+			}
196
+		} else {
197
+			$ticket_prices = $this->get_all(array(
198
+				array(
199
+					'TKT_ID'=>$TKT_ID,
200
+					'PRC_deleted' => 0
201
+					),
202
+				'order_by'=> array('PRC_order' => 'ASC')
203
+			));
204
+		}
205
+
206
+		if (!empty($ticket_prices)) {
207
+			foreach ($ticket_prices as $price) {
208
+				if ($price instanceof EE_Price) {
209
+					$array_of_price_objects[ $price->type() ][] = $price;
210
+				}
211
+			}
212
+			return $array_of_price_objects;
213
+		} else {
214
+			return false;
215
+		}
216
+	}
217
+
218
+
219
+
220
+	/**
221
+	 *        _sort_event_prices_by_type
222
+	 *
223
+	 * @access public
224
+	 * @param \EE_Price $price_a
225
+	 * @param \EE_Price $price_b
226
+	 * @return bool false on fail
227
+	 */
228
+	public function _sort_event_prices_by_type(EE_Price $price_a, EE_Price $price_b)
229
+	{
230
+		if ($price_a->type_obj()->order() == $price_b->type_obj()->order()) {
231
+			return $this->_sort_event_prices_by_order($price_a, $price_b);
232
+		}
233
+		return $price_a->type_obj()->order() < $price_b->type_obj()->order() ? -1 : 1;
234
+	}
235
+
236
+
237
+
238
+	/**
239
+	 *        _sort_event_prices_by_order
240
+	 *
241
+	 * @access public
242
+	 * @param \EE_Price $price_a
243
+	 * @param \EE_Price $price_b
244
+	 * @return bool false on fail
245
+	 */
246
+	public function _sort_event_prices_by_order(EE_Price $price_a, EE_Price $price_b)
247
+	{
248
+		if ($price_a->order() == $price_b->order()) {
249
+			return 0;
250
+		}
251
+		return $price_a->order() < $price_b->order() ? -1 : 1;
252
+	}
253
+
254
+
255
+
256
+	/**
257
+	 *      get all prices of a specific type
258
+	 *
259
+	 *      @access     public
260
+	 *      @param      int                 $type - PRT_ID
261
+	 *      @return         boolean     false on fail
262
+	 */
263
+	public function get_all_prices_that_are_type($type = 0)
264
+	{
265
+		return $this->get_all(array(
266
+			array(
267
+				'PRT_ID'=>$type
268
+			),
269
+			'order_by'=>$this->_order_by_array_for_get_all_method()
270
+		));
271
+	}
272
+
273
+
274
+
275
+	/**
276
+	 * Returns an array of the normal 'order_by' query parameter provided to the get_all query.
277
+	 * Of course you don't have to use it, but this is the order we usually want to sort prices by
278
+	 * @return array which can be used like so: $this->get_all(array(array(...where stuff...),'order_by'=>$this->_order_by_array_for_get_all_method()));
279
+	 */
280
+	public function _order_by_array_for_get_all_method()
281
+	{
282
+		return array(
283
+				'PRC_order'=>'ASC',
284
+				'Price_Type.PRT_order'=>'ASC',
285
+				'PRC_ID'=>'ASC'
286
+		);
287
+	}
288 288
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
      */
25 25
     protected function __construct($timezone)
26 26
     {
27
-        require_once(EE_MODELS . 'EEM_Price_Type.model.php');
27
+        require_once(EE_MODELS.'EEM_Price_Type.model.php');
28 28
         $this->singular_item = __('Price', 'event_espresso');
29 29
         $this->plural_item = __('Prices', 'event_espresso');
30 30
 
@@ -52,11 +52,11 @@  discard block
 block discarded – undo
52 52
             'WP_User' => new EE_Belongs_To_Relation(),
53 53
         );
54 54
         // this model is generally available for reading
55
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Default_Public('PRC_is_default', 'Ticket.Datetime.Event');
55
+        $this->_cap_restriction_generators[EEM_Base::caps_read] = new EE_Restriction_Generator_Default_Public('PRC_is_default', 'Ticket.Datetime.Event');
56 56
         // account for default tickets in the caps
57
-        $this->_cap_restriction_generators[ EEM_Base::caps_read_admin ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
58
-        $this->_cap_restriction_generators[ EEM_Base::caps_edit ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
59
-        $this->_cap_restriction_generators[ EEM_Base::caps_delete ] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
57
+        $this->_cap_restriction_generators[EEM_Base::caps_read_admin] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
58
+        $this->_cap_restriction_generators[EEM_Base::caps_edit] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
59
+        $this->_cap_restriction_generators[EEM_Base::caps_delete] = new EE_Restriction_Generator_Default_Protected('PRC_is_default', 'Ticket.Datetime.Event');
60 60
         parent::__construct($timezone);
61 61
     }
62 62
 
@@ -103,7 +103,7 @@  discard block
 block discarded – undo
103 103
         return $this->get_all(array(
104 104
             array(
105 105
                 'EVT_ID'=>$EVT_ID,
106
-                'Price_Type.PBT_ID'=>array('!=',  EEM_Price_Type::base_type_tax)
106
+                'Price_Type.PBT_ID'=>array('!=', EEM_Price_Type::base_type_tax)
107 107
             ),
108 108
             'order_by'=>$this->_order_by_array_for_get_all_method()
109 109
         ));
@@ -121,7 +121,7 @@  discard block
 block discarded – undo
121 121
     public function get_all_default_prices($count = false)
122 122
     {
123 123
         $_where = array(
124
-            'Price_Type.PBT_ID'=>array('!=',4),
124
+            'Price_Type.PBT_ID'=>array('!=', 4),
125 125
             'PRC_deleted' => 0,
126 126
             'PRC_is_default' => 1
127 127
         );
@@ -153,12 +153,12 @@  discard block
 block discarded – undo
153 153
     {
154 154
         $taxes = array();
155 155
         $all_taxes = $this->get_all(array(
156
-            array( 'Price_Type.PBT_ID'=>  EEM_Price_Type::base_type_tax ),
157
-            'order_by' => array( 'Price_Type.PRT_order' => 'ASC', 'PRC_order' => 'ASC' )
156
+            array('Price_Type.PBT_ID'=>  EEM_Price_Type::base_type_tax),
157
+            'order_by' => array('Price_Type.PRT_order' => 'ASC', 'PRC_order' => 'ASC')
158 158
         ));
159 159
         foreach ($all_taxes as $tax) {
160 160
             if ($tax instanceof EE_Price) {
161
-                $taxes[ $tax->order() ][ $tax->ID() ] = $tax;
161
+                $taxes[$tax->order()][$tax->ID()] = $tax;
162 162
             }
163 163
         }
164 164
         return $taxes;
@@ -186,7 +186,7 @@  discard block
 block discarded – undo
186 186
             if ($default_prices) {
187 187
                 foreach ($default_prices as $price) {
188 188
                     if ($price instanceof EE_Price) {
189
-                        $array_of_price_objects[ $price->type() ][] = $price;
189
+                        $array_of_price_objects[$price->type()][] = $price;
190 190
                     }
191 191
                 }
192 192
                 return $array_of_price_objects;
@@ -203,10 +203,10 @@  discard block
 block discarded – undo
203 203
             ));
204 204
         }
205 205
 
206
-        if (!empty($ticket_prices)) {
206
+        if ( ! empty($ticket_prices)) {
207 207
             foreach ($ticket_prices as $price) {
208 208
                 if ($price instanceof EE_Price) {
209
-                    $array_of_price_objects[ $price->type() ][] = $price;
209
+                    $array_of_price_objects[$price->type()][] = $price;
210 210
                 }
211 211
             }
212 212
             return $array_of_price_objects;
Please login to merge, or discard this patch.
core/db_models/EEM_Price_Type.model.php 3 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@  discard block
 block discarded – undo
27 27
     /**
28 28
      * return an array of Base types. Keys are INTs which are used in the database,
29 29
      * values are text-representations of the base type.
30
-     * @return array
30
+     * @return integer
31 31
      */
32 32
     public function get_base_types()
33 33
     {
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
      *      instantiate a new price type object with blank/empty properties
108 108
      *
109 109
      *      @access     public
110
-     *      @return     mixed       array on success, FALSE on fail
110
+     *      @return     EE_Price_Type       array on success, FALSE on fail
111 111
      */
112 112
     public function get_new_price_type()
113 113
     {
Please login to merge, or discard this patch.
Indentation   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -11,108 +11,108 @@  discard block
 block discarded – undo
11 11
 class EEM_Price_Type extends EEM_Soft_Delete_Base
12 12
 {
13 13
 
14
-    // private instance of the Price Type object
15
-    protected static $_instance = null;
16
-    // An array of the price type objects
17
-    public $type = null;
18
-
19
-    /**
20
-    *   Price Base types
21
-    *
22
-    *   @access private
23
-    *   @var int
24
-    */
25
-    public $base_types = null;
26
-
27
-    /**
28
-     * return an array of Base types. Keys are INTs which are used in the database,
29
-     * values are text-representations of the base type.
30
-     * @return array
31
-     */
32
-    public function get_base_types()
33
-    {
34
-        return $this->base_types;
35
-    }
36
-
37
-    /**
38
-     * Gets the name of the base
39
-     * @param type $base_type_int
40
-     * @return type
41
-     */
42
-    public function get_base_type_name($base_type_int)
43
-    {
44
-        return $this->base_types[ $base_type_int ];
45
-    }
46
-
47
-    /**
48
-     * constants for price base types. In the DB, we decided to store the price base type
49
-     * as an integer. So, to avoid just having magic numbers everwhere (eg, querying for
50
-     * all price types with PBT_ID = 2), we define these constants, to make code more understandable.
51
-     * So, as an example, to query for all price types that are a tax, we'd do
52
-     * EEM_PRice_Type::instance()->get_all(array(array('PBT_ID'=>EEM_Price_Type::base_type_tax)))
53
-     * instead of
54
-     * EEM_Price_Type::instance()->get_all(array(array('PBT_ID'=>2)))
55
-     * Although the 2nd is shorter, it's much less obvious what it's doing. Also, should these magic IDs ever
56
-     * change, we can continue to use the constant, by simply change its value.
57
-     */
58
-    const base_type_base_price = 1;
59
-    const base_type_discount = 2;
60
-    const base_type_surcharge = 3;
61
-    const base_type_tax = 4;
62
-    /**
63
-     *      private constructor to prevent direct creation
64
-     *      @Constructor
65
-     *      @access protected
66
-     *      @return void
67
-     */
68
-    protected function __construct($timezone = null)
69
-    {
70
-        $this->base_types = array(
71
-            EEM_Price_Type::base_type_base_price => __('Price', 'event_espresso'),
72
-            EEM_Price_Type::base_type_discount => __('Discount', 'event_espresso'),
73
-            EEM_Price_Type::base_type_surcharge => __('Surcharge', 'event_espresso'),
74
-            EEM_Price_Type::base_type_tax => __('Tax', 'event_espresso') );
75
-        $this->singular_item = __('Price Type', 'event_espresso');
76
-        $this->plural_item = __('Price Types', 'event_espresso');
77
-
78
-        $this->_tables = array(
79
-            'Price_Type'=>new EE_Primary_Table('esp_price_type', 'PRT_ID')
80
-        );
81
-        $this->_fields = array(
82
-            'Price_Type'=>array(
83
-                'PRT_ID'=>new EE_Primary_Key_Int_Field('PRT_ID', __('Price Type ID', 'event_espresso')),
84
-                'PRT_name'=>new EE_Plain_Text_Field('PRT_name', __('Price Type Name', 'event_espresso'), false, ''),
85
-                'PBT_ID'=>new EE_Enum_Integer_Field('PBT_ID', __('Price Base type ID, 1 = Price , 2 = Discount , 3 = Surcharge , 4 = Tax', 'event_espresso'), false, EEM_Price_Type::base_type_base_price, $this->base_types),
86
-                'PRT_is_percent'=>new EE_Boolean_Field('PRT_is_percent', __('Flag indicating price is a percentage', 'event_espresso'), false, false),
87
-                'PRT_order'=>new EE_Integer_Field('PRT_order', __('Order in which price should be applied. ', 'event_espresso'), false, 0),
88
-                'PRT_deleted'=>new EE_Trashed_Flag_Field('PRT_deleted', __('Flag indicating price type has been trashed', 'event_espresso'), false, false),
89
-                'PRT_wp_user' => new EE_WP_User_Field('PRT_wp_user', __('Price Type Creator ID', 'event_espresso'), false),
90
-            )
91
-        );
92
-        $this->_model_relations = array(
93
-            'Price'=>new EE_Has_Many_Relation(),
94
-            'WP_User' => new EE_Belongs_To_Relation(),
95
-        );
96
-        // this model is generally available for reading
97
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
98
-        // all price types are "default" in terms of capability names
99
-        $this->_caps_slug = 'default_price_types';
100
-        parent::__construct($timezone);
101
-    }
102
-
103
-
104
-
105
-
106
-    /**
107
-     *      instantiate a new price type object with blank/empty properties
108
-     *
109
-     *      @access     public
110
-     *      @return     mixed       array on success, FALSE on fail
111
-     */
112
-    public function get_new_price_type()
113
-    {
114
-        return EE_Price_Type::new_instance();
115
-    }
14
+	// private instance of the Price Type object
15
+	protected static $_instance = null;
16
+	// An array of the price type objects
17
+	public $type = null;
18
+
19
+	/**
20
+	 *   Price Base types
21
+	 *
22
+	 *   @access private
23
+	 *   @var int
24
+	 */
25
+	public $base_types = null;
26
+
27
+	/**
28
+	 * return an array of Base types. Keys are INTs which are used in the database,
29
+	 * values are text-representations of the base type.
30
+	 * @return array
31
+	 */
32
+	public function get_base_types()
33
+	{
34
+		return $this->base_types;
35
+	}
36
+
37
+	/**
38
+	 * Gets the name of the base
39
+	 * @param type $base_type_int
40
+	 * @return type
41
+	 */
42
+	public function get_base_type_name($base_type_int)
43
+	{
44
+		return $this->base_types[ $base_type_int ];
45
+	}
46
+
47
+	/**
48
+	 * constants for price base types. In the DB, we decided to store the price base type
49
+	 * as an integer. So, to avoid just having magic numbers everwhere (eg, querying for
50
+	 * all price types with PBT_ID = 2), we define these constants, to make code more understandable.
51
+	 * So, as an example, to query for all price types that are a tax, we'd do
52
+	 * EEM_PRice_Type::instance()->get_all(array(array('PBT_ID'=>EEM_Price_Type::base_type_tax)))
53
+	 * instead of
54
+	 * EEM_Price_Type::instance()->get_all(array(array('PBT_ID'=>2)))
55
+	 * Although the 2nd is shorter, it's much less obvious what it's doing. Also, should these magic IDs ever
56
+	 * change, we can continue to use the constant, by simply change its value.
57
+	 */
58
+	const base_type_base_price = 1;
59
+	const base_type_discount = 2;
60
+	const base_type_surcharge = 3;
61
+	const base_type_tax = 4;
62
+	/**
63
+	 *      private constructor to prevent direct creation
64
+	 *      @Constructor
65
+	 *      @access protected
66
+	 *      @return void
67
+	 */
68
+	protected function __construct($timezone = null)
69
+	{
70
+		$this->base_types = array(
71
+			EEM_Price_Type::base_type_base_price => __('Price', 'event_espresso'),
72
+			EEM_Price_Type::base_type_discount => __('Discount', 'event_espresso'),
73
+			EEM_Price_Type::base_type_surcharge => __('Surcharge', 'event_espresso'),
74
+			EEM_Price_Type::base_type_tax => __('Tax', 'event_espresso') );
75
+		$this->singular_item = __('Price Type', 'event_espresso');
76
+		$this->plural_item = __('Price Types', 'event_espresso');
77
+
78
+		$this->_tables = array(
79
+			'Price_Type'=>new EE_Primary_Table('esp_price_type', 'PRT_ID')
80
+		);
81
+		$this->_fields = array(
82
+			'Price_Type'=>array(
83
+				'PRT_ID'=>new EE_Primary_Key_Int_Field('PRT_ID', __('Price Type ID', 'event_espresso')),
84
+				'PRT_name'=>new EE_Plain_Text_Field('PRT_name', __('Price Type Name', 'event_espresso'), false, ''),
85
+				'PBT_ID'=>new EE_Enum_Integer_Field('PBT_ID', __('Price Base type ID, 1 = Price , 2 = Discount , 3 = Surcharge , 4 = Tax', 'event_espresso'), false, EEM_Price_Type::base_type_base_price, $this->base_types),
86
+				'PRT_is_percent'=>new EE_Boolean_Field('PRT_is_percent', __('Flag indicating price is a percentage', 'event_espresso'), false, false),
87
+				'PRT_order'=>new EE_Integer_Field('PRT_order', __('Order in which price should be applied. ', 'event_espresso'), false, 0),
88
+				'PRT_deleted'=>new EE_Trashed_Flag_Field('PRT_deleted', __('Flag indicating price type has been trashed', 'event_espresso'), false, false),
89
+				'PRT_wp_user' => new EE_WP_User_Field('PRT_wp_user', __('Price Type Creator ID', 'event_espresso'), false),
90
+			)
91
+		);
92
+		$this->_model_relations = array(
93
+			'Price'=>new EE_Has_Many_Relation(),
94
+			'WP_User' => new EE_Belongs_To_Relation(),
95
+		);
96
+		// this model is generally available for reading
97
+		$this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
98
+		// all price types are "default" in terms of capability names
99
+		$this->_caps_slug = 'default_price_types';
100
+		parent::__construct($timezone);
101
+	}
102
+
103
+
104
+
105
+
106
+	/**
107
+	 *      instantiate a new price type object with blank/empty properties
108
+	 *
109
+	 *      @access     public
110
+	 *      @return     mixed       array on success, FALSE on fail
111
+	 */
112
+	public function get_new_price_type()
113
+	{
114
+		return EE_Price_Type::new_instance();
115
+	}
116 116
 
117 117
 
118 118
 
@@ -131,33 +131,33 @@  discard block
 block discarded – undo
131 131
  *
132 132
  * @param type $query_params
133 133
  * @param boolean $allow_blocking if TRUE, matched objects will only be deleted if there is no related model info
134
-     * that blocks it (ie, there' sno other data that depends on this data); if false, deletes regardless of other objects
135
-     * which may depend on it. Its generally advisable to always leave this as TRUE, otherwise you could easily corrupt your DB
134
+ * that blocks it (ie, there' sno other data that depends on this data); if false, deletes regardless of other objects
135
+ * which may depend on it. Its generally advisable to always leave this as TRUE, otherwise you could easily corrupt your DB
136 136
  * @return boolean
137 137
  */
138
-    public function delete_permanently($query_params = array(), $allow_blocking = true)
139
-    {
138
+	public function delete_permanently($query_params = array(), $allow_blocking = true)
139
+	{
140 140
 
141
-        $would_be_deleted_price_types = $this->get_all_deleted_and_undeleted($query_params);
142
-        $would_be_deleted_price_type_ids = array_keys($would_be_deleted_price_types);
141
+		$would_be_deleted_price_types = $this->get_all_deleted_and_undeleted($query_params);
142
+		$would_be_deleted_price_type_ids = array_keys($would_be_deleted_price_types);
143 143
 
144
-        $ID = $query_params[0][ $this->get_primary_key_field()->get_name() ];
144
+		$ID = $query_params[0][ $this->get_primary_key_field()->get_name() ];
145 145
 
146
-        // check if any prices use this price type
147
-        $prc_query_params = array(array('PRT_ID'=>array('IN',$would_be_deleted_price_type_ids)));
148
-        if ($prices = $this->get_all_related($ID, 'Price', $prc_query_params)) {
149
-            $prices_names_and_ids = array();
150
-            foreach ($prices as $price) {
151
-                /* @var $price EE_Price */
152
-                $prices_names_and_ids[] = $price->name()."(".$price->ID().")";
153
-            }
154
-            $msg = sprintf(__('The Price Type(s) could not be deleted because there are existing Prices that currently use this Price Type.  If you still wish to delete this Price Type, then either delete those Prices or change them to use other Price Types.The prices are: %s', 'event_espresso'), implode(",", $prices_names_and_ids));
155
-            EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
156
-            return false;
157
-        }
146
+		// check if any prices use this price type
147
+		$prc_query_params = array(array('PRT_ID'=>array('IN',$would_be_deleted_price_type_ids)));
148
+		if ($prices = $this->get_all_related($ID, 'Price', $prc_query_params)) {
149
+			$prices_names_and_ids = array();
150
+			foreach ($prices as $price) {
151
+				/* @var $price EE_Price */
152
+				$prices_names_and_ids[] = $price->name()."(".$price->ID().")";
153
+			}
154
+			$msg = sprintf(__('The Price Type(s) could not be deleted because there are existing Prices that currently use this Price Type.  If you still wish to delete this Price Type, then either delete those Prices or change them to use other Price Types.The prices are: %s', 'event_espresso'), implode(",", $prices_names_and_ids));
155
+			EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
156
+			return false;
157
+		}
158 158
 
159 159
 
160 160
 
161
-        return parent::delete_permanently($query_params);
162
-    }
161
+		return parent::delete_permanently($query_params);
162
+	}
163 163
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
      */
42 42
     public function get_base_type_name($base_type_int)
43 43
     {
44
-        return $this->base_types[ $base_type_int ];
44
+        return $this->base_types[$base_type_int];
45 45
     }
46 46
 
47 47
     /**
@@ -94,7 +94,7 @@  discard block
 block discarded – undo
94 94
             'WP_User' => new EE_Belongs_To_Relation(),
95 95
         );
96 96
         // this model is generally available for reading
97
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
97
+        $this->_cap_restriction_generators[EEM_Base::caps_read] = new EE_Restriction_Generator_Public();
98 98
         // all price types are "default" in terms of capability names
99 99
         $this->_caps_slug = 'default_price_types';
100 100
         parent::__construct($timezone);
@@ -141,10 +141,10 @@  discard block
 block discarded – undo
141 141
         $would_be_deleted_price_types = $this->get_all_deleted_and_undeleted($query_params);
142 142
         $would_be_deleted_price_type_ids = array_keys($would_be_deleted_price_types);
143 143
 
144
-        $ID = $query_params[0][ $this->get_primary_key_field()->get_name() ];
144
+        $ID = $query_params[0][$this->get_primary_key_field()->get_name()];
145 145
 
146 146
         // check if any prices use this price type
147
-        $prc_query_params = array(array('PRT_ID'=>array('IN',$would_be_deleted_price_type_ids)));
147
+        $prc_query_params = array(array('PRT_ID'=>array('IN', $would_be_deleted_price_type_ids)));
148 148
         if ($prices = $this->get_all_related($ID, 'Price', $prc_query_params)) {
149 149
             $prices_names_and_ids = array();
150 150
             foreach ($prices as $price) {
Please login to merge, or discard this patch.