Autocomplete virtual orders

Virtuelle Bestellungen in WooCommerce automatisch abschließen, auch bei Kauf auf Rechnung.


add_action('woocommerce_thankyou', 'auto_complete_virtual_orders', 10, 1);

function auto_complete_virtual_orders($order_id)
{
    if (!$order_id) {
        return;
    }

    $order = wc_get_order($order_id);

    $only_virtual = true;

    foreach ($order->get_items() as $item) {
        $product = $item->get_product();

        if (!$product || !$product->is_virtual()) {
            $only_virtual = false;
            break;
        }
    }

    if ($only_virtual) {
        $order->update_status('completed');
    }
}