Всегда есть несколько решений, но 1 из них может быть перезаписан файлом шаблона
https://github.com/woocommerce/woocommerce/blob/3.8.0/templates/cart/cross-sells.php
Заменить (строка: 28 - 38 )
<?php foreach ( $cross_sells as $cross_sell ) : ?>
<?php
$post_object = get_post( $cross_sell->get_id() );
setup_postdata( $GLOBALS['post'] =& $post_object ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited, Squiz.PHP.DisallowMultipleAssignments.Found
wc_get_template_part( 'content', 'product' );
?>
<?php endforeach; ?>
С
<?php foreach ( $cross_sells as $cross_sell ) : ?>
<?php
$stock_status = $cross_sell->get_stock_status();
if ( $stock_status != 'outofstock' ) {
$post_object = get_post( $cross_sell->get_id() );
setup_postdata( $GLOBALS['post'] =& $post_object ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited, Squiz.PHP.DisallowMultipleAssignments.Found
wc_get_template_part( 'content', 'product' );
}
?>
<?php endforeach; ?>