PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 2.7.4
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v2.7.4
3.4.4 3.4.3 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 All 197 releases
← All changes | includes/class-wp-convertkit.php +73 -72 3.3.92.7.4 View file →
@@ -39,27 +39,9 @@
39 39 * @since 1.9.6
40 40 */
41 41 public function __construct() {
42 42
43 - // Initialize classes that have hooks prior to the `init` hook.
44 - // Divi Theme requires us to do this, although the Divi Builder Plugin works fine when loading
45 - // our integration on `init`.
46 - $this->classes['divi'] = new ConvertKit_Divi();
47 - $this->classes['widgets'] = new ConvertKit_Widgets();
48 -
49 - // Initialize Plugin classes on init, so the `_load_textdomain_just_in_time` warning isn't triggered.
50 - add_action( 'init', array( $this, 'initialize' ), 1 );
51 - add_action( 'init', array( $this, 'setup' ), 2 );
52 -
53 - }
54 -
55 - /**
56 - * Initialize classes.
57 - *
58 - * @since 2.7.7
59 - */
60 - public function initialize() {
61 -
43 + // Initialize class(es) to register hooks.
62 44 $this->initialize_admin();
63 45 $this->initialize_admin_or_frontend_editor();
64 46 $this->initialize_cli_cron();
65 47 $this->initialize_frontend();
@@ -64,8 +46,11 @@
64 46 $this->initialize_cli_cron();
65 47 $this->initialize_frontend();
66 48 $this->initialize_global();
67 49
50 + // Load language files.
51 + add_action( 'init', array( $this, 'load_language_files' ) );
52 +
68 53 }
69 54
70 55 /**
71 56 * Initialize classes for the WordPress Administration interface
@@ -78,27 +63,23 @@
78 63 if ( ! is_admin() ) {
79 64 return;
80 65 }
81 66
82 - $this->classes['admin_bulk_edit'] = new ConvertKit_Admin_Bulk_Edit();
83 - $this->classes['admin_cache_plugins'] = new ConvertKit_Admin_Cache_Plugins();
84 - $this->classes['admin_category'] = new ConvertKit_Admin_Category();
85 - $this->classes['admin_landing_page'] = new ConvertKit_Admin_Landing_Page();
86 - $this->classes['admin_legacy_resource_notice'] = new ConvertKit_Admin_Legacy_Resource_Notice();
87 - $this->classes['admin_importer_activecampaign'] = new ConvertKit_Admin_Importer_ActiveCampaign();
88 - $this->classes['admin_importer_aweber'] = new ConvertKit_Admin_Importer_AWeber();
89 - $this->classes['admin_importer_campaignmonitor'] = new ConvertKit_Admin_Importer_CampaignMonitor();
90 - $this->classes['admin_importer_convertkit_legacy_forms'] = new ConvertKit_Admin_Importer_ConvertKit_Legacy_Forms();
91 - $this->classes['admin_importer_mc4wp'] = new ConvertKit_Admin_Importer_MC4WP();
92 - $this->classes['admin_importer_mailpoet'] = new ConvertKit_Admin_Importer_Mailpoet();
93 - $this->classes['admin_importer_newsletter'] = new ConvertKit_Admin_Importer_Newsletter();
94 - $this->classes['admin_post'] = new ConvertKit_Admin_Post();
95 - $this->classes['admin_quick_edit'] = new ConvertKit_Admin_Quick_Edit();
96 - $this->classes['admin_restrict_content'] = new ConvertKit_Admin_Restrict_Content();
97 - $this->classes['admin_settings'] = new ConvertKit_Admin_Settings();
98 - $this->classes['admin_setup_wizard_landing_page'] = new ConvertKit_Admin_Setup_Wizard_Landing_Page();
99 - $this->classes['admin_setup_wizard_plugin'] = new ConvertKit_Admin_Setup_Wizard_Plugin();
100 - $this->classes['admin_setup_wizard_restrict_content'] = new ConvertKit_Admin_Setup_Wizard_Restrict_Content();
67 + $this->classes['admin_bulk_edit'] = new ConvertKit_Admin_Bulk_Edit();
68 + $this->classes['admin_cache_plugins'] = new ConvertKit_Admin_Cache_Plugins();
69 + $this->classes['admin_category'] = new ConvertKit_Admin_Category();
70 + $this->classes['admin_landing_page'] = new ConvertKit_Admin_Landing_Page();
71 + $this->classes['admin_notices'] = new ConvertKit_Admin_Notices();
72 + $this->classes['admin_post'] = new ConvertKit_Admin_Post();
73 + $this->classes['admin_quick_edit'] = new ConvertKit_Admin_Quick_Edit();
74 + $this->classes['admin_refresh_resources'] = new ConvertKit_Admin_Refresh_Resources();
75 + $this->classes['admin_restrict_content'] = new ConvertKit_Admin_Restrict_Content();
76 + $this->classes['admin_settings'] = new ConvertKit_Admin_Settings();
77 + $this->classes['admin_setup_wizard_landing_page'] = new ConvertKit_Admin_Setup_Wizard_Landing_Page();
78 + $this->classes['admin_setup_wizard_plugin'] = new ConvertKit_Admin_Setup_Wizard_Plugin();
79 + $this->classes['admin_setup_wizard_restrict_content'] = new ConvertKit_Admin_Setup_Wizard_Restrict_Content();
80 + $this->classes['admin_tinymce'] = new ConvertKit_Admin_TinyMCE();
81 + $this->classes['admin_user'] = new ConvertKit_Admin_User();
101 82
102 83 /**
103 84 * Initialize integration classes for the WordPress Administration interface.
104 85 *
@@ -182,36 +163,35 @@
182 163 * @since 1.9.6
183 164 */
184 165 private function initialize_global() {
185 166
186 - $this->classes['admin_notices'] = new ConvertKit_Admin_Notices();
187 - $this->classes['admin_tinymce'] = new ConvertKit_Admin_TinyMCE();
188 - $this->classes['admin_refresh_resources'] = new ConvertKit_Admin_Refresh_Resources();
189 - $this->classes['blocks_convertkit_broadcasts'] = new ConvertKit_Block_Broadcasts();
190 - $this->classes['blocks_convertkit_content'] = new ConvertKit_Block_Content();
191 - $this->classes['blocks_convertkit_formtrigger'] = new ConvertKit_Block_Form_Trigger();
192 - $this->classes['blocks_convertkit_form'] = new ConvertKit_Block_Form();
193 - $this->classes['blocks_convertkit_form_builder'] = new ConvertKit_Block_Form_Builder();
194 - $this->classes['blocks_convertkit_form_builder_field_email'] = new ConvertKit_Block_Form_Builder_Field_Email();
195 - $this->classes['blocks_convertkit_form_builder_field_name'] = new ConvertKit_Block_Form_Builder_Field_Name();
196 - $this->classes['blocks_convertkit_form_builder_field_custom'] = new ConvertKit_Block_Form_Builder_Field_Custom();
197 - $this->classes['blocks_convertkit_product'] = new ConvertKit_Block_Product();
198 - $this->classes['block_formatter_form_link'] = new ConvertKit_Block_Formatter_Form_Link();
199 - $this->classes['block_formatter_product_link'] = new ConvertKit_Block_Formatter_Product_Link();
200 - $this->classes['pre_publish_action_broadcast_export'] = new ConvertKit_Pre_Publish_Action_Broadcast_Export();
201 - $this->classes['plugin_sidebar_post_settings'] = new ConvertKit_Plugin_Sidebar_Post_Settings();
202 - $this->classes['broadcasts_exporter'] = new ConvertKit_Broadcasts_Exporter();
203 - $this->classes['broadcasts_importer'] = new ConvertKit_Broadcasts_Importer();
204 - $this->classes['elementor'] = new ConvertKit_Elementor();
205 - $this->classes['gutenberg'] = new ConvertKit_Gutenberg();
206 - $this->classes['media_library'] = new ConvertKit_Media_Library();
207 - $this->classes['output_restrict_content'] = new ConvertKit_Output_Restrict_Content();
208 - $this->classes['restrict_content_cache'] = new ConvertKit_Restrict_Content_Cache();
209 - $this->classes['review_request'] = new ConvertKit_Review_Request( 'Kit', 'convertkit', CONVERTKIT_PLUGIN_PATH );
210 - $this->classes['preview_output'] = new ConvertKit_Preview_Output();
211 - $this->classes['setup'] = new ConvertKit_Setup();
212 - $this->classes['shortcodes'] = new ConvertKit_Shortcodes();
167 + $this->classes['ajax'] = new ConvertKit_AJAX();
168 + $this->classes['blocks_convertkit_broadcasts'] = new ConvertKit_Block_Broadcasts();
169 + $this->classes['blocks_convertkit_content'] = new ConvertKit_Block_Content();
170 + $this->classes['blocks_convertkit_formtrigger'] = new ConvertKit_Block_Form_Trigger();
171 + $this->classes['blocks_convertkit_form'] = new ConvertKit_Block_Form();
172 + $this->classes['blocks_convertkit_product'] = new ConvertKit_Block_Product();
173 + $this->classes['block_formatter_form_link'] = new ConvertKit_Block_Formatter_Form_Link();
174 + $this->classes['block_formatter_product_link'] = new ConvertKit_Block_Formatter_Product_Link();
175 + $this->classes['pre_publish_action_broadcast_export'] = new ConvertKit_Pre_Publish_Action_Broadcast_Export();
176 + $this->classes['broadcasts_exporter'] = new ConvertKit_Broadcasts_Exporter();
177 + $this->classes['broadcasts_importer'] = new ConvertKit_Broadcasts_Importer();
178 + $this->classes['divi'] = new ConvertKit_Divi();
179 + $this->classes['elementor'] = new ConvertKit_Elementor();
180 + $this->classes['gutenberg'] = new ConvertKit_Gutenberg();
181 + $this->classes['media_library'] = new ConvertKit_Media_Library();
182 + $this->classes['output_restrict_content'] = new ConvertKit_Output_Restrict_Content();
183 + $this->classes['review_request'] = new ConvertKit_Review_Request( 'Kit', 'convertkit', CONVERTKIT_PLUGIN_PATH );
184 + $this->classes['preview_output'] = new ConvertKit_Preview_Output();
185 + $this->classes['setup'] = new ConvertKit_Setup();
186 + $this->classes['shortcodes'] = new ConvertKit_Shortcodes();
187 + $this->classes['widgets'] = new ConvertKit_Widgets();
213 188
189 + // Run the setup's update process on WordPress' init hook.
190 + // Doing this sooner may result in errors with WordPress functions that are not yet
191 + // available to the update routine.
192 + add_action( 'init', array( $this, 'init' ) );
193 +
214 194 /**
215 195 * Initialize integration classes for the frontend web site.
216 196 *
217 197 * @since 1.9.6
@@ -226,9 +206,9 @@
226 206 * and if so runs any specific processes that might be needed.
227 207 *
228 208 * @since 1.9.7.4
229 209 */
230 - public function setup() {
210 + public function init() {
231 211
232 212 $this->get_class( 'setup' )->initialize();
233 213 $this->get_class( 'setup' )->update();
234 214
@@ -250,15 +230,15 @@
250 230 }
251 231
252 232 // Pro.
253 233 if ( array_key_exists( 'REQUEST_URI', $_SERVER ) ) {
254 - if ( strpos( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), '/pro/' ) !== false ) {
234 + if ( strpos( sanitize_text_field( $_SERVER['REQUEST_URI'] ), '/pro/' ) !== false ) {
255 235 return true;
256 236 }
257 - if ( strpos( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), '/x/' ) !== false ) {
237 + if ( strpos( sanitize_text_field( $_SERVER['REQUEST_URI'] ), '/x/' ) !== false ) {
258 238 return true;
259 239 }
260 - if ( strpos( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 'cornerstone-endpoint' ) !== false ) {
240 + if ( strpos( sanitize_text_field( $_SERVER['REQUEST_URI'] ), 'cornerstone-endpoint' ) !== false ) {
261 241 return true;
262 242 }
263 243 }
264 244
@@ -290,9 +270,9 @@
290 270 return true;
291 271 }
292 272
293 273 // Elementor.
294 - if ( array_key_exists( 'action', $_REQUEST ) && sanitize_text_field( wp_unslash( $_REQUEST['action'] ) ) === 'elementor' ) {
274 + if ( array_key_exists( 'action', $_REQUEST ) && sanitize_text_field( $_REQUEST['action'] ) === 'elementor' ) {
295 275 return true;
296 276 }
297 277
298 278 // Kallyas.
@@ -320,9 +300,9 @@
320 300 return true;
321 301 }
322 302
323 303 // Zion Builder.
324 - if ( array_key_exists( 'action', $_REQUEST ) && sanitize_text_field( wp_unslash( $_REQUEST['action'] ) ) === 'zion_builder_active' ) {
304 + if ( array_key_exists( 'action', $_REQUEST ) && sanitize_text_field( $_REQUEST['action'] ) === 'zion_builder_active' ) {
325 305 return true;
326 306 }
327 307
328 308 // Assume we're not in the Administration interface.
@@ -374,9 +354,30 @@
374 354 * @return bool Is WP CRON Request
375 355 */
376 356 public function is_cron() {
377 357
378 - return wp_doing_cron();
358 + if ( ! defined( 'DOING_CRON' ) ) {
359 + return false;
360 + }
361 + if ( ! DOING_CRON ) {
362 + return false;
363 + }
364 +
365 + return true;
366 +
367 + }
368 +
369 + /**
370 + * Loads the plugin's translated strings, if available.
371 + *
372 + * @since 1.0.0
373 + */
374 + public function load_language_files() {
375 +
376 + // If the .mo file for a given language is available in WP_LANG_DIR/convertkit
377 + // i.e. it's available as a translation at https://translate.wordpress.org/projects/wp-plugins/convertkit/,
378 + // it will be used instead of the .mo file in convertkit/languages.
379 + load_plugin_textdomain( 'convertkit', false, 'convertkit/languages' );
379 380
380 381 }
381 382
382 383 /**