WordPress函数:register_uninstall_hook 设置插件的卸载回调函数

江河/ 2023年11月25日/ WordPress/ 浏览 443

函数原型:


register_uninstall_hook( string $file, callable $callback )


设置插件的卸载回调函数。


注册卸载挂钩,当用户单击调用插件自行卸载的卸载链接时,将调用该挂钩。除非插件挂钩到操作中,否则链接不会处于活动状态。


注册卸载挂钩时,插件不应在函数之外运行任意代码。为了使用钩子运行,必须包含插件,这意味着任何位于函数外部的代码都将在卸载过程中运行。插件不应阻碍卸载过程。


如果没有在插件中运行代码就无法编写插件,那么插件应该在基本插件文件夹中创建一个名为“uninstall.php”的文件。如果该文件存在,将在卸载过程中绕过卸载挂钩调用该文件。当使用“uninstall.php”时,插件在执行之前应始终检查“WP_uninstall_plugin”常量。


函数源码:


function register_uninstall_hook( $file, $callback ) {
	if ( is_array( $callback ) && is_object( $callback[0] ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Only a static class method or function can be used in an uninstall hook.' ), '3.1.0' );
		return;
	}

	$uninstallable_plugins = (array) get_option( 'uninstall_plugins' );
	$plugin_basename       = plugin_basename( $file );

	if ( ! isset( $uninstallable_plugins[ $plugin_basename ] ) || $uninstallable_plugins[ $plugin_basename ] !== $callback ) {
		$uninstallable_plugins[ $plugin_basename ] = $callback;
		update_option( 'uninstall_plugins', $uninstallable_plugins );
	}
}


使用举例:


function your_prefix_activate(){
	register_uninstall_hook( __FILE__, 'your_prefix_uninstall' );
}
register_activation_hook( __FILE__, 'your_prefix_activate' );

// And here goes the uninstallation function:
function your_prefix_uninstall(){
	//	codes to perform during unistallation
}


发表评论

暂无评论,抢个沙发...

客服 工单