В каталоге товаров WooCommerce не выводится информация есть ли товар в наличии или нет, покупатель узнает об этом только когда перейдет на страницу товара.

Думаю вы согласитесь, что это очень не удобно и может отпугнуть покупателя.  Для изменения текста кнопки в каталоге товаров WooCommerce вставьте следующий код в файл function.php:

//WooCommerce 3.4.5
//Изменить текст кнопки в каталоге товаров при проверке количества
add_filter( 'woocommerce_loop_add_to_cart_link', 'my_sold_out_loop' );
function my_sold_out_loop() {
global $product;
   if ( !$product->is_in_stock() ) {
     echo '<a rel="nofollow" href="'.esc_url( $product->get_permalink( $product->id )).'" class="button product_type_simple add_to_cart_button">Нет в наличии</a>'; //Если товара нет в наличии, меняем текст кнопки
    }
else {
      echo '<a rel="nofollow" href="'.esc_url( $product->get_permalink( $product->id )).'" class="button product_type_simple add_to_cart_button">Купить</a>'; //Если товар в наличии, то выводим этот текст кнопки
}
}

Где находится файл function.php?

Файл function.php находится в папке вашей темы WordPress, путь к файлу следующий:
/wp-content/themes/Тема WordPress/function.php

Этот код еще работает?

Пожалуйста, сообщите мне в комментариях о работоспособности. Данный код тестировался с темой Newspaper, версией PHP 7 и WooCommerce указанной в коде.