WooCommerce обладает плохой особенностью не обновлять складские запасы при ручном или автоматическом отмене заказа, поэтому если вы управляете своими запасами на складе без сторонних программ (например Мой Склад), то вы рано или поздно столкнётесь с этой проблемой.

Для обновления складских запасов при отмене заказа вставьте следующих код в файл function.php:

//WooCommerce 3.4.5
//Возврат товара на склад при отмене заказа
remove_filter( 'woocommerce_cancel_unpaid_orders', 'wc_cancel_unpaid_orders' );
add_filter( 'woocommerce_cancel_unpaid_orders', 'override_cancel_unpaid_orders' );
function override_cancel_unpaid_orders() {
    $held_duration = get_option( 'woocommerce_hold_stock_minutes' );

    if ( $held_duration < 1 || 'yes' !== get_option( 'woocommerce_manage_stock' ) ) {
        return;
    }

    $data_store    = WC_Data_Store::load( 'order' );
    $unpaid_orders = $data_store->get_unpaid_orders( strtotime( '-' . absint( $held_duration ) . ' MINUTES', current_time( 'timestamp' ) ) );

    if ( $unpaid_orders ) {
        foreach ( $unpaid_orders as $unpaid_order ) {
            $order = wc_get_order( $unpaid_order );

            if ( apply_filters( 'woocommerce_cancel_unpaid_order', 'checkout' === $order->get_created_via(), $order ) ) {
                $order->update_status( 'cancelled', __( 'Неоплаченный заказ отменен - достигнут лимит времени', 'woocommerce' ) );

                foreach ($order->get_items() as $item_id => $item) {
                    $product = $item->get_product();
                    $qty = $item->get_quantity();
                    wc_update_product_stock($product, $qty, 'increase');
                }
            }
        }
    }
    wp_clear_scheduled_hook( 'woocommerce_cancel_unpaid_orders' );
    wp_schedule_single_event( time() + ( absint( $held_duration ) * 60 ), 'woocommerce_cancel_unpaid_orders' ); //через сколько минут отменять заказ

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

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

Почему нужно вносить изменения в файл function.php, а не в файл плагина?

Если в будущем обновить плагин WordPress, то все внесённые изменения вероятней всего будут потеряны. Файл function.php принадлежит вашей теме, поэтому его изменения без вашего участия невозможны, если конечно вы не обновляете тему WordPress.

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

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