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.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/functions.php +311 -30 2.2.22.7.4 View file →
@@ -106,13 +106,32 @@
106 106 * @return array Post Types
107 107 */
108 108 function convertkit_get_supported_post_types() {
109 109
110 + // Define supported Post Types.
110 111 $post_types = array(
111 112 'page',
112 113 'post',
113 114 );
114 115
116 + // If public Custom Post Types can be fetched, include them now.
117 + if ( function_exists( 'get_post_types' ) ) {
118 + // Get public Custom Post Types.
119 + $custom_post_types = (array) get_post_types(
120 + array(
121 + 'public' => true,
122 +
123 + // Don't include WordPress' built in Post Types, such as attachment, revisino and nav_menu_item.
124 + '_builtin' => false,
125 + )
126 + );
127 +
128 + $post_types = array_merge(
129 + $post_types,
130 + array_keys( $custom_post_types )
131 + );
132 + }
133 +
115 134 /**
116 135 * Defines the Post Types that support ConvertKit Forms.
117 136 *
118 137 * @since 1.9.6
@@ -129,27 +148,16 @@
129 148 * Helper method to get supported Post Types for Restricted Content (Member's Content)
130 149 *
131 150 * @since 2.1.0
132 151 *
152 + * @deprecated 2.4.3 No longer used by internal code and not recommended. Use `convertkit_get_supported_post_types` instead.
153 + *
133 154 * @return array Post Types
134 155 */
135 156 function convertkit_get_supported_restrict_content_post_types() {
136 157
137 - $post_types = array(
138 - 'page',
139 - );
158 + return convertkit_get_supported_post_types();
140 159
141 - /**
142 - * Defines the Post Types that support Restricted Content / Members Content functionality.
143 - *
144 - * @since 2.0.0
145 - *
146 - * @param array $post_types Post Types
147 - */
148 - $post_types = apply_filters( 'convertkit_get_supported_restrict_content_post_types', $post_types );
149 -
150 - return $post_types;
151 -
152 160 }
153 161
154 162 /**
155 163 * Helper method to get registered Shortcodes.
@@ -223,8 +231,32 @@
223 231
224 232 }
225 233
226 234 /**
235 + * Helper method to get registered pre-publish actions.
236 + *
237 + * @since 2.4.0
238 + *
239 + * @return array Pre-publish actions
240 + */
241 +function convertkit_get_pre_publish_actions() {
242 +
243 + $pre_publish_actions = array();
244 +
245 + /**
246 + * Registers pre-publish actions for the ConvertKit Plugin.
247 + *
248 + * @since 2.4.0
249 + *
250 + * @param array $pre_publish_panels Pre-publish actions.
251 + */
252 + $pre_publish_actions = apply_filters( 'convertkit_get_pre_publish_actions', $pre_publish_actions );
253 +
254 + return $pre_publish_actions;
255 +
256 +}
257 +
258 +/**
227 259 * Helper method to return the Plugin Settings Link
228 260 *
229 261 * @since 1.9.6
230 262 *
@@ -244,8 +276,29 @@
244 276
245 277 }
246 278
247 279 /**
280 + * Helper method to return the Plugin Settings Link
281 + *
282 + * @since 2.2.4
283 + *
284 + * @param array $query_args Optional Query Args.
285 + * @return string Settings Link
286 + */
287 +function convertkit_get_setup_wizard_plugin_link( $query_args = array() ) {
288 +
289 + $query_args = array_merge(
290 + $query_args,
291 + array(
292 + 'page' => 'convertkit-setup',
293 + )
294 + );
295 +
296 + return add_query_arg( $query_args, admin_url( 'options.php' ) );
297 +
298 +}
299 +
300 +/**
248 301 * Helper method to return the URL the user needs to visit to register a ConvertKit account.
249 302 *
250 303 * @since 1.9.8.4
251 304 *
@@ -258,9 +311,9 @@
258 311 'utm_source' => 'wordpress',
259 312 'utm_term' => get_locale(),
260 313 'utm_content' => 'convertkit',
261 314 ),
262 - 'https://app.convertkit.com/users/signup'
315 + 'https://app.kit.com/users/signup'
263 316 );
264 317
265 318 }
266 319
@@ -278,21 +331,101 @@
278 331 'utm_source' => 'wordpress',
279 332 'utm_term' => get_locale(),
280 333 'utm_content' => 'convertkit',
281 334 ),
282 - 'https://app.convertkit.com/'
335 + 'https://app.kit.com/'
283 336 );
284 337
285 338 }
286 339
287 340 /**
288 - * Helper method to return the URL the user needs to visit on the ConvertKit app to obtain their API Key and Secret.
341 + * Helper method to return the URL the user needs to visit to manage thier billing.
289 342 *
290 - * @since 1.9.6.1
343 + * @since 2.2.7
291 344 *
345 + * @return string ConvertKit Billing URL.
346 + */
347 +function convertkit_get_billing_url() {
348 +
349 + return add_query_arg(
350 + array(
351 + 'utm_source' => 'wordpress',
352 + 'utm_term' => get_locale(),
353 + 'utm_content' => 'convertkit',
354 + ),
355 + 'https://app.kit.com/account_settings/billing/'
356 + );
357 +
358 +}
359 +
360 +/**
361 + * Helper method to return the URL the user needs to visit on the ConvertKit app to create a new Form or Landing Page.
362 + *
363 + * @since 2.2.3
364 + *
365 + * @return string ConvertKit App URL
366 + */
367 +function convertkit_get_new_form_url() {
368 +
369 + return add_query_arg(
370 + array(
371 + 'utm_source' => 'wordpress',
372 + 'utm_term' => get_locale(),
373 + 'utm_content' => 'convertkit',
374 + ),
375 + 'https://app.kit.com/forms/new/'
376 + );
377 +
378 +}
379 +
380 +/**
381 + * Helper method to return the URL the user needs to visit to edit ConvertKit forms.
382 + *
383 + * @since 2.2.3
384 + *
385 + * @return string ConvertKit Form Editor URL.
386 + */
387 +function convertkit_get_form_editor_url() {
388 +
389 + return add_query_arg(
390 + array(
391 + 'utm_source' => 'wordpress',
392 + 'utm_term' => get_locale(),
393 + 'utm_content' => 'convertkit',
394 + ),
395 + 'https://app.kit.com/forms'
396 + );
397 +
398 +}
399 +
400 +/**
401 + * Helper method to return the URL the user needs to visit on the ConvertKit app to create a new Landing Page.
402 + *
403 + * @since 2.5.5
404 + *
405 + * @return string ConvertKit App URL
406 + */
407 +function convertkit_get_new_landing_page_url() {
408 +
409 + return add_query_arg(
410 + array(
411 + 'utm_source' => 'wordpress',
412 + 'utm_term' => get_locale(),
413 + 'utm_content' => 'convertkit',
414 + ),
415 + 'https://app.kit.com/pages/new/'
416 + );
417 +
418 +}
419 +
420 +/**
421 + * Helper method to return the URL the user needs to visit on the ConvertKit app to create a new Tag.
422 + *
423 + * @since 2.3.3
424 + *
292 425 * @return string ConvertKit App URL.
293 426 */
294 -function convertkit_get_api_key_url() {
427 +function convertkit_get_new_tag_url() {
295 428
296 429 return add_query_arg(
297 430 array(
298 431 'utm_source' => 'wordpress',
@@ -298,14 +431,78 @@
298 431 'utm_source' => 'wordpress',
299 432 'utm_term' => get_locale(),
300 433 'utm_content' => 'convertkit',
301 434 ),
302 - 'https://app.convertkit.com/account_settings/advanced_settings/'
435 + 'https://app.kit.com/subscribers/'
303 436 );
304 437
305 438 }
306 439
307 440 /**
441 + * Helper method to return the URL the user needs to visit on the ConvertKit app to create a new Broadcast.
442 + *
443 + * @since 2.2.6
444 + *
445 + * @return string ConvertKit App URL.
446 + */
447 +function convertkit_get_new_broadcast_url() {
448 +
449 + return add_query_arg(
450 + array(
451 + 'utm_source' => 'wordpress',
452 + 'utm_term' => get_locale(),
453 + 'utm_content' => 'convertkit',
454 + ),
455 + 'https://app.kit.com/campaigns/'
456 + );
457 +
458 +}
459 +
460 +/**
461 + * Helper method to return the URL the user needs to visit on the ConvertKit app to edit a draft Broadcast.
462 + *
463 + * @since 2.4.0
464 + *
465 + * @param int $broadcast_id ConvertKit Broadcast ID.
466 + * @return string ConvertKit App URL.
467 + */
468 +function convertkit_get_edit_broadcast_url( $broadcast_id ) {
469 +
470 + return add_query_arg(
471 + array(
472 + 'utm_source' => 'wordpress',
473 + 'utm_term' => get_locale(),
474 + 'utm_content' => 'convertkit',
475 + ),
476 + sprintf(
477 + 'https://app.kit.com/campaigns/%s/draft',
478 + $broadcast_id
479 + )
480 + );
481 +
482 +}
483 +
484 +/**
485 + * Helper method to return the URL the user needs to visit on the ConvertKit app to create a new Product.
486 + *
487 + * @since 2.2.3
488 + *
489 + * @return string ConvertKit App URL.
490 + */
491 +function convertkit_get_new_product_url() {
492 +
493 + return add_query_arg(
494 + array(
495 + 'utm_source' => 'wordpress',
496 + 'utm_term' => get_locale(),
497 + 'utm_content' => 'convertkit',
498 + ),
499 + 'https://app.kit.com/products/new/'
500 + );
501 +
502 +}
503 +
504 +/**
308 505 * Helper method to enqueue Select2 scripts for use within the ConvertKit Plugin.
309 506 *
310 507 * @since 1.9.6.4
311 508 */
@@ -337,22 +534,106 @@
337 534 * @return string File contents.
338 535 */
339 536 function convertkit_get_file_contents( $local_file ) {
340 537
341 - // Call globals.
342 - global $wp_filesystem;
538 + // Bail if the file doesn't exist.
539 + if ( ! file_exists( $local_file ) ) {
540 + return '';
541 + }
343 542
344 - // Load filesystem class.
345 - require_once ABSPATH . 'wp-admin/includes/file.php';
543 + // Read file.
544 + $contents = file_get_contents( $local_file ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
346 545
347 - // Initiate.
348 - WP_Filesystem();
349 -
350 - // Bail if the file doesn't exist.
351 - if ( ! $wp_filesystem->exists( $local_file ) ) {
546 + // Return an empty string if the contents of the file could not be read.
547 + if ( ! $contents ) {
352 548 return '';
353 549 }
354 550
355 551 // Return file's contents.
356 - return $wp_filesystem->get_contents( $local_file );
552 + return $contents;
553 +
554 +}
555 +
556 +/**
557 + * Returns a dropdown field commonly used for settings, comprising of:
558 + * - Do not subscribe
559 + * - Subscribe
560 + * - Subscribe to Form
561 + *
562 + * @since 2.5.2
563 + *
564 + * @param string $name Field name.
565 + * @param string $value Field value.
566 + * @param string $id Field ID attribute.
567 + * @param string $css_class Field CSS class(es).
568 + * @param string $context Resource context.
569 + * @param bool|array $additional_options Additional <option> key/value pairs.
570 + */
571 +function convertkit_get_subscription_dropdown_field( $name, $value, $id, $css_class = '', $context = '', $additional_options = false ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter
572 +
573 + // Load resource classes.
574 + $forms = new ConvertKit_Resource_Forms( $context );
575 + $tags = new ConvertKit_Resource_Tags( $context );
576 + $sequences = new ConvertKit_Resource_Sequences( $context );
577 +
578 + ob_start();
579 + include CONVERTKIT_PLUGIN_PATH . '/views/backend/subscription-dropdown-field.php';
580 + $output = trim( ob_get_clean() );
581 +
582 + // Return output.
583 + return $output;
584 +
585 +}
586 +
587 +/**
588 + * Helper method to safely call get_current_screen(), returning false
589 + * if the function is not available or returns null.
590 + *
591 + * Otherwise returns the given WP_Screen property.
592 + *
593 + * @since 2.5.9
594 + *
595 + * @param string $property WP_Screen property to return.
596 + * @return bool|string
597 + */
598 +function convertkit_get_current_screen( $property ) {
599 +
600 + // Bail if we cannot determine the screen.
601 + if ( ! function_exists( 'get_current_screen' ) ) {
602 + return false;
603 + }
604 +
605 + // Get screen.
606 + $screen = get_current_screen();
607 +
608 + // Bail if the screen couldn't be determined.
609 + if ( is_null( $screen ) ) {
610 + return false;
611 + }
612 +
613 + // Return property.
614 + return $screen->$property;
615 +
616 +}
617 +
618 +/**
619 + * Outputs the Intercom help widget script.
620 + *
621 + * @since 2.7.2
622 + */
623 +function convertkit_output_intercom_messenger() {
624 +
625 + ?>
626 + <script>
627 + const KIT_INTERCOM_APP_ID = 'e4n3xtxz';
628 + window.intercomSettings = {
629 + api_base: 'https://api-iam.intercom.io',
630 + app_id: KIT_INTERCOM_APP_ID
631 + };
632 + </script>
633 +
634 + <script>
635 + (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/' + KIT_INTERCOM_APP_ID;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();
636 + </script>
637 + <?php
357 638
358 639 }