Remove strikeout hooks load by other plugins

Remove strikeout hooks loaded by other plugins.

function remove_wrong_callbacks_other_than_woo_discount_rules( $hook_obj, $allowed_hooks ) {
	$new_callbacks = array();
	foreach ( $hook_obj->callbacks as $priority => $callbacks ) {
		$priority_callbacks = array();
		foreach ( $callbacks as $idx => $callback_details ) {
			if ( is_callback_match_woo_discount_rules( $callback_details, $allowed_hooks ) ) {
				$priority_callbacks[ $idx ] = $callback_details;
			}
		}
		if ( $priority_callbacks ) {
			$new_callbacks[ $priority ] = $priority_callbacks;
		}
	}
	$hook_obj->callbacks = $new_callbacks;

	return $hook_obj;
}

function is_callback_match_woo_discount_rules( $callback_details, $allowed_hooks ) {
	$result = false;
	foreach ( $allowed_hooks as $callback_name ) {
		list( $class_name, $func_name ) = explode( "|", $callback_name );
		if(isset($callback_details['function']) && is_array($callback_details['function'])){
			if ( count( $callback_details['function'] ) != 2 ) {
				continue;
			}
			if ( $class_name == get_class( $callback_details['function'][0] ) AND $func_name == $callback_details['function'][1] ) {
				$result = true;
				break;// done!
			}
		}
	}

	return $result;
}

function removeHooksSetByOtherThanWooDiscountRules(){
	global $wp_filter;

	$allowed_hooks = array(
		//Filters
		"woocommerce_get_price_html"            => array( "FlycartWooDiscountRulesPricingRules|replaceVisiblePricesOptimized" ),
	);

	foreach ( $wp_filter as $hook_name => $hook_obj ) {
		if ( preg_match( '#^woocommerce_#', $hook_name ) ) {
			if ( isset( $allowed_hooks[ $hook_name ] ) ) {
				$wp_filter[ $hook_name ] = remove_wrong_callbacks_other_than_woo_discount_rules( $hook_obj, $allowed_hooks[ $hook_name ] );
			} else {
			}
		}
	}
}

add_action( "wp_loaded", "removeHooksSetByOtherThanWooDiscountRules" );