PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 1.3.8
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v1.3.8
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 2.3.1 All 196 releases
← All changes | wp-convertkit.php +222 -171 3.3.81.3.8 View file →
@@ -1,192 +1,243 @@
1 1 <?php
2 -/**
3 - * Kit (formerly ConvertKit) WordPress Plugin.
4 - *
5 - * @package ConvertKit
6 - * @author ConvertKit
7 - *
8 - * @wordpress-plugin
9 - * Plugin Name: Kit (formerly ConvertKit)
10 - * Plugin URI: https://kit.com/
11 - * Description: Display Kit (formerly ConvertKit) email subscription forms, landing pages, products, broadcasts and more.
12 - * Version: 3.3.8
13 - * Author: Kit
14 - * Author URI: https://kit.com/
15 - * Text Domain: convertkit
16 - * License: GPLv3 or later
17 - * License URI: https://www.gnu.org/licenses/gpl-3.0.html
2 +/*
3 + Plugin Name: WP ConvertKit
4 + Plugin URI: http://convertkit.com/
5 + Description: Quickly and easily integrate ConvertKit forms into your site.
6 + Version: 1.3.8
7 + Author: ConvertKit
8 + Author URI: http://convertkit.com/
18 9 */
19 10
20 -// Bail if Kit is already loaded.
21 -if ( class_exists( 'WP_ConvertKit' ) ) {
22 - return;
23 -}
11 +require_once plugin_dir_path( __FILE__ ) . "/lib/convertkit-api.php";
12 +require_once plugin_dir_path( __FILE__ ) . "/lib/integration/wishlist_member.php";
24 13
25 -// Define Kit Plugin paths and version number.
26 -define( 'CONVERTKIT_PLUGIN_NAME', 'ConvertKit' ); // Used for user-agent in API class.
27 -define( 'CONVERTKIT_PLUGIN_FILE', plugin_basename( __FILE__ ) );
28 -define( 'CONVERTKIT_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
29 -define( 'CONVERTKIT_PLUGIN_PATH', __DIR__ );
30 -define( 'CONVERTKIT_PLUGIN_VERSION', '3.3.8' );
31 -define( 'CONVERTKIT_OAUTH_CLIENT_ID', 'HXZlOCj-K5r0ufuWCtyoyo3f688VmMAYSsKg1eGvw0Y' );
32 -define( 'CONVERTKIT_OAUTH_CLIENT_REDIRECT_URI', 'https://app.kit.com/wordpress/redirect' );
14 +if(!class_exists('WP_ConvertKit')) {
15 + class WP_ConvertKit {
33 16
34 -// Load shared classes, if they have not been included by another Kit Plugin.
35 -if ( ! trait_exists( 'ConvertKit_API_Traits' ) && ! trait_exists( 'ConvertKit_API\ConvertKit_API_Traits' ) ) {
36 - require_once CONVERTKIT_PLUGIN_PATH . '/vendor/convertkit/convertkit-wordpress-libraries/src/class-convertkit-api-traits.php';
37 -}
38 -if ( ! class_exists( 'ConvertKit_API_V4' ) ) {
39 - require_once CONVERTKIT_PLUGIN_PATH . '/vendor/convertkit/convertkit-wordpress-libraries/src/class-convertkit-api-v4.php';
40 -}
41 -if ( ! class_exists( 'ConvertKit_Log' ) ) {
42 - require_once CONVERTKIT_PLUGIN_PATH . '/vendor/convertkit/convertkit-wordpress-libraries/src/class-convertkit-log.php';
43 -}
44 -if ( ! class_exists( 'ConvertKit_Resource_V4' ) ) {
45 - require_once CONVERTKIT_PLUGIN_PATH . '/vendor/convertkit/convertkit-wordpress-libraries/src/class-convertkit-resource-v4.php';
46 -}
47 -if ( ! class_exists( 'ConvertKit_Review_Request' ) ) {
48 - require_once CONVERTKIT_PLUGIN_PATH . '/vendor/convertkit/convertkit-wordpress-libraries/src/class-convertkit-review-request.php';
49 -}
17 + // Plugin Version
18 + const VERSION = '1.3.8';
50 19
51 -// Load plugin files that are always required.
52 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/cron-functions.php';
53 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/functions.php';
54 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-wp-convertkit.php';
55 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-admin-notices.php';
56 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-broadcasts-exporter.php';
57 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-broadcasts-importer.php';
58 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-cache-plugins.php';
59 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-cron.php';
60 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-form-entries.php';
61 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-gutenberg.php';
62 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-html-parser.php';
63 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-media-library.php';
64 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-output.php';
65 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-output-broadcasts.php';
66 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-output-restrict-content.php';
67 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-post.php';
68 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-preview-output.php';
69 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-cloudflare-turnstile.php';
70 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-recaptcha.php';
71 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-spam-protection.php';
72 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-account.php';
73 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-creator-network-recommendations.php';
74 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-restrict-content-cache.php';
75 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-custom-fields.php';
76 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-forms.php';
77 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-landing-pages.php';
78 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-posts.php';
79 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-products.php';
80 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-sequences.php';
81 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-resource-tags.php';
82 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-settings.php';
83 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-settings-broadcasts.php';
84 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-settings-restrict-content.php';
85 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-setup.php';
86 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-shortcodes.php';
87 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-subscriber.php';
88 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-term.php';
89 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-user.php';
90 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/class-convertkit-widgets.php';
91 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block.php';
92 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-broadcasts.php';
93 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-content.php';
94 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-form-trigger.php';
95 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-form.php';
96 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-form-builder.php';
97 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-form-builder-field.php';
98 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-form-builder-field-email.php';
99 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-form-builder-field-name.php';
100 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-form-builder-field-custom.php';
101 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/blocks/class-convertkit-block-product.php';
102 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/block-formatters/class-convertkit-block-formatter.php';
103 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/block-formatters/class-convertkit-block-formatter-form-link.php';
104 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/block-formatters/class-convertkit-block-formatter-product-link.php';
105 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/plugin-sidebars/class-convertkit-plugin-sidebar.php';
106 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/plugin-sidebars/class-convertkit-plugin-sidebar-post-settings.php';
107 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/pre-publish-actions/class-convertkit-pre-publish-action.php';
108 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/pre-publish-actions/class-convertkit-pre-publish-action-broadcast-export.php';
109 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/widgets/class-ck-widget-form.php';
20 + // DB Keys
21 + const POST_META_KEY = '_wp_convertkit_post_meta';
22 + const SETTINGS_NAME = '_wp_convertkit_settings';
110 23
111 -// Admin classes.
112 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-bulk-edit.php';
113 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-quick-edit.php';
114 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-cache-plugins.php';
115 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-category.php';
116 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-landing-page.php';
117 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-legacy-resource-notice.php';
118 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-post.php';
119 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-refresh-resources.php';
120 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-restrict-content.php';
121 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-settings.php';
122 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-tinymce.php';
123 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-admin-setup-wizard.php';
124 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/class-convertkit-wp-list-table.php';
125 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/importers/class-convertkit-admin-importer.php';
126 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/importers/class-convertkit-admin-importer-activecampaign.php';
127 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/importers/class-convertkit-admin-importer-aweber.php';
128 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/importers/class-convertkit-admin-importer-campaignmonitor.php';
129 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/importers/class-convertkit-admin-importer-convertkit-legacy-forms.php';
130 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/importers/class-convertkit-admin-importer-mc4wp.php';
131 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/importers/class-convertkit-admin-importer-mailpoet.php';
132 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/importers/class-convertkit-admin-importer-newsletter.php';
133 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/section/class-convertkit-admin-section-base.php';
134 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/section/class-convertkit-admin-section-broadcasts.php';
135 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/section/class-convertkit-admin-section-form-entries.php';
136 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/section/class-convertkit-admin-section-general.php';
137 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/section/class-convertkit-admin-section-oauth.php';
138 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/section/class-convertkit-admin-section-restrict-content.php';
139 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/section/class-convertkit-admin-section-tools.php';
140 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/setup-wizard/class-convertkit-admin-setup-wizard-plugin.php';
141 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/setup-wizard/class-convertkit-admin-setup-wizard-landing-page.php';
142 -require_once CONVERTKIT_PLUGIN_PATH . '/admin/setup-wizard/class-convertkit-admin-setup-wizard-restrict-content.php';
24 + // Page Slugs
25 + const SETTINGS_PAGE_SLUG = '_wp_convertkit_settings';
143 26
144 -// Contact Form 7 Integration.
145 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/contactform7/class-convertkit-contactform7-admin-section.php';
146 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/contactform7/class-convertkit-contactform7.php';
147 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/contactform7/class-convertkit-contactform7-settings.php';
27 + private static $api;
148 28
149 -// Divi Integration.
150 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/divi/class-convertkit-divi.php';
29 + // Data Caching
30 + private static $cache_period = 0;
31 + private static $meta_defaults = null;
32 + private static $settings_defaults = array(
33 + 'api_key' => '',
34 + 'default_form' => 0,
35 + );
151 36
152 -// Elementor Integration.
153 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/elementor/class-convertkit-elementor.php';
37 + private static $forms_markup = array();
38 + private static $landing_pages_markup = array();
154 39
155 -// Forminator Integration.
156 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/forminator/class-convertkit-forminator-admin-section.php';
157 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/forminator/class-convertkit-forminator.php';
158 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/forminator/class-convertkit-forminator-settings.php';
40 + public static function init() {
41 + self::add_actions();
42 + self::add_filters();
43 + self::register_shortcodes();
159 44
160 -// Impeka Integration.
161 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/class-convertkit-impeka.php';
45 + self::$cache_period = MINUTE_IN_SECONDS * 10;
162 46
163 -// Uncode Integration.
164 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/class-convertkit-uncode.php';
47 + self::_api_connect();
48 + }
165 49
166 -// WishList Member Integration.
167 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/wishlist/class-convertkit-wishlist-admin-section.php';
168 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/wishlist/class-convertkit-wishlist.php';
169 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/wishlist/class-convertkit-wishlist-settings.php';
50 + private static function add_actions() {
51 + if(is_admin()) {
52 + add_action('add_meta_boxes_page', array(__CLASS__, 'add_meta_boxes'));
53 + add_action('add_meta_boxes_post', array(__CLASS__, 'add_meta_boxes'));
54 + } else {
55 + add_action('template_redirect', array(__CLASS__, 'page_takeover'));
56 + }
170 57
171 -// WooCommerce Integration.
172 -require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/woocommerce/class-convertkit-woocommerce-product-form.php';
58 + add_action('save_post', array(__CLASS__, 'save_post_meta'), 10, 2);
59 + }
173 60
174 -// Register Plugin activation and deactivation functions.
175 -register_activation_hook( __FILE__, 'convertkit_plugin_activate' );
176 -add_action( 'wp_insert_site', 'convertkit_plugin_activate_new_site' );
177 -add_action( 'activate_blog', 'convertkit_plugin_activate_new_site' );
178 -register_deactivation_hook( __FILE__, 'convertkit_plugin_deactivate' );
61 + private static function add_filters() {
62 + if(!is_admin()) {
63 + add_filter('the_content', array(__CLASS__, 'append_form'));
64 + }
179 65
180 -/**
181 - * Main function to return Plugin instance.
182 - *
183 - * @since 1.9.6
184 - */
185 -function WP_ConvertKit() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName
66 + add_filter('plugin_action_links_' . plugin_basename(__FILE__), array(__CLASS__, 'add_settings_page_link'));
67 + }
186 68
187 - return WP_ConvertKit::get_instance();
69 + private static function register_shortcodes() {
70 + add_shortcode('convertkit', array(__CLASS__, 'shortcode'));
71 + }
188 72
73 + // Callbacks
74 +
75 + /// Settings Related
76 +
77 + public static function add_settings_page_link($links) {
78 + $settings_link = sprintf('<a href="%s">%s</a>', self::_get_settings_page_link(), __('Settings'));
79 +
80 + return array('settings' => $settings_link) + $links;
81 + }
82 +
83 + /// Page / Post Editing
84 +
85 + public static function add_meta_boxes($post) {
86 + $forms = self::$api->get_resources('forms');
87 + $landing_pages = self::$api->get_resources('landing_pages');
88 +
89 + if(!empty($forms) || ('page' === $post->post_type && !empty($landing_pages))) {
90 + add_meta_box('wp-convertkit-meta-box', __('ConvertKit'), array(__CLASS__, 'display_meta_box'), $post->post_type, 'normal');
91 + }
92 + }
93 +
94 + public static function display_meta_box($post) {
95 + $forms = self::$api->get_resources('forms');
96 + $landing_pages = self::$api->get_resources('landing_pages');
97 +
98 + $meta = self::_get_meta($post->ID);
99 + $settings_link = self::_get_settings_page_link();
100 +
101 + include('views/backend/meta-boxes/meta-box.php');
102 + }
103 +
104 + public static function save_post_meta($post_id, $post) {
105 + $data = stripslashes_deep($_POST);
106 + if(wp_is_post_autosave($post_id) || wp_is_post_revision($post_id) || !isset($data['wp-convertkit-save-meta-nonce']) || !wp_verify_nonce($data['wp-convertkit-save-meta-nonce'], 'wp-convertkit-save-meta')) {
107 + return;
108 + }
109 +
110 + self::_set_meta($post_id, $data['wp-convertkit']);
111 + }
112 +
113 + /// Page / Post Display
114 +
115 + public static function append_form($content) {
116 + if(is_singular(array('post')) || is_page()) {
117 + $content .= wp_convertkit_get_form_embed(self::_get_meta(get_the_ID()));
118 + }
119 +
120 + return $content;
121 + }
122 +
123 + public static function page_takeover() {
124 + $queried_object = get_queried_object();
125 + if(isset($queried_object->post_type) && 'page' === $queried_object->post_type && ($landing_page_url = self::_get_meta($queried_object->ID, 'landing_page'))) {
126 + $landing_page = self::$api->get_resource($landing_page_url);
127 +
128 + if(!empty($landing_page)) {
129 + echo $landing_page;
130 + exit;
131 + }
132 + }
133 +
134 + }
135 +
136 + /// Shortcodes
137 +
138 + public static function shortcode($attributes, $content = null) {
139 + return wp_convertkit_get_form_embed($attributes);
140 + }
141 +
142 + // Data Retrieval
143 +
144 + /// Page / Post Meta Data
145 +
146 + private static function _get_meta_defaults() {
147 + if(is_null(self::$meta_defaults)) {
148 + self::$meta_defaults = array(
149 + 'form' => -1,
150 + 'landing_page' => '',
151 + );
152 + }
153 +
154 + return self::$meta_defaults;
155 + }
156 +
157 + private static function _get_meta($post_id, $meta_key = null) {
158 + $post_id = empty($post_id) ? get_the_ID() : $post_id;
159 +
160 + $meta = get_post_meta($post_id, self::POST_META_KEY, true);
161 + $meta_defaults = self::_get_meta_defaults();
162 +
163 + if(empty($meta)) {
164 + $meta = $meta_defaults;
165 +
166 + $old_value = intval(get_post_meta($post_id, '_convertkit_convertkit_form', true));
167 + if(0 !== $old_value) {
168 + $meta['form'] = $old_value;
169 + }
170 + }
171 +
172 + $meta = shortcode_atts($meta_defaults, $meta);
173 +
174 + return is_null($meta_key) ? $meta : (isset($meta[$meta_key]) ? $meta[$meta_key] : false);
175 + }
176 +
177 + private static function _set_meta($post_id, $meta) {
178 + $post_id = empty($post_id) ? get_the_ID() : $post_id;
179 +
180 + update_post_meta($post_id, self::POST_META_KEY, $meta);
181 +
182 + return $meta;
183 + }
184 +
185 + /// Settings
186 +
187 + private static function _get_settings($settings_key = null) {
188 + $settings = get_option(self::SETTINGS_NAME, self::$settings_defaults);
189 +
190 + return is_null($settings_key) ? $settings : (isset($settings[$settings_key]) ? $settings[$settings_key] : null);
191 + }
192 +
193 + /// API
194 +
195 + private static function _api_connect() {
196 + $api_key = self::_get_settings('api_key');
197 +
198 + self::$api = new ConvertKitAPI($api_key);
199 + }
200 +
201 + // Links
202 +
203 + private static function _get_settings_page_link($query_args = array()) {
204 + $query_args = array('page' => self::SETTINGS_PAGE_SLUG) + $query_args;
205 +
206 + return add_query_arg($query_args, admin_url('options-general.php'));
207 + }
208 +
209 + // Template Tags
210 +
211 + public static function get_form_embed($attributes) {
212 + $attributes = shortcode_atts(array(
213 + 'form' => -1,
214 + ), $attributes);
215 +
216 + extract($attributes);
217 +
218 + $form_id = intval(($form < 0) ? self::_get_settings('default_form') : $form);
219 + $form = false;
220 +
221 + if ($form_id == 0) {
222 + return "";
223 + }
224 +
225 + $forms_available = self::$api->get_resources('forms');
226 + foreach($forms_available as $form_available) {
227 + if($form_available['id'] == $form_id) {
228 + $form = $form_available;
229 + break;
230 + }
231 + }
232 +
233 + $form_markup = self::$api->get_resource($form['embed']);
234 +
235 + return $form_markup;
236 + }
237 + }
238 +
239 + require_once('lib/template-tags.php');
240 + WP_ConvertKit::init();
189 241 }
190 242
191 -// Finally, initialize the Plugin.
192 -WP_ConvertKit();
243 +include 'admin/settings.php';