Created
April 3, 2023 13:37
-
-
Save hcoohb/2f11025501a64d2e7e6231342d10afcd to your computer and use it in GitHub Desktop.
remove_filters_with_method_and_class_name
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function remove_filters_with_method_and_class_name( $hook_name, $class_name,$method_name, $priority = 0 ) { | |
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 ( (array) $wp_filter[ $hook_name ][ $priority ] as $unique_id => $filter_array ) { | |
// Test if filter is an array ! (always for class/method) | |
if ( isset( $filter_array['function'] ) && is_array( $filter_array['function']) ) { | |
// Test if object is a class and method is equal to param ! | |
if ( 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 ( is_a( $wp_filter[ $hook_name ], 'WP_Hook' ) ) { | |
unset( $wp_filter[ $hook_name ]->callbacks[ $priority ][ $unique_id ] ); | |
} else { | |
unset( $wp_filter[ $hook_name ][ $priority ][ $unique_id ] ); | |
} | |
} | |
} | |
} | |
return false; | |
} | |
remove_filters_with_method_and_class_name("woocommerce_after_order_notes", "Controller_Wc","checkout_consent_checkbox",10); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment