| @@ -69,9 +69,9 @@ | ||
| 69 | 69 | public function load_actions() { |
| 70 | 70 | if (is_admin()) { |
| 71 | 71 | add_action('wpmu_new_blog', [&$this, 'action_wpmu_new_blog']); |
| 72 | 72 | add_action('admin_menu', [&$this, 'action_admin_menu']); |
| 73 | - add_action('admin_init', [&$this, 'action_admin_init']); | |
| 73 | + add_action('admin_init', [&$this, 'action_admin_init'], 9); | |
| 74 | 74 | add_action('admin_enqueue_scripts', [&$this, 'action_admin_enqueue_scripts']); |
| 75 | 75 | add_action('current_screen', [&$this, 'action_current_screen']); |
| 76 | 76 | add_action('plugins_loaded', [&$this, 'action_plugins_loaded']); |
| 77 | 77 | } |
| @@ -501,8 +501,41 @@ | ||
| 501 | 501 | |
| 502 | 502 | // settings page |
| 503 | 503 | public function action_admin_init() { |
| 504 | 504 | register_setting('e2pdf-settings', 'e2pdf_debug'); |
| 505 | + | |
| 506 | + /** | |
| 507 | + * Compatibility fix with Gallery : FooGallery | |
| 508 | + * https://wordpress.org/plugins/foogallery/ | |
| 509 | + */ | |
| 510 | + if (class_exists('FooGallery_Admin_Extensions')) { | |
| 511 | + if (!wp_doing_ajax()) { | |
| 512 | + return; | |
| 513 | + } | |
| 514 | + $action = isset($_REQUEST['action']) && is_string($_REQUEST['action']) ? $_REQUEST['action'] : ''; | |
| 515 | + if ('e2pdf_upload' !== $action) { | |
| 516 | + return; | |
| 517 | + } | |
| 518 | + global $wp_filter; | |
| 519 | + if (isset($wp_filter['admin_init']) && $wp_filter['admin_init'] instanceof WP_Hook) { | |
| 520 | + foreach ($wp_filter['admin_init']->callbacks as $priority => $callbacks) { | |
| 521 | + if (!is_array($callbacks)) { | |
| 522 | + continue; | |
| 523 | + } | |
| 524 | + foreach ($callbacks as $callback) { | |
| 525 | + if ( | |
| 526 | + isset($callback['function']) && | |
| 527 | + is_array($callback['function']) && | |
| 528 | + isset($callback['function'][0], $callback['function'][1]) && | |
| 529 | + $callback['function'][0] instanceof FooGallery_Admin_Extensions && | |
| 530 | + 'handle_extension_action' === $callback['function'][1] | |
| 531 | + ) { | |
| 532 | + remove_action('admin_init', $callback['function'], $priority); | |
| 533 | + } | |
| 534 | + } | |
| 535 | + } | |
| 536 | + } | |
| 537 | + } | |
| 505 | 538 | } |
| 506 | 539 | |
| 507 | 540 | // admin_enqueue_scripts action |
| 508 | 541 | public function action_admin_enqueue_scripts($page) { |