'Wordpress website suddenly gives an error

My Wordpress website suddenly stopped working. I suspect that an automatic update went wrong.

I get the following error:

Warning: Undefined array key 0 in /.../wp-includes/plugin.php on line 957
Warning: Undefined array key 0 in /.../wp-includes/plugin.php on line 960

This is the snippet:

function _wp_filter_build_unique_id( $hook_name, $callback, $priority ) {
if ( is_string( $callback ) ) {
    return $callback;
}

if ( is_object( $callback ) ) {
    // Closures are currently implemented as objects.
    $callback = array( $callback, '' );
} else {
    $callback = (array) $callback;
}

if ( is_object( $callback[0] ) ) {
    // Object class calling.
    return spl_object_hash( $callback[0] ) . $callback[1];
} elseif ( is_string( $callback[0] ) ) {
    // Static calling.
    return $callback[0] . '::' . $callback[1];
}

}

Can someone help me?
This website contains an inventory in woo commerce and the auto-back-up failed.



Solution 1:[1]

This might be due to a PHP update. I can't really tell, but I can get rid of these warnings. Instead of this:

if ( is_object( $callback[0] ) ) {
    // Object class calling.
    return spl_object_hash( $callback[0] ) . $callback[1];
} elseif ( is_string( $callback[0] ) ) {
    // Static calling.
    return $callback[0] . '::' . $callback[1];
}

Use this:

if ( isset( $callback[0] )  && isset( $callback[1] ) ) {
    if ( is_object( $callback[0] ) ) {
        // Object class calling.
        return spl_object_hash( $callback[0] ) . $callback[1];
    } elseif ( is_string( $callback[0] ) ) {
        // Static calling.
        return $callback[0] . '::' . $callback[1];
    }
}

I've used the same kind of spacing in that code. By first checking whether $callback[0] and $callback[1] actually exist, you can stop the warnings from appearing. I have no idea what consequences this has for the remaining code.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 KIKO Software