• Hi I’m using your plugin for years now, but suddenly i have a fatal error which my site is crashing by.

    Fatal error:
    Uncaught TypeError:
    call_user_func_array(): Argument #1 ($callback) must be a valid callback, array callback has to contain indices 0 and 1

    in
    /home/admin/domains/mywebsite.com/public_html/wp-includes/class-wp-hook.php:324

    Stack trace

    #0 /home/admin/domains/mywebsite.com/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
    #1 /home/admin/domains/mywebsite.com/public_html/wp-includes/plugin.php(517): WP_Hook->do_action()
    #2 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/src/classes/Settings/Section.php(55): do_action()
    #3 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/src/classes/Backup/Manager.php(69): EasyWatermark\Settings\Section->__construct()
    #4 /home/admin/domains/mywebsite.com/public_html/wp-includes/class-wp-hook.php(324): EasyWatermark\Backup\Manager->register_settings_section()
    #5 /home/admin/domains/mywebsite.com/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
    #6 /home/admin/domains/mywebsite.com/public_html/wp-includes/plugin.php(517): WP_Hook->do_action()
    #7 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/src/classes/Settings/Settings.php(60): do_action()
    #8 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/src/classes/Settings/Settings.php(49): EasyWatermark\Settings\Settings->register_sections()
    #9 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/vendor/micropackage/singleton/src/Singleton.php(58): EasyWatermark\Settings\Settings->__construct()
    #10 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/src/classes/Watermark/Handler.php(75): Micropackage\Singleton\Singleton::get()
    #11 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/src/classes/Core/Plugin.php(217): EasyWatermark\Watermark\Handler->__construct()
    #12 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/src/classes/Features/WatermarkPreview.php(67): EasyWatermark\Core\Plugin->get_watermark_handler()
    #13 /home/admin/domains/mywebsite.com/public_html/wp-content/plugins/easy-watermark/src/classes/Core/Plugin.php(102): EasyWatermark\Features\WatermarkPreview->__construct()
    #14 /home/admin/domains/mywebsite.com/public_html/wp-includes/class-wp-hook.php(322): EasyWatermark\Core\Plugin->setup()
    #15 /home/admin/domains/mywebsite.com/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
    #16 /home/admin/domains/mywebsite.com/public_html/wp-includes/plugin.php(517): WP_Hook->do_action()
    #17 /home/admin/domains/mywebsite.com/public_html/wp-settings.php(578): do_action()
    #18 /home/admin/domains/mywebsite.com/public_html/wp-config.php(115): require_once('...')
    #19 /home/admin/domains/mywebsite.com/public_html/wp-load.php(50): require_once('...')
    #20 /home/admin/domains/mywebsite.com/public_html/wp-admin/admin.php(35): require_once('...')
    #21 /home/admin/domains/mywebsite.com/public_html/wp-admin/index.php(10): require_once('...')
    #22 {main}

    Do you know what this is and how to solve it?

Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter MEMT-NETWORK

    (@memt-network)

    ps i’m using the latetest WP and php 8.3

    Thread Starter MEMT-NETWORK

    (@memt-network)

    with chatgtp it claims that the “hooks” are loaded to quick. He gave me this to change in /plugins/easy-watermark/src/classes/Core/hooks.php

    <?php
    /**
    * Hooks loader class
    *
    * @package easy-watermark
    */

    namespace EasyWatermark\Core;

    use Micropackage\Singleton\Singleton;

    /**
    * Handles registration of hooks for Easy Watermark.
    */
    class Hooks extends Singleton {

    /**
    * Hooked objects
    *
    * @var array
    */
    private $objects = [];

    /**
    * Adds an object to the hook registry.
    *
    * @param object $object Object instance.
    * @return void
    */
    public function add_object( $object ) {
    $class_name = get_class( $object );

    if ( ! isset( $this->objects[ $class_name ] ) ) {
    $this->objects[ $class_name ] = [
    'instance' => $object,
    'hooks' => [],
    ];
    }
    }

    /**
    * Adds a hook definition to an object.
    *
    * @param object $object Object instance.
    * @param array $data Hook data.
    * @return void
    */
    public function add_hook( $object, $data ) {
    $class_name = get_class( $object );

    if ( ! isset( $this->objects[ $class_name ] ) ) {
    $this->add_object( $object );
    }

    $this->objects[ $class_name ]['hooks'][] = $data;
    }

    /**
    * Returns all hooked objects.
    *
    * @return array
    */
    public function get_hooked_objects() {
    return $this->objects;
    }

    /**
    * Loads and registers hooks after plugins are fully loaded.
    *
    * @return void
    */
    public function load_hooks() {
    $hooks_file = EW_DIR_PATH . '/src/inc/hooks.php';

    // Only load hooks after all plugins and their objects are initialized.
    add_action( 'plugins_loaded', function () use ( $hooks_file ) {

    if ( file_exists( $hooks_file ) ) {
    include_once $hooks_file;
    } else {
    error_log( sprintf(
    '[Easy Watermark] Hooks file not found: %s',
    $hooks_file
    ) );
    }

    }, 20 ); // priority 20 ensures it runs after most plugin setup routines
    }
    }
Viewing 2 replies - 1 through 2 (of 2 total)

The topic ‘Fatal Error’ is closed to new replies.