跳到主要内容

管理插件停用和卸载

简介

当商家停用或卸载您的插件时,您需要处理一些清理任务。本指南简要概述了您在定义插件的停用和卸载逻辑时,需要考虑的一些 WooCommerce 特定的事项。

移除计划的任务

如果您的插件使用 Action Scheduler 来排队任何后台任务,那么在您的插件被卸载或停用时,重要的是要取消这些任务的计划。

as_unschedule_all_actions( $hook, $args, $group );

您可以阅读更多关于使用 Action Scheduler 来管理后台处理的信息,请参考 Action Scheduler API 参考

移除管理后台通知

如果您为商家创建了任何通知,您应该在您的插件被停用或,至少,在它被卸载时删除这些通知。

function my_great_extension_deactivate() {
ExampleNote::possibly_delete_note();
}
register_deactivation_hook( __FILE__, 'my_great_extension_deactivate' );

上面的示例假设您遵循了本指南推荐的模式,即创建将通知作为专用类,并包含 WooCommerce Admin 提供的 NoteTraits 特性。 这种方法为您的通知提供了内置的功能,简化了通知的操作,例如创建和删除。

移除管理后台任务

当您的插件被停用或卸载时,您应该采取措施来注销您的插件为商家创建的任何任务。

// 注销任务。
function my_extension_deactivate_task() {
remove_filter( 'woocommerce_get_registered_extended_tasks', 'my_extension_register_the_task', 10, 1 );
}

register_deactivation_hook( __FILE__, 'my_extension_deactivate_task' );

请记住,商家任务的管理采用一种混合方法,涉及 PHP 和 JavaScript,因此客户端注册仅在您的插件的 JavaScript 运行时发生。

注销导航

当您的插件停用和卸载时,您对 WooCommerce 导航所做的任何注册将自动处理。

WordPress 清理任务

根据您的插件在激活和运行时对底层 WordPress 环境所做的修改类型,您可能需要考虑一些额外的措施,以便在您的插件被停用或卸载时进行清理。 您可以阅读更多关于处理停用和卸载的信息,请参考 WordPress 插件开发者手册