From 376db90a8848b6d84a1e147c895f02ee868111f7 Mon Sep 17 00:00:00 2001 From: Arafat Islam Date: Tue, 29 Mar 2022 13:04:14 +0600 Subject: [PATCH 1/2] New: Purge All on Nav Menu Update, only if the menu is associated with any display location --- admin/class-purger.php | 26 ++++++++++++++++++++++++++ includes/class-nginx-helper.php | 1 + 2 files changed, 27 insertions(+) diff --git a/admin/class-purger.php b/admin/class-purger.php index efdaf796..f30524cb 100644 --- a/admin/class-purger.php +++ b/admin/class-purger.php @@ -1217,6 +1217,32 @@ public function purge_on_check_ajax_referer( $action ) { } + /** + * Purge All on Nav Menu Update. + * Only if the menu is associated with any display location. + * + * @param int $menu_id Menu ID + * + * @return void + */ + public function purge_on_nav_menu_update( $menu_id ) { + + global $nginx_helper_admin; + + if ( ! $nginx_helper_admin->options['enable_purge'] ) { + return; + } + + $this->log( sprintf( __( 'Menu updated. Menu ID: %s', 'nginx-helper' ), $menu_id ) ); + + $menu_locations = get_nav_menu_locations(); + + if ( in_array( $menu_id, $menu_locations, true ) ) { + + $this->purge_all(); + } + } + /** * Unlink file recursively. * Source - http://stackoverflow.com/a/1360437/156336 diff --git a/includes/class-nginx-helper.php b/includes/class-nginx-helper.php index 8637d795..1eca7d86 100644 --- a/includes/class-nginx-helper.php +++ b/includes/class-nginx-helper.php @@ -223,6 +223,7 @@ private function define_admin_hooks() { $this->loader->add_action( 'edit_term', $nginx_purger, 'purge_on_term_taxonomy_edited', 20, 3 ); $this->loader->add_action( 'delete_term', $nginx_purger, 'purge_on_term_taxonomy_edited', 20, 3 ); $this->loader->add_action( 'check_ajax_referer', $nginx_purger, 'purge_on_check_ajax_referer', 20 ); + $this->loader->add_action( 'wp_update_nav_menu', $nginx_purger, 'purge_on_nav_menu_update', 20 ); $this->loader->add_action( 'admin_bar_init', $nginx_helper_admin, 'purge_all' ); // expose action to allow other plugins to purge the cache. From 93bc14694415fe738ec34bf0946c0ef1b1e8f434 Mon Sep 17 00:00:00 2001 From: Arafat Islam Date: Tue, 29 Mar 2022 13:17:30 +0600 Subject: [PATCH 2/2] Stop purging homepage on menu update as menu update will trigger purge all or ignore separately --- admin/class-purger.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/admin/class-purger.php b/admin/class-purger.php index f30524cb..17ad3548 100644 --- a/admin/class-purger.php +++ b/admin/class-purger.php @@ -1161,6 +1161,10 @@ public function purge_on_term_taxonomy_edited( $term_id, $tt_id, $taxon ) { global $nginx_helper_admin; + if ( $taxon === 'nav_menu' ) { + return; + } + if ( ! $nginx_helper_admin->options['enable_purge'] ) { return; }