Home / WooCommerce / WooCommerce order status automatisch afronden

WooCommerce order status automatisch afronden

WooCommerce order status automatisch op afgerond zetten

In bepaalde situaties zou het handig zijn dat WooCommerce bestellingen automatisch op afgerond zet nadat er betaald is.

Standaard doet WooCommerce dit alleen bij virtuele-downloadbare producten, maar alle andere bestellingen moet je zelf handmatig afronden.

In dit artikel zal ik uitleggen hoe je ervoor kunt zorgen dat de order status in WooCommerce automatisch op afgerond gezet kan worden.

Waarom een bestelling automatisch afronden?

Alle order statussen in WooCommerce zijn er natuurlijk niet voor niks. De reden dat een bestelling standaard op in behandeling komt te staan na de betaling, is omdat er vaak een proces volgt. Zo moet je waarschijnlijk de producten opsturen naar de klant en zodra je dit gedaan hebt kun je de bestelling op afgerond zetten.

Het kan alleen ook zijn dat je via WooCommerce diensten of digitale lidmaatschappen verkoopt. In dit geval is het niet altijd noodzakelijk om iets na de betaling te doen, omdat dit bijvoorbeeld automatisch geregeld wordt of er direct gebruik gemaakt kan worden van je diensten.

Er zijn verder natuurlijk nog wel meer situaties te verzinnen waarin het niet noodzakelijk is om de tussenstap te hebben in de order statussen.

Order status automatisch op afgerond zetten

Om ervoor te zorgen dat de order status automatisch op afgerond komt te staan nadat de betaling is voldaan, kun je gebruik maken van een stukje code die je aan het functions.php-bestand van je thema kunt toevoegen. Een andere oplossing is om een plugin te installeren die je de mogelijkheid geeft om dit in te stellen.

Om alle bestellingen in WooCommerce op afgerond te zetten, kun je onderstaande code toevoegen aan het functions.php-bestand van je thema. Het liefst natuurlijk in je child theme, zodat je het niet telkens opnieuw moet doorvoeren.

add_action('woocommerce_payment_complete', 'auto_complete_paid_orders');

function auto_complete_paid_orders($order_id)
{
    // Get the order object
    $order = wc_get_order($order_id);

    // Check if the order is not already completed
    if ($order && !$order->has_status('completed')) {
        // Update the order status to 'completed'
        $order->update_status('completed');
    }
}

Order status automatisch afronden met een plugin

Een andere oplossing is de plugin WooCommerce Order Status Control. Het voordeel van deze plugin is dat je zelf niet in de code hoeft te rommelen en je natuurlijk net wat meer mogelijkheden hebt.

Zo kun je alle betaalde bestellingen die alleen virtuele producten bevatten automatisch op afgerond laten zetten of je kunt ervoor kiezen dat alle betaalde bestellingen automatisch op afgerond komen te staan. Verder kun je ook nog zorgen dat juist geen enkele bestelling automatisch op afgerond komt te staan.

Wanneer je de plugin hebt geïnstalleerd en geactiveerd kun je de instellingen vinden door naar “WooCommerce -> Instellingen -> Algemeen” te gaan.

WooCommerce order status automatisch afronden

Naast “Orders to Autocomplete” kun je aangeven of je geen, alle bestellingen, alleen virtuele bestellingen of alleen virtuele-downloadbare bestellingen (zo gaat het standaard al) automatisch op afgerond wilt zetten. Zodra je hier een keuze hebt gemaakt en het hebt opgeslagen, zal het vanaf dat moment ingaan.


WordPress Hulp Nodig? Join Het WP Lab

Het WordPress Lab Mockup

Heb je vragen aan de hand van dit artikel of wil je verder op weg geholpen worden met je website?

Sluit je aan bij Het WordPress lab, een community voor WordPress-liefhebbers waarin ik antwoord geef op jouw WordPress vragen en je toegang krijgt tot al mijn WordPress cursussen.

«
»

25 reacties op “WooCommerce order status automatisch afronden”

  1. ruud compas avatar

    Altijd weer vind ik bij jou de oplossing. Gewoon eng 🙂
    dank je wel.

  2. Nikkie avatar

    Misschien een domme vraag, maar klopt het dat ik de code nergens zie staan?

    1. Maikel van de Weerd avatar

      De code staat er gewoon, dit wordt ingeladen via Github. Wellicht dat je iets blokkeert met je browser?

  3. Jill avatar

    Beste Webtalis,

    Ik heb de code zoals beschreven in Functions.php gezet alleen mijn site ligt er nu uit. Mijn hosting krijgt mijn site ook niet voor elkaar.. Dit is ontzettend balen. Ik wil heel graag dat mijn website weer up and running is!

    Kunnen jullie mij helpen?

    Dank.

    Groet,

    Jill

    1. Maikel van de Weerd avatar

      Dan staat het waarschijnlijk niet helemaal op de juiste plek of tussen iets anders. Je kunt de code uit het bestand halen en dan zal alles gewoon weer werken.

    2. Frank avatar
      Frank

      Je kunt er ook een snippet van maken. Zie url voor meer info: https://webtalis.nl/wordpress-code-snippets/

  4. Caroline avatar

    Ik ben net van psp veranderd (naar Rabo Omnikassa) en nu nog bezig in testomgeving. Bij betaling via Ideal/creditcard ontvangt de klant geen e-mail ter bevestiging van de bestelling (er verschijnt wel een scherm op de webshop met bevestiging, maar een mail erbij ontvangen, vind ik zelf altijd wel prettig). Webshop in Woocommerce. Het rare is dat als ik in het orderscherm de bestelling wijzig in “complete” er wel een mail wordt gestuurd. Waar zou het fout gaan? Overigens is “processing order” aangevinkt.

    1. Maikel van de Weerd avatar

      Zal met de mailserver instellingen te maken hebben. Zie ook het artikel WordPress SMTP.

  5. Esther avatar
    Esther

    Hoi, ik heb de plugin geinstalleerd maar hij komt niet onder WooCommerce -> Instellingen -> Algemeen te staan? Heb jij een idee hoe dat kan?

    1. Maikel van de Weerd avatar

      De laatste keer dat ik bij een klant keek met deze plugin stond het nog altijd daar. Een andere methode die je kunt gebruiken is om op “Configure” klikken via het plugin overzicht, dan hoor je op de locatie te komen van de instellingen.

      1. Esther avatar
        Esther

        Snap niet precies wat je daarmee bedoelt?

        1. Maikel van de Weerd avatar

          Ik kan het helaas niet duidelijker uitleggen dan ik het gedaan heb. In het plugin overzicht hoor je de plugin te hebben staan en hier staat ook een link “configure”, zodat je direct bij de instellingen komt. Is dit bij jou niet het geval, dan zal je het over een andere plugin hebben.

          1. Esther avatar
            Esther

            Het is zeker duidelijk uitgelegd. Maar waarschijnlijk komt het omdat het een betaalde plugin is, zie ik nu. Weet jij of er nog een alternatief voor is?

  6. Wadse avatar

    Hoi,
    Ik heb een ebook aan mijn webshop toegevoegd. Zowel virtueel als downloadable zijn aangevinkt evenals de url waar het product te downloaden is. De bestellingen worden wel automatisch afgerond, alleen komt er zowel geen bevestiging bij mij binnen als niet bij de klant, met een downloadlink. Bij fysieke producten werkt het wel, maar zodra het ebook wordt toegevoegd dan verschijnen er geen bevestigingen. Heb jij enig idee waar dat aan kan liggen?

    1. Maikel van de Weerd avatar

      Nee, ik zou eerst kijken of er wel mails verzonden worden met een mail logger. Als er wel mails verzonden worden vervolgens controleren waar het fout gaat.

  7. Maikel van de Weerd avatar

    Standaard is dit niet mogelijk en voor zover ik weet zijn hier ook niet echt specifiek plugins voor. Wat je wel zou kunnen doen, is de pre-order plugin gebruiken. Mensen kunnen dan een product reserveren die op een later moment “uitkomt”. Vermoedelijk niet de beste oplossing, maar dit is het enige wat ik op dit moment kan bedenken.

  8. René avatar
    René

    Hoe zet ik een product op gereserveerd of op on hold zodat de klant bepaalde bedenktijd krijgt van mij?
    ik heb wordpress, woocommerce

  9. Karin van Ettinger avatar

    Is het ook mogelijk om afhankelijk van de betaalmethode een order automatisch op afgerond te zetten?

    1. Maikel van de Weerd avatar

      Met een aanpassing aan de code is dit ongetwijfeld mogelijk.

      1. michiel avatar
        michiel

        Zou je een voorbeeld kunnen geven hoe dit met betaling+ via paypal zou gaan?

  10. Dennis avatar
    Dennis

    Is het mogelijk om alle bestellingen automatisch in de wacht te zetten? Dit zou namelijk makkelijker werken voor de leerlingen (zeer slechtziend) die de bestellingen in behandeling nemen.

    Alvast bedankt!

    1. Maikel van de Weerd avatar

      Ja, dit zou wel mogelijk moeten zijn. Als je in de code uit dit artikel ‘completed’ wijzigt in ‘on-hold’ werkt het vermoedelijk al. Wel even testen, dit heb ik niet gedaan. 🙂

  11. Verdi avatar

    Bedankt voor deze info, toch nog een kleine vraag over de snippet code:

    In plaats van ALLE orders op autocomplete te zetten, zouden we dit alleen willen doen voor orders waarbij de betaling direct is. Dus WEL bij betaalmethoden zoals iDeal, PayPal en Credit Card maar NIET bij betaling op factuur (BACS).

    We maken gebruik van Mollie, maar helaas heeft die deze functie niet ingebouwd.

    Weet je hier misschien ook de code voor? Zo kunnen we ‘yet another plugin’ vermijden.

    Alvast bedankt!

    1. Maikel van de Weerd avatar

      Die heb ik niet direct klaarliggen. Je zou wel de code uit het artikel kunnen gebruiken als startpunt en hier vervolgens doorgaan om te specificeren voor welke betalingsmethodes het wel en niet kan.