Cześć,
mam następujący problem: staram się napisać skrypt, który będzie wyłączał wybrane wtyczki, jeśli użytkownik będzie akurat edytował stronę lub produkt w Wordpressie.
Do postawienia strony/sklepu został użyty Divi Builder. Problem w tym, że jeżeli chcemy edytować produkt i zapisać zmiany, czasami trzeba na to czekać.... 20 sekund. W Google Dev Tools, gdy wejdziemy w zakładkę Network, pokazuje, że strona pobiera blisko 50 mb zasobów... Gdy wyłączymy wszystkie wtyki na stronie i zostawimy samo Divi + WooCommerce, zasysa już "tylko" 24mb i zapisuje zmiany w około 6 sekund.
Stąd pomysł automatycznego wyłączania niepotrzebnych wtyczek, podczas gdy admin edytuje produkt. Użyłem do tego następującego kodu, znalezionego w sieci (wrzucony do mu-plugins):
<?php
add_filter( 'option_active_plugins', 'disable_plugins_per_page' );
function disable_plugins_per_page( $plugin_list ) {
// Quit immediately if not post edit area.
global $pagenow;
if (( $pagenow == 'post.php' || $pagenow == 'edit.php' )) {
$disable_plugins = array (
// Plugin Name
'query-monitor/query-monitor.php'
);
$plugins_to_disable = array();
foreach ( $plugin_list as $plugin ) {
if ( true == in_array( $plugin, $disable_plugins ) ) {
//error_log( "Found $plugin in list of active plugins." );
$plugins_to_disable[] = $plugin;
}
}
// If there are plugins to disable then remove them from the list,
// otherwise return the original list.
if ( count( $plugins_to_disable ) ) {
$new_list = array_diff( $plugin_list, $plugins_to_disable );
return $new_list;
}
}
return $plugin_list;
}
ale niestety dalej widzę, że ładuje CSSy i JS: https://monosnap.com/file/jjLr8iDjMDQOcyvb2nyR3eKjtGTh2r
Prosiłbym bardzo o pomoc w modyfikacji kodu, żeby w końcu zaczął poprawnie działać:(