web-dev-qa-db-fra.com

Supprimer une action ou un style de retrait de la file d'attente - Les deux ne fonctionnent pas

Ce que je veux réaliser est de supprimer une action appelée à l'intérieur d'une autre action.

L'action appelle un style et bien que j'aie essayé de désenregistrer et de retirer le style, il est toujours affiché sur les pages d'administration.

Voici l'extrait de code (à l'intérieur de WooCommerce):

function woocommerce_admin_menu() {
    global $menu, $woocommerce;...

    $print_css_on = apply_filters( 'woocommerce_screen_ids', array( 'toplevel_page_woocommerce', 'woocommerce_page_woocommerce_settings', 'woocommerce_page_woocommerce_reports', 'woocommerce_page_woocommerce_status', 'product_page_woocommerce_attributes', 'edit-tags.php', 'edit.php', 'index.php', 'post-new.php', 'post.php' ) );

    foreach ( $print_css_on as $page )
        add_action( 'admin_print_styles-'. $page, 'woocommerce_admin_css' );
}
add_action('admin_menu', 'woocommerce_admin_menu', 9);

Ce que j'ai essayé de faire:

add_action('init', 'remove_action_123', 999);
function remove_action_123() {
        $print_css_on = apply_filters( 'woocommerce_screen_ids', array( 'toplevel_page_woocommerce', 'woocommerce_page_woocommerce_settings', 'woocommerce_page_woocommerce_reports', 'woocommerce_page_woocommerce_status', 'product_page_woocommerce_attributes', 'edit-tags.php', 'edit.php', 'index.php', 'post-new.php', 'post.php' ) );add_action('init', 'remove_action', 999);

        // Remove 'woocommerce_admin_menu'
    foreach ( $print_css_on as $page )
    remove_action( 'admin_print_styles-'. $page, 'woocommerce_admin_css' );
}

Voici comment cela est mis en file d'attente:

function woocommerce_admin_css() {
    global $woocommerce, $typenow, $post, $wp_scripts;...

    if ( $typenow == '' || $typenow == "product" || $typenow == "shop_order" || $typenow == "shop_coupon" ) {
        wp_enqueue_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css' );
    }

    do_action('woocommerce_admin_css');
}

Alors j'ai aussi essayé:

wp_dequeue_style( 'woocommerce_admin_styles' )

Mais cela ne fonctionne toujours pas.

Des idées sur la façon de supprimer avec succès ce css?

Merci! Roc.

1
Roc

Pour nettoyer un tableau complet, utilisez la fonction d'assistance __return_empty_array() comme rappel:

add_filter( 'woocommerce_screen_ids', '__return_empty_array', );

Des aides similaires pour une utilisation ultérieure sont:

  • __return_true()
  • __return_false()
  • __return_zero()
  • __return_null()
3
fuxia