Current Path : /storage/v11800/alliedessence/public_html/wp-content/plugins/megamenu/classes/pages/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/alliedessence/public_html/wp-content/plugins/megamenu/classes/pages/tools.php |
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // disable direct access
}
if ( ! class_exists( 'Mega_Menu_Tools' ) ) :
/**
* Handles all admin related functionality.
*/
class Mega_Menu_Tools {
/**
* Constructor
*
* @since 1.0
*/
public function __construct() {
add_action( 'admin_post_megamenu_clear_css_cache', array( $this, 'tools_clear_css_cache' ) );
add_action( 'admin_post_megamenu_delete_data', array( $this, 'delete_data' ) );
add_filter( 'megamenu_menu_tabs', array( $this, 'add_tools_tab' ), 4 );
add_action( 'megamenu_page_tools', array( $this, 'tools_page' ) );
}
/**
* Add the Menu Locations tab to our available tabs
*
* @param array $tabs
* @since 2.8
*/
public function add_tools_tab( $tabs ) {
$tabs['tools'] = __( 'Tools', 'megamenu' );
return $tabs;
}
/**
* Clear the CSS cache.
*
* @since 1.5
*/
public function tools_clear_css_cache() {
check_admin_referer( 'megamenu_clear_css_cache' );
do_action( 'megamenu_delete_cache' );
$this->redirect( admin_url( 'admin.php?page=maxmegamenu_tools&clear_css_cache=true' ) );
}
/**
* Deletes all Max Mega Menu data from the database
*
* @since 1.5
*/
public function delete_data() {
check_admin_referer( 'megamenu_delete_data' );
do_action( 'megamenu_delete_cache' );
// delete options
delete_option( 'megamenu_settings' );
delete_option( 'megamenu_locations' );
delete_option( 'megamenu_toggle_blocks' );
delete_option( 'megamenu_version' );
delete_option( 'megamenu_initial_version' );
delete_option( 'megamenu_themes_last_updated' );
delete_option( 'megamenu_multisite_share_themes' );
delete_option( 'megamenu_dismissed_notices' );
delete_option( 'megamenu_install_date' );
// delete all widgets assigned to menus
$widget_manager = new Mega_Menu_Widget_Manager();
if ( $mega_menu_widgets = $widget_manager->get_mega_menu_sidebar_widgets() ) {
foreach ( $mega_menu_widgets as $widget_id ) {
$widget_manager->delete_widget( $widget_id );
}
}
// delete all mega menu metadata stored against menu items
delete_metadata( 'post', 0, '_megamenu', '', true );
// clear cache
delete_transient( 'megamenu_css' );
// delete custom themes
max_mega_menu_delete_themes();
$this->redirect( admin_url( 'admin.php?page=maxmegamenu_tools&delete_data=true' ) );
}
/**
* Redirect and exit
*
* @since 1.8
*/
public function redirect( $url ) {
wp_redirect( $url );
exit;
}
/**
* Content for 'Tools' tab
*
* @since 1.4
*/
public function tools_page( $saved_settings ) {
$this->print_messages();
?>
<div class='menu_settings menu_settings_tools'>
<h3 class='first'><?php _e( 'Tools', 'megamenu' ); ?></h3>
<table>
<tr>
<td class='mega-name'>
<?php _e( 'Cache', 'megamenu' ); ?>
<div class='mega-description'><?php _e( 'The CSS for your menu is updated each time a menu or a menu theme is changed. You can force the menu CSS to be updated using this tool.', 'megamenu' ); ?></div>
</td>
<td class='mega-value'>
<form action="<?php echo admin_url( 'admin-post.php' ); ?>" method="post">
<?php wp_nonce_field( 'megamenu_clear_css_cache' ); ?>
<input type="hidden" name="action" value="megamenu_clear_css_cache" />
<input type='submit' class='button button-primary' value='<?php _e( 'Clear CSS Cache', 'megamenu' ); ?>' />
<?php if ( get_transient( 'megamenu_css_last_updated' ) ) : ?>
<p><em><small><?php echo sprintf( __( 'The menu CSS was last updated on %s', 'megamenu' ), date( 'l jS F Y H:i:s', get_transient( 'megamenu_css_last_updated' ) ) ); ?><small><em></p>
<?php endif; ?>
</form>
</td>
</tr>
<tr>
<td class='mega-name'>
<?php _e( 'Plugin Data', 'megamenu' ); ?>
<div class='mega-description'><?php _e( 'Delete all saved Max Mega Menu plugin data from the database. Use with caution!', 'megamenu' ); ?></div>
</td>
<td class='mega-value'>
<form action="<?php echo admin_url( 'admin-post.php' ); ?>" method="post">
<?php wp_nonce_field( 'megamenu_delete_data' ); ?>
<input type="hidden" name="action" value="megamenu_delete_data" />
<input type='submit' class='button button-secondary confirm' value='<?php _e( 'Delete Data', 'megamenu' ); ?>' />
</form>
</td>
</tr>
</table>
</div>
<?php
}
/**
* Display messages to the user
*
* @since 1.0
*/
public function print_messages() {
if ( isset( $_GET['clear_css_cache'] ) && $_GET['clear_css_cache'] == 'true' ) {
?>
<div class="notice notice-success is-dismissible">
<p><?php esc_html_e( 'The cache has been cleared and the menu CSS has been regenerated.', 'megamenu' ) ?></p>
<?php
$theme_class = new Mega_Menu_Themes();
$theme_class->show_cache_warning();
?>
</div>
<?php
}
if ( isset( $_GET['delete_data'] ) && $_GET['delete_data'] == 'true' ) {
?>
<div class="notice notice-success is-dismissible">
<p><?php _e( 'All plugin data removed', 'megamenu' ) ?></p>
</div>
<?php
}
}
}
endif;