PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 2.8.6
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v2.8.6
3.4.2 3.4.1 3.4.0 3.3.9 3.3.8 3.3.7 3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 2.3.2 All 195 releases
← All changes | includes/class-convertkit-setup.php +25 -158 3.4.22.8.6 View file →
@@ -24,12 +24,8 @@
24 24
25 25 // Call any functions to e.g. schedule WordPress Cron events now.
26 26 $this->schedule_cron_events();
27 27
28 - // Install entries database table.
29 - $entries = new ConvertKit_Form_Entries();
30 - $entries->create_database_table();
31 -
32 28 }
33 29
34 30 /**
35 31 * Runs routines on every Plugin request e.g.
@@ -60,27 +56,8 @@
60 56 return;
61 57 }
62 58
63 59 /**
64 - * 3.0.4: Add form_id to entries database table.
65 - */
66 - if ( version_compare( $current_version, '3.0.4', '<' ) ) {
67 - $this->add_form_id_column_and_key_to_form_entries_database_table();
68 - }
69 -
70 - /**
71 - * 3.0.0: Migrate reCAPTCHA settings from Restrict Content to General settings.
72 - * Install entries database table.
73 - */
74 - if ( version_compare( $current_version, '3.0.0', '<' ) ) {
75 - $this->migrate_recaptcha_settings();
76 -
77 - // Install entries database table.
78 - $entries = new ConvertKit_Form_Entries();
79 - $entries->create_database_table();
80 - }
81 -
82 - /**
83 60 * 2.6.6: Migrate 'Default' Form value in _wp_convertkit_term_meta[form] from 0 to -1,
84 61 * to match Posts.
85 62 */
86 63 if ( version_compare( $current_version, '2.6.6', '<' ) ) {
@@ -133,8 +110,16 @@
133 110 $this->migrate_term_form_settings();
134 111 }
135 112
136 113 /**
114 + * 1.6.1+: Refresh Forms, Landing Pages and Tags data stored in settings,
115 + * to get new Forms Builder Settings.
116 + */
117 + if ( version_compare( $current_version, '1.6.1', '<' ) ) {
118 + $this->refresh_resources();
119 + }
120 +
121 + /**
137 122 * 1.9.6+: Migrate _wp_convertkit_settings[default_form] to _wp_convertkit_settings[page_form] and
138 123 * _wp_convertkit_settings[post_form], now that each Post Type has its own Default Form setting
139 124 * in Settings > Kit > General.
140 125 */
@@ -150,13 +135,8 @@
150 135 $posts = new ConvertKit_Resource_Posts( 'cron' );
151 136 $posts->schedule_cron_event();
152 137 }
153 138
154 - // Actions that should run regardless of the version number
155 - // whenever the Plugin is updated.
156 - $this->remove_v3_api_secret_from_settings();
157 - $this->maybe_delete_old_cached_resource_structure();
158 -
159 139 // Update the installed version number in the options table.
160 140 update_option( 'convertkit_version', CONVERTKIT_PLUGIN_VERSION );
161 141
162 142 }
@@ -161,137 +141,8 @@
161 141
162 142 }
163 143
164 144 /**
165 - * Remove v3 API Secret from settings.
166 - *
167 - * @since 3.2.4
168 - */
169 - private function remove_v3_api_secret_from_settings() {
170 -
171 - $settings = new ConvertKit_Settings();
172 - $settings->save(
173 - array(
174 - 'api_secret' => '',
175 - )
176 - );
177 -
178 - }
179 -
180 - /**
181 - * Deletes any cached resources stored in the options table if they are a flat array
182 - * that originates from between 1.6.0 and 1.9.5.2 of the Plugin.
183 - * i.e. [id => name], rather than the expected [id => [id => '...', name => '...', ...]].
184 - *
185 - * This will permit the Resources classes to fetch and cache the Form resources correctly
186 - * from the API, and prevent fatal errors when a user activates the latest version of the Plugin
187 - * on a site that previously had a very old Plugin version installed.
188 - *
189 - * @since 3.2.5
190 - */
191 - private function maybe_delete_old_cached_resource_structure() {
192 -
193 - // Define the resource options to check.
194 - $resource_options = array(
195 - 'convertkit_forms',
196 - 'convertkit_landing_pages',
197 - 'convertkit_tags',
198 - );
199 -
200 - foreach ( $resource_options as $resource_option ) {
201 - // Get the resource option.
202 - $resource = get_option( $resource_option, false );
203 -
204 - // If the resource option does not exist, there's nothing to delete.
205 - if ( false === $resource ) {
206 - return;
207 - }
208 -
209 - // If the resource structure is correct e.g. [id => [name => '...']], there's nothing to delete.
210 - if ( is_array( reset( $resource ) ) ) {
211 - return;
212 - }
213 -
214 - // Delete the cached resource.
215 - delete_option( $resource_option );
216 - }
217 -
218 - }
219 -
220 - /**
221 - * Adds form_id column and key to form entries database table.
222 - *
223 - * @since 3.0.4
224 - */
225 - private function add_form_id_column_and_key_to_form_entries_database_table() {
226 -
227 - global $wpdb;
228 -
229 - // Check if the column exists.
230 - $exists = $wpdb->get_var(
231 - $wpdb->prepare(
232 - 'SELECT COLUMN_NAME
233 - FROM INFORMATION_SCHEMA.COLUMNS
234 - WHERE table_name = %s
235 - AND table_schema = %s
236 - AND column_name = %s',
237 - $wpdb->prefix . 'kit_form_entries',
238 - $wpdb->dbname,
239 - 'form_id'
240 - )
241 - );
242 -
243 - // If the column exists, don't add it again.
244 - if ( $exists === 'form_id' ) {
245 - return;
246 - }
247 -
248 - // Add the form_id column and key.
249 - $wpdb->query(
250 - $wpdb->prepare( 'ALTER TABLE %i ADD COLUMN `form_id` int(11) NOT NULL AFTER `custom_fields`', $wpdb->prefix . 'kit_form_entries' )
251 - );
252 - $wpdb->query(
253 - $wpdb->prepare( 'ALTER TABLE %i ADD KEY `form_id` (`form_id`)', $wpdb->prefix . 'kit_form_entries' )
254 - );
255 -
256 - }
257 -
258 - /**
259 - * 3.0.0: Migrate reCAPTCHA settings from Restrict Content settings to General settings.
260 - *
261 - * @since 3.0.0
262 - */
263 - private function migrate_recaptcha_settings() {
264 -
265 - // Read Restrict Content settings directly from options table,
266 - // as Convertkit_Settings_Restrict_Content won't have helper
267 - // methods to return the specific settings.
268 - $settings = get_option( '_wp_convertkit_settings_restrict_content' );
269 -
270 - // If no reCAPTCHA settings exist, bail.
271 - if ( ! isset( $settings['recaptcha_site_key'] ) || ! isset( $settings['recaptcha_secret_key'] ) || ! isset( $settings['recaptcha_minimum_score'] ) ) {
272 - return;
273 - }
274 -
275 - // Load settings class, saving the reCAPTCHA settings to the General settings.
276 - $convertkit_settings = new ConvertKit_Settings();
277 - $convertkit_settings->save(
278 - array(
279 - 'recaptcha_site_key' => $settings['recaptcha_site_key'],
280 - 'recaptcha_secret_key' => $settings['recaptcha_secret_key'],
281 - 'recaptcha_minimum_score' => $settings['recaptcha_minimum_score'],
282 - )
283 - );
284 -
285 - // Remove reCAPTCHA settings from Restrict Content settings.
286 - unset( $settings['recaptcha_site_key'] );
287 - unset( $settings['recaptcha_secret_key'] );
288 - unset( $settings['recaptcha_minimum_score'] );
289 - update_option( '_wp_convertkit_settings_restrict_content', $settings );
290 -
291 - }
292 -
293 - /**
294 145 * Change the Default value of 0 to -1 in wp_convertkit_term_meta[form], to
295 146 * match how the Default value is stored in Posts.
296 147 *
297 148 * @since 2.6.6
@@ -620,9 +471,9 @@
620 471 $convertkit_settings->get_api_secret(),
621 472 get_site_url()
622 473 );
623 474
624 - // Bail if an error occurred.
475 + // Bail if an error occured.
625 476 if ( is_wp_error( $result ) ) {
626 477 return;
627 478 }
628 479
@@ -709,8 +560,24 @@
709 560 unset( $settings['default_form'] );
710 561
711 562 // Update.
712 563 update_option( $convertkit_settings::SETTINGS_NAME, $settings );
564 +
565 + }
566 +
567 + /**
568 + * 1.6.1: Refresh Forms, Landing Pages and Tags data stored in settings,
569 + * to get new Forms Builder Settings.
570 + */
571 + private function refresh_resources() {
572 +
573 + $forms = new ConvertKit_Resource_Forms( 'setup' );
574 + $landing_pages = new ConvertKit_Resource_Landing_Pages( 'setup' );
575 + $tags = new ConvertKit_Resource_Tags( 'setup' );
576 +
577 + $forms->refresh();
578 + $landing_pages->refresh();
579 + $tags->refresh();
713 580
714 581 }
715 582
716 583 /**