PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 3.4.3
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v3.4.3
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 | includes/class-wp-convertkit.php +57 -6 3.3.53.4.3 View file →
@@ -63,8 +63,9 @@
63 63 $this->initialize_admin_or_frontend_editor();
64 64 $this->initialize_cli_cron();
65 65 $this->initialize_frontend();
66 66 $this->initialize_global();
67 + $this->initialize_mcp();
67 68
68 69 }
69 70
70 71 /**
@@ -82,8 +83,9 @@
82 83 $this->classes['admin_bulk_edit'] = new ConvertKit_Admin_Bulk_Edit();
83 84 $this->classes['admin_cache_plugins'] = new ConvertKit_Admin_Cache_Plugins();
84 85 $this->classes['admin_category'] = new ConvertKit_Admin_Category();
85 86 $this->classes['admin_landing_page'] = new ConvertKit_Admin_Landing_Page();
87 + $this->classes['admin_legacy_resource_notice'] = new ConvertKit_Admin_Legacy_Resource_Notice();
86 88 $this->classes['admin_importer_activecampaign'] = new ConvertKit_Admin_Importer_ActiveCampaign();
87 89 $this->classes['admin_importer_aweber'] = new ConvertKit_Admin_Importer_AWeber();
88 90 $this->classes['admin_importer_campaignmonitor'] = new ConvertKit_Admin_Importer_CampaignMonitor();
89 91 $this->classes['admin_importer_convertkit_legacy_forms'] = new ConvertKit_Admin_Importer_ConvertKit_Legacy_Forms();
@@ -192,8 +194,9 @@
192 194 $this->classes['blocks_convertkit_form_builder'] = new ConvertKit_Block_Form_Builder();
193 195 $this->classes['blocks_convertkit_form_builder_field_email'] = new ConvertKit_Block_Form_Builder_Field_Email();
194 196 $this->classes['blocks_convertkit_form_builder_field_name'] = new ConvertKit_Block_Form_Builder_Field_Name();
195 197 $this->classes['blocks_convertkit_form_builder_field_custom'] = new ConvertKit_Block_Form_Builder_Field_Custom();
198 + $this->classes['blocks_convertkit_member_content_login'] = new ConvertKit_Block_Member_Content_Login();
196 199 $this->classes['blocks_convertkit_product'] = new ConvertKit_Block_Product();
197 200 $this->classes['block_formatter_form_link'] = new ConvertKit_Block_Formatter_Form_Link();
198 201 $this->classes['block_formatter_product_link'] = new ConvertKit_Block_Formatter_Product_Link();
199 202 $this->classes['pre_publish_action_broadcast_export'] = new ConvertKit_Pre_Publish_Action_Broadcast_Export();
@@ -201,14 +204,16 @@
201 204 $this->classes['broadcasts_exporter'] = new ConvertKit_Broadcasts_Exporter();
202 205 $this->classes['broadcasts_importer'] = new ConvertKit_Broadcasts_Importer();
203 206 $this->classes['elementor'] = new ConvertKit_Elementor();
204 207 $this->classes['gutenberg'] = new ConvertKit_Gutenberg();
205 - $this->classes['media_library'] = new ConvertKit_Media_Library();
206 - $this->classes['output_restrict_content'] = new ConvertKit_Output_Restrict_Content();
207 - $this->classes['review_request'] = new ConvertKit_Review_Request( 'Kit', 'convertkit', CONVERTKIT_PLUGIN_PATH );
208 - $this->classes['preview_output'] = new ConvertKit_Preview_Output();
209 - $this->classes['setup'] = new ConvertKit_Setup();
210 - $this->classes['shortcodes'] = new ConvertKit_Shortcodes();
208 + $this->classes['mcp'] = new ConvertKit_MCP();
209 + $this->classes['media_library'] = new ConvertKit_Media_Library();
210 + $this->classes['output_restrict_content'] = new ConvertKit_Output_Restrict_Content();
211 + $this->classes['restrict_content_cache'] = new ConvertKit_Restrict_Content_Cache();
212 + $this->classes['review_request'] = new ConvertKit_Review_Request( 'Kit', 'convertkit', CONVERTKIT_PLUGIN_PATH );
213 + $this->classes['preview_output'] = new ConvertKit_Preview_Output();
214 + $this->classes['setup'] = new ConvertKit_Setup();
215 + $this->classes['shortcodes'] = new ConvertKit_Shortcodes();
211 216
212 217 /**
213 218 * Initialize integration classes for the frontend web site.
214 219 *
@@ -214,8 +219,54 @@
214 219 *
215 220 * @since 1.9.6
216 221 */
217 222 do_action( 'convertkit_initialize_global' );
223 +
224 + }
225 +
226 + /**
227 + * Initializes the MCP server if enabled in the Plugin's settings.
228 + *
229 + * @since 3.4.0
230 + */
231 + public function initialize_mcp() {
232 +
233 + // Bail if the MCP server is not enabled.
234 + $settings = new ConvertKit_Settings_MCP();
235 + if ( ! $settings->enabled() ) {
236 + return;
237 + }
238 +
239 + // Bail if the Abilities API is unavailable (WordPress < 6.9).
240 + if ( ! function_exists( 'wp_register_ability' ) ) {
241 + return;
242 + }
243 +
244 + // Bail if PHP 7.4+ is not installed, as this is required for the MCP Adapter classes.
245 + if ( version_compare( PHP_VERSION, '7.4', '<' ) ) {
246 + return;
247 + }
248 +
249 + // Load MCP Adapter if another Plugin hasn't already loaded it.
250 + if ( ! class_exists( 'WP\\MCP\\Core\\McpAdapter' ) ) {
251 + // Bail if the WordPress MCP Adapter autoloader is missing.
252 + if ( ! file_exists( CONVERTKIT_PLUGIN_PATH . '/vendor/autoload.php' ) ) {
253 + return;
254 + }
255 +
256 + // Load MCP Adapter.
257 + require_once CONVERTKIT_PLUGIN_PATH . '/vendor/autoload.php';
258 +
259 + // Bail if the MCP Adapter class doesn't exist - something went wrong with the autoloader.
260 + if ( ! class_exists( 'WP\\MCP\\Core\\McpAdapter' ) ) { // @phpstan-ignore-line
261 + return;
262 + }
263 + }
264 +
265 + // Bootstrap the MCP Adapter, per WordPress/mcp-adapter's recommended
266 + // integration pattern.
267 + // @see https://github.com/WordPress/mcp-adapter#using-mcp-adapter-in-your-plugin.
268 + \WP\MCP\Core\McpAdapter::instance();
218 269
219 270 }
220 271
221 272 /**