Greg Rickaby

Full-Stack Developer

· 4 min read · #code

Remove WooCommerce Styles and Scripts

WooCommerce is absolutely the most brilliant and easy-to-use shopping cart for WordPress - but it's heavy! I'll show you how to remove the cruft!

Option 1: Use a filter

There are a couple of ways to do this. The easiest is to remove the three primary stylesheets using a simple filter in functions.php

add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' );

Option 2: A bit more control

If you want fine grain control over what appears where, then this function uses a conditional tag to dequeue styles and scripts.

/**
 * Manage WooCommerce styles and scripts.
 */
function grd_woocommerce_script_cleaner() {

 // Remove the generator tag
 remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );

 // Unless we're in the store, remove all the cruft!
 if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
  wp_dequeue_style( 'woocommerce_frontend_styles' );
  wp_dequeue_style( 'woocommerce-general');
  wp_dequeue_style( 'woocommerce-layout' );
  wp_dequeue_style( 'woocommerce-smallscreen' );
  wp_dequeue_style( 'woocommerce_fancybox_styles' );
  wp_dequeue_style( 'woocommerce_chosen_styles' );
  wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
  wp_dequeue_script( 'selectWoo' );
  wp_deregister_script( 'selectWoo' );
  wp_dequeue_script( 'wc-add-payment-method' );
  wp_dequeue_script( 'wc-lost-password' );
  wp_dequeue_script( 'wc_price_slider' );
  wp_dequeue_script( 'wc-single-product' );
  wp_dequeue_script( 'wc-add-to-cart' );
  wp_dequeue_script( 'wc-cart-fragments' );
  wp_dequeue_script( 'wc-credit-card-form' );
  wp_dequeue_script( 'wc-checkout' );
  wp_dequeue_script( 'wc-add-to-cart-variation' );
  wp_dequeue_script( 'wc-single-product' );
  wp_dequeue_script( 'wc-cart' );
  wp_dequeue_script( 'wc-chosen' );
  wp_dequeue_script( 'woocommerce' );
  wp_dequeue_script( 'prettyPhoto' );
  wp_dequeue_script( 'prettyPhoto-init' );
  wp_dequeue_script( 'jquery-blockui' );
  wp_dequeue_script( 'jquery-placeholder' );
  wp_dequeue_script( 'jquery-payment' );
  wp_dequeue_script( 'fancybox' );
  wp_dequeue_script( 'jqueryui' );
 }
}
add_action( 'wp_enqueue_scripts', 'grd_woocommerce_script_cleaner', 99 );

Option 3: Nuke it

Kill all the things, forever. You'll write your own styles, because you're a fucking ninja.

/**
 * Remove all WooCommerce scripts and styles! Forever!
 */
function grd_remove_woocommerce_styles_scripts() {
 remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );
 remove_action( 'wp_enqueue_scripts', array( $GLOBALS['woocommerce'], 'frontend_scripts' ) );
}
define( 'WOOCOMMERCE_USE_CSS', false );
add_action( 'init', 'grd_remove_woocommerce_styles_scripts', 99 );

Further reading:

WooCommerce has a page dedicated for style & script management. Also, take a look at the PHP Class responsible for enqueuing styles and scripts.

Thanks to everyone who's suggested things in the comments. Peer code-review is amazing, and it's why I share this stuff.

Greg is the Director of Engineering at WebDevStudios. He also moonlights at Dummies writing and editing books. Follow him on Twitter for lots of pictures of pepperoni pizza and tidbits about Next.js.
· · ·