因此,在插件激活時,我有4個在wp數據庫中創建的表。在卸載時,我想刪除表格。我已經能夠寫出它來刪除停用表上的表,但從我讀過的,最好保留db表信息,直到管理員卸載而不是停用。我一直在尋找答案,但我似乎能夠找到答案是放棄他們在停用。我也有我需要卸載它的版本選項。 T如何在使用Wordpress進行卸載時刪除表格?
回答
那麼,當我搜索這個問題時,我得到了很多結果。下面是我得到了什麼: -
function mr_np_activate(){
// hook uninstall
if (function_exists('register_uninstall_hook'))
register_uninstall_hook(__FILE__,'mr_np_uninstall');
}
register_activation_hook(__FILE__,'mr_np_activate');
function mr_np_uninstall() {
delete_option('my_plugins_options');
}
欲瞭解更多信息:http://codex.wordpress.org/Function_Reference/register_uninstall_hook
使用,register_uninstall_hook
。 它註冊卸載鉤子,當用戶點擊調用該插件卸載本身的卸載鏈接,對將被稱爲 查詢詳情http://codex.wordpress.org/Function_Reference/register_uninstall_hook
刪掉表,只有當管理員卸載/刪除插件。
當管理員停用插件時,不要刪除表格,因爲用戶通常會停用所有插件以解決wordpress錯誤後,他們將重新激活插件,如果當時刪除表格,他們將失去所有插件設置由admin配置。同時升級wordpress會自動停用所有插件並在升級成功後重新激活。
說明刪除表,同時unistalling:
- 1)首先你需要在你的插件根folder.This文件創建unistall.php由WordPress時自動調用用戶點擊刪除button.You可以包括你代碼在這個文件中。
- 2)必須瞭解這個完整的文檔中http://codex.wordpress.org/Function_Reference/register_uninstall_hook
是的,我已經看到了,這就是爲什麼我要求的解決方案,以刪除刪除創建的表,而不是取消 – jameslcarton
補充說明檢查 – bhuthecoder
你不應該讓uninstall.php爲bhuthecoder說。您可以根據需要命名該文件,或者您可以在單個文件中執行此操作,而無需單獨卸載文件。
register_uninstall_hook('uninstall.php', 'on_uninstall');
這意味着,WP將運行uninstall.php和功能on_uninstall的uninstall.php時,該插件將被刪除。所以,如果你願意,你可以重命名文件,你可以重命名該函數。
register_uninstall_hook(__FILE__, 'on_uninstall');
它的意思是一樣的,但__FILE__
表明這是目前工作當前的文件和功能on_uninstall應該在這個文件中。
__FILE__php.net
的完整路徑,並解決符號鏈接的文件的文件名。如果在include中使用 ,則返回包含文件的名稱。用於激活/去激活/卸載功能
簡單的例子。
function on_activation()
{
//Some stuff
}
function on_deactivation()
{
//Some stuff
}
function on_uninstall()
{
//Some stuff
}
register_activation_hook(__FILE__, 'on_activation');
register_deactivation_hook(__FILE__, 'on_deactivation');
register_uninstall_hook(__FILE__, 'on_uninstall');
如果你添加了一些選項,你可以刪除它時,卸載這樣的:
delete_option('some name');
由於bhuthecoder說,你不應該刪除表時失活,這是多餘的,不友善的用戶,他們可以在停用後丟失他的數據。
有在你的代碼的語法錯誤:
$sql = 'DROP TABLE IF EXISTS $table_name;';
應該是這樣的:
$sql = "DROP TABLE IF EXISTS $table_name";
如果你想放一些變量,你應該使用雙引號的字符串中。
和require_once是多餘的。 更好的是這樣的:
function e34s_db_clients_uninstall()
{
global $wpdb;
$table_name = $wpdb->prefix . 'e34s_clients';
$sql = "DROP TABLE IF EXISTS $table_name";
$wpdb->query($sql);
delete_option('e34s_time_card_version');
}
register_uninstall_hook(__FILE__, 'e34s_db_clients_uninstall');
或者這樣:
register_uninstall_hook('uninstall.php', 'e34s_db_clients_uninstall');
隨着功能在e34s_db_clients_uninstall uninstall.php。
有兩種方法可以做插件卸載該操作/刪除。
我學到的最好的方法是使用uninstall.php
uninstall.php只有負載時插件被移除或刪除插件,你可以把任何代碼,它在用戶刪除運行或卸載插件。
<?php
/*
* Removing Plugin data using uninstall.php
* the below function clears the database table on uninstall
* only loads this file when uninstalling a plugin.
*/
/*
* exit uninstall if not called by WP
*/
if (!defined('WP_UNINSTALL_PLUGIN')) {
exit();
}
/*
* Making WPDB as global
* to access database information.
*/
global $wpdb;
/*
* @var $table_name
* name of table to be dropped
* prefixed with $wpdb->prefix from the database
*/
$table_name = $wpdb->prefix . 'table_name_to_be_dropped';
// drop the table from the database.
$wpdb->query("DROP TABLE IF EXISTS $table_name");
用表名改變「table_name_to_be_dropped」。
- 1. 如何在卸載時刪除設置
- 2. 在magento中卸載擴展程序時刪除一個表格
- 3. 如何防止Wix在卸載時刪除註冊表項?
- 4. 如何在卸載MSI時刪除單個註冊表VALUE?
- 5. 如何使用WIX刪除卸載msi上的註冊表項
- 6. 如何使用Javascript刪除表格行
- 7. 如何在卸載應用程序時刪除文件
- 8. 如何在卸載應用程序時刪除數據?
- 9. 如何在卸載時刪除應用程序文件夾
- 10. 刪除User.config在卸載程序時
- 11. 如何刪除Wordpress中插件卸載的設置?
- 12. jCarousel卸載/禁用/刪除
- 13. 如何使用刪除按鈕刪除表格行
- 14. 如何刪除或卸載Resharper Plugin
- 15. 如何卸載/刪除引擎?
- 16. 如何刪除卸載的WebApplication?
- 17. Visual Studio:如何在卸載時防止文件被刪除
- 18. 如何在卸載時刪除自定義事件日誌?
- 19. 如何在安裝/卸載時刪除文件?
- 20. 在prestashop中卸載模塊時如何刪除重寫?
- 21. 如何在卸載時刪除日誌文件夾?
- 22. 如何使用Javascript刪除某一行時更新表格
- 23. 卸載時強制刪除user.config?
- 24. 卸載時未刪除文件
- 25. NSIS:卸載時刪除文件夾
- 26. 卸載時刪除MSMQ隊列
- 27. 卸載程序不刪除註冊表
- 28. 如何刪除表格行id用jquery?
- 29. 在通過msiexec/x命令行選項卸載時刪除user.config
- 30. 如何使用MSBUILD除去卸載msi
我看到了一個爲好,這是我有什麼代碼,它不工作:
在我的主文件 'require_once「uninstall.php」; register_uninstall_hook(__FILE__, 'e34s_db_clients_uninstall');' ,然後在我的uninstall.php '函數e34s_db_clients_uninstall(){ \t全球WPDB $; \t \t $ table_name的= $ wpdb->前綴。 'e34s_clients'; \t $ sql ='DROP TABLE IF EXISTS $ table_name;'; \t $ wpdb-> query($ sql); \t delete_option('e34s_time_card_version'); }' – jameslcarton