The following hooked functions will allow you to make everything purchasable:
// Change all products stock statuses to 'instock'
add_filter( 'woocommerce_product_get_stock_status', 'filter_get_stock_status_callback', 10, 2 );
add_filter( 'woocommerce_product_variation_get_stock_status', 'filter_get_stock_status_callback', 10, 2 );
function filter_get_stock_status_callback( $stock_status, $product ){
return is_admin() ? $stock_status : 'instock';
}
// Enable backorders on all products
add_filter( 'woocommerce_product_get_backorders', 'filter_get_backorders_callback', 10, 2 );
add_filter( 'woocommerce_product_variation_get_backorders', 'filter_get_backorders_callback', 10, 2 );
function filter_get_backorders_callback( $backorders_status, $product ){
return 'yes'; // Enable without notifications
}
// Remove the stock quantity from displayed stock status
add_filter( 'woocommerce_get_availability_text', 'filter_get_availability_text_callback', 10, 2 );
function filter_get_availability_text_callback( $availability_text, $product ){
return __( 'In stock', 'woocommerce');
}
Code goes in function.php file of the active child theme (or active theme). Tested and works.