Skip to content

Instantly share code, notes, and snippets.

@ontiuk
Last active December 5, 2024 14:24
Show Gist options
  • Save ontiuk/72f6ac868d397678fb8b31df2b22e32a to your computer and use it in GitHub Desktop.
Save ontiuk/72f6ac868d397678fb8b31df2b22e32a to your computer and use it in GitHub Desktop.
Woocommerce Remove Select2 / SelectWoo
// Add to your theme's functions.php file. De-queues Select2 styles & scripts. Useful to keep Boostrap form control formatting
/**
* Remove Woocommerce Select2 - Pre WC 3.2.1-ish
*/
function woo_dequeue_select2() {
if ( class_exists( 'woocommerce' ) ) {
wp_dequeue_style( 'select2' );
wp_deregister_style( 'select2' );
wp_dequeue_script( 'select2');
wp_deregister_script('select2');
}
}
add_action( 'wp_enqueue_scripts', 'woo_dequeue_select2', 100 );
/**
* Remove Woocommerce Select2 - Woocommerce 3.2.1+
*/
function woo_dequeue_select2() {
if ( class_exists( 'woocommerce' ) ) {
wp_dequeue_style( 'select2' );
wp_deregister_style( 'select2' );
wp_dequeue_script( 'selectWoo');
wp_deregister_script('selectWoo');
}
}
add_action( 'wp_enqueue_scripts', 'woo_dequeue_select2', 100 );
@sean-mystyle
Copy link

@sean-mystyle What if other plugins require selectWoo?

wp_enqueue_script ('custom_js', plugins_url ('js/custom.js', __FILE__), array ('selectWoo'));

Instead of wondering "what if", just check if it's being used or not and know where it's safe to remove it or not. For example, this is for select boxes UI right? Well, if there's no select boxes on the page, then it's not being used and is adding bloat to the page for no reason.

Write some code that only dequeues it on pages that don't use it. For me the only pages that need this are product pages, cart, and checkout. So the code says is it one of those pages? If not, dequeue it, and it speeds up the page load time with one less render blocking resource.

@Neshable
Copy link

Neshable commented Sep 2, 2024

For newer versions of WooCommerce, the handle that should be removed is wc-country-select :

wp_dequeue_script( 'wc-country-select');
wp_deregister_script( 'wc-country-select' );

@grand-lotus-iroh
Copy link

For newer versions of WooCommerce, the handle that should be removed is wc-country-select :

wp_dequeue_script( 'wc-country-select'); wp_deregister_script( 'wc-country-select' );

THAT DID IT... thanks!!

function woo_dequeue_select2_only_for_checkout() {
    if (is_checkout()) {
        // Dequeue and deregister Select2 and related scripts/styles
        wp_dequeue_style('select2');
        wp_deregister_style('select2');

        wp_dequeue_script('selectWoo');
        wp_deregister_script('selectWoo');
        
        // Dequeue and deregister the country select script (optional)
        wp_dequeue_script('wc-country-select');
        wp_deregister_script('wc-country-select');
    }
}
add_action('wp_enqueue_scripts', 'woo_dequeue_select2_only_for_checkout', 100);

p.s. … i can't believe how many searches it took to disable this junk...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment