public function save() { $grants = new \WordPress\Tabulate\DB\Grants(); // Validate the POSTed grants. $new_grants = array(); foreach ($_POST as $table => $table_grants) { if (in_array($table, $this->table_names)) { $new_grants[$table] = array(); foreach ($table_grants as $capability => $roles) { if (in_array($capability, $grants->get_capabilities())) { $new_grants[$table][$capability] = array_keys($roles); } } } } // Save the grants and return to the granting table. $grants->set($new_grants); $this->template->add_notice('updated', 'Grants saved.'); wp_redirect($this->get_url('index')); exit; }
<?php if (!defined('ABSPATH') || !defined('WP_UNINSTALL_PLUGIN')) { return false; } // Clear Grants' option. $grants = new \WordPress\Tabulate\DB\Grants(); $grants->delete(); // Drop the ChangeTracker's and Reports' tables. global $wpdb; $wpdb->query('SET FOREIGN_KEY_CHECKS = 0'); foreach (\WordPress\Tabulate\DB\ChangeTracker::table_names() as $tbl) { $wpdb->query("DROP TABLE IF EXISTS `{$tbl}`;"); } $wpdb->query("DROP TABLE IF EXISTS `" . \WordPress\Tabulate\DB\Reports::reports_table_name() . "`;"); $wpdb->query("DROP TABLE IF EXISTS `" . \WordPress\Tabulate\DB\Reports::report_sources_table_name() . "`;"); $wpdb->query('SET FOREIGN_KEY_CHECKS = 1');