我正在开发WordPress插件。
我想从服务器下载一个文件,然后在插件激活后解压缩并将其放在WordPress的主目录中。下载和解压文件的过程运行正常,在这个过程完成后,我很难停用插件。我怎样才能修复它?
class WP_X_Plugin{
public function __construct(){
register_activation_hook( __FILE__, array( $this , \'activate\' ) );
$url = "http://mysitedomain.com/script/dist.zip";
file_put_contents("dist.zip", file_get_contents($url));
$plugin_zip = new ZipArchive;
$plugin_zip->open(\'dist.zip\');
$plugin_zip->extractTo(ABSPATH);
$plugin_zip->close();
rename(\'dist.php\', ABSPATH.\'/wp-script.php\');
if( unlink(\'dist.zip\') ){
// if i call the deactivate_plugins() function of wordpress, I will have an error logged in console PHP Fatal error: Uncaught Error: Call to undefined function deactivate_plugins().
deactivate_plugins( plugin_basename(__FILE__) );
header(\'Location: wp-script.php\');
}
}
}
$wp_x = new WP_X_Plugin;
UPDATE
我通过要求plugin.php
位于wp-admin/includes
文件夹在阅读了一些与同一问题相关的问题后,我使用了这个解决方案。据我所知,只有当wp已经在运行时加载了这个文件时,插件函数才可用。