bibhamrokhanpin/wp-content/__plugins/redux-framework/redux-templates/classes/class-notice-overrides.php
2024-04-10 17:46:06 +05:45

80 lines
2.4 KiB
PHP

<?php // phpcs:ignore WordPress.Files.FileName
/**
* Notice overrides for Redux Pro block plugins.
*
* @since 4.0.0
* @package Redux Framework
*/
namespace ReduxTemplates;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Redux Templates Notice Overrides Class
*
* @since 4.1.19
*/
class Notice_Overrides {
/**
* ReduxTemplates Notice_Overrides.
*
* @since 4.1.19
*/
public function __construct() {
add_action( 'admin_notices', array( $this, 'filter_notices' ), 0 );
}
/**
* Filter out any notices before they're displayed.
*
* @since 4.0.0
*/
public function filter_notices() {
if ( \Redux_Helpers::mokama() ) {
$this->remove_filters_for_anonymous_class( 'admin_notices', 'QUBELY_PRO\Updater', 'show_invalid_license_notice' );
}
}
/**
* Allow to remove method for an hook when, it's a class method used and class don't have variable, but you know the class name.
*
* @since 1.6.0
*
* @param string $hook_name Hook/action name to remove.
* @param string $class_name Class name. `Colors::class` for example.
* @param string $method_name Class method name.
* @param int $priority Action priority.
*
* @return bool
*/
public static function remove_filters_for_anonymous_class( $hook_name = '', $class_name = '', $method_name = '', $priority = 10 ) {
global $wp_filter;
// Take only filters on right hook name and priority.
if ( ! isset( $wp_filter[ $hook_name ][ $priority ] ) || ! is_array( $wp_filter[ $hook_name ][ $priority ] ) ) {
return false;
}
// Loop on filters registered.
foreach ( $wp_filter[ $hook_name ][ $priority ] as $unique_id => $filter_array ) {
// Test if filter is an array ! (always for class/method).
// Test if object is a class, class and method is equal to param !
if ( isset( $filter_array['function'] ) && is_array( $filter_array['function'] ) && is_object( $filter_array['function'][0] ) && get_class( $filter_array['function'][0] ) && get_class( $filter_array['function'][0] ) === $class_name && $filter_array['function'][1] === $method_name ) {
// Test for WordPress >= 4.7 WP_Hook class (https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/).
if ( $wp_filter[ $hook_name ] instanceof \WP_Hook ) {
unset( $wp_filter[ $hook_name ]->callbacks[ $priority ][ $unique_id ] );
} else {
unset( $wp_filter[ $hook_name ][ $priority ][ $unique_id ] );
}
}
}
return false;
}
}