The Problem
I ran into this on a client store last week. They updated to WooCommerce 10.7, enabled HPOS on a staging copy first, then synced production. The day after the rollout, their content editor pinged me: every product edit screen was missing the Product short description TinyMCE box. The long description was still there as a regular post editor, but the short description meta box had vanished from every product in the admin.
The data was intact. A SELECT post_excerpt FROM wp_posts WHERE post_type = 'product' returned all the existing values. The frontend rendered them on shop archives and single product pages without a problem. It was strictly the admin meta box that had disappeared, and adding a new product gave no way to write a short description at all.
Why It Happens
WooCommerce 10.7 finished moving the classic product editor onto the block-aware screen pipeline, even when you keep the legacy editor enabled. As part of that work, the short description meta box is now registered against the new product admin screen ID and gated by an internal capability check that reads from the HPOS data store.
Three things have to line up before the box renders:
- The product post type has to declare
excerptsupport. WooCommerce still adds this by default, but any plugin that re-registersproductviaregister_post_type(multilingual plugins are the usual suspect) dropsexcerptfrom the supports array because they copy an older WooCommerce snippet. - The current screen must report
id === 'product', notedit-product. The new editor pipeline registers the meta box onadd_meta_boxes_product, not on the genericadd_meta_boxes. If a plugin hooksadd_meta_boxeswith priority 5 and callsremove_meta_box('postexcerpt', 'product', 'normal')to relocate it, the removal now fires before WooCommerce registers it, so the relocation runs against nothing and WooCommerce never adds it back. - When HPOS is on, the admin uses a different load order.
current_screenfires beforeadd_meta_boxes_productin some cases, which means any code that conditionally adds the meta box insidecurrent_screenwill execute too early and silently fail.
The WooCommerce HPOS migration guide covers the data layer but not the editor screen changes, which is why this surprises people.
The Fix
You need two things: confirm excerpt is in the supports array for the product post type, and re-register the meta box against the correct hook with the correct screen ID.
Step 1: Check the supports array. Drop this into a mu-plugin or your theme's functions.php temporarily:
add_action('init', function () {
$supports = get_all_post_type_supports('product');
error_log('product supports: ' . print_r(array_keys($supports), true));
}, 999);
Reload any admin page and check wp-content/debug.log. If excerpt is missing from the list, a plugin is overriding the post type registration. Find it by disabling plugins one by one until excerpt appears, then patch with:
add_action('init', function () {
add_post_type_support('product', 'excerpt');
}, 100);
Priority 100 runs after most plugins have re-registered the post type.
Step 2: Re-register the meta box. Even with excerpt support in place, the meta box can stay missing because of the hook timing issue. Add this:
add_action('add_meta_boxes_product', function () {
add_meta_box(
'postexcerpt',
__('Product short description', 'woocommerce'),
'post_excerpt_meta_box',
'product',
'normal',
'high'
);
}, 20);
The hook add_meta_boxes_product only fires on the product edit screen, runs after WooCommerce's own meta box registration at priority 10, and gives you priority 20 to override any plugin that removed the box earlier in the chain. Using post_excerpt_meta_box as the callback reuses WordPress core's TinyMCE-backed excerpt UI, which is what WooCommerce wraps anyway.
Step 3: Verify the save path is intact. If the box renders but saving the value does nothing, a plugin is hooking wp_insert_post_data and stripping post_excerpt. Confirm with:
add_filter('wp_insert_post_data', function ($data, $postarr) {
if (($data['post_type'] ?? '') === 'product') {
error_log('product excerpt on save: ' . substr($data['post_excerpt'] ?? '(empty)', 0, 80));
}
return $data;
}, 999, 2);
Save a product with content in the short description. If the log shows (empty), walk backward through the filter list with has_filter('wp_insert_post_data') until you find the offender.
Step 4: Flush the screen options cache. WooCommerce 10.7 caches admin screen metadata per user. After the changes above, ask the content editor to:
WP Admin > Products > Screen Options > untick "Product short description" > save > re-tick > save
That step looks cosmetic but it forces WordPress to rebuild the user's hidden meta box list, which is what was hiding the box for some users even after the box was registered correctly.
The Lesson
The short description has not gone anywhere — WooCommerce 10.7 changed when and where its meta box gets registered, and any plugin that touches add_meta_boxes or re-registers the product post type can knock the registration out of sync. Confirm excerpt support, re-register against add_meta_boxes_product at priority 20, and clear the user-specific screen options cache. The box comes back without losing any saved data.
If your store is going through an HPOS migration and pieces of the admin are quietly breaking, that is the kind of cleanup I do daily. See my services. For a related HPOS gotcha that hits the API layer, see WooCommerce REST API 401 after WordPress 6.9.