I finally figured it out. Stock status is hardcoded into the templates, so you must first remove it from simple.php and variation.php in your child theme. (And grouped.php too, but I don't use grouped products, so I didn't need to update that template.)
Delete these lines from variation.php
<div class="woocommerce-variation-availability">
{{{ data.variation.availability_html }}}
</div>
and this line from simple.php (line 28)
echo wc_get_stock_html( $product );
Then in your functions.php add the following code changing the priority to where ever you want the stock status to show up.
add_action( 'woocommerce_single_product_summary', 'mh_output_stock_status', 21 );
function mh_output_stock_status ( ) {
global $product;
echo wc_get_stock_html( $product );
}
I really wish stock was hooked in like the rest of the summary. It would be a lot more straight forward.
I hope this helps someone else.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…