How to Hide the SKU on the WooCommerce Single Product Page

How to Hide the SKU on the WooCommerce Single Product Page
On this page
  1. Why Hide the SKU from Customers
  2. Step 1: Add the Hide-SKU Snippet
  3. Troubleshooting
  4. Frequently Asked Questions
  5. Conclusion

You can hide the SKU on the WooCommerce single product page with a filter that disables SKU output on the front end while keeping it fully visible and editable in the admin for order tracking, imports, and exports. This is a common request for stores that don’t want internal reference codes visible to shoppers.

Why Hide the SKU from Customers

  • Internal SKU codes may reveal supplier, cost, or batch information you’d rather not expose
  • A cleaner product page layout without extra meta rows
  • Some stores use SKUs purely for warehouse/inventory purposes, not customer reference

Step 1: Add the Hide-SKU Snippet

PHP
/** Hide SKU on the storefront while keeping it visible in wp-admin */
add_filter( 'wc_product_sku_enabled', 'hide_sku_on_storefront_only' );

function hide_sku_on_storefront_only( $is_enabled ) {
    if ( ! is_admin() && is_product() ) {
        return false;
    }
    return $is_enabled;
}
Hide the SKU on the WooCommerce single product page: the page before adding the code
Before
Hide the SKU on the WooCommerce single product page: the page after adding the code
After

Because the check is scoped to is_product() and excludes admin screens, your SKU stays fully intact in Products → Edit and in CSV import/export — only the single product page front-end display is hidden.

Hiding SKU on Shop and Category Pages Too

The filter above only targets the single product page. If your theme also prints the SKU in the shop loop, broaden the condition:

PHP
function hide_sku_shop_and_product_pages( $is_enabled ) {
    if ( ! is_admin() && ( is_product() || is_shop() || is_product_category() ) ) {
        return false;
    }
    return $is_enabled;
}
add_filter( 'wc_product_sku_enabled', 'hide_sku_shop_and_product_pages' );

Troubleshooting

SKU Still Shows After Adding the Snippet

Some themes print the SKU directly in a custom template file rather than through the standard hook — if the filter has no effect, search your theme for a hardcoded SKU reference.

SKU Disappeared from Admin Too

Double-check the ! is_admin() condition is present exactly as shown — omitting it hides the SKU everywhere, including the product edit screen, which usually isn’t intended.

Frequently Asked Questions

Does hiding the SKU affect inventory tracking?

No — this only controls front-end display. Stock management, order processing, and reporting all continue to use the SKU internally as normal.

Can I hide SKU for only certain product categories?

Yes — add a category check with has_term() inside the same conditional so the filter only applies to specific categories.

Is there a plugin alternative to this snippet?

Yes, several small utility plugins offer a settings toggle for hiding SKU, categories, or tags on the front end if you’d rather avoid custom code.

Conclusion

Hiding the SKU on the WooCommerce single product page is a one-filter change that keeps internal reference codes out of customer view while leaving admin functionality untouched. Extend the same filter to shop and category pages if your theme prints SKU there too.

See also How to Hide Category and Tag on the Single Product Page.

Prefer no code? All-in-One Utilities Woo Add-on handles this kind of change from a settings screen. Its Product page extras guide also shows how.

Leave a Reply

Schedule a call