Come completare automaticamente gli ordini in WooCommerce

Vuoi completare automaticamente gli ordini in WooCommerce?

Puoi usare il mio plugin gratuito RIACO Autocomplete Orders for WooCommerce, oppure aggiungere del codice al functions.php del tuo tema child.

Ecco come fare.

Tramite Plugin

Ci sono diversi plugin disponibili per gestire il completamento automatico.

Io ho realizzato RIACO Autocomplete Orders for WooCommerce che ha una versione gratuita di base.

Il plugin automatizza il completamento degli ordini in base:

  • allo stato dell’ordine (es. “Processing” o “On hold”),
  • al tipo di prodotto (virtuale, scaricabile, semplice, variabile, raggruppato, esterno).

Sono supportati anche stati d’ordine personalizzati e tipi di prodotto personalizzati.

Ecco come usarlo.

Installa il plugin, attivalo e poi vai su WooCommerce > Impostazioni > Autocomplete Orders.

È una nuova tab aggiunta al pannello delle impostazioni nativo di WooCommerce.

RIACO Autocomplete Orders for WooCommerce Impostazioni

Ho realizzato una pagina dettagliata dove spiego le impostazioni del plugin, riassumo qui.

Seleziona Enable Autocomplete per abilitare il funzionamento del plugin.

Aggiungi a Trigger Status gli stati degli ordini di WooCommerce che vuoi che vengano completati automaticamente.

Puoi aggiungerne anche più di uno.

Solamente gli ordini che hanno uno tra gli stati selezionati verranno completati automaticamente se anche le altre condizioni sono soddisfatte.

Aggiungi a Product Types to Autocomplete il tipo di prodotti WooCommerce che vuoi che vengano autocompletati.

Puoi aggiungerne anche più di uno.

Salva.

Ora tutti gli ordini che soddisfano tutte le condizioni che hai selezionato, verranno completati automaticamente.

Tramite snippet di codice

Per modificare il comportamento nativo degli ordini di WooCommerce, possiamo usare l’action woocommerce_order_status_changed per eseguire il nostro codice ogni volta che un ordine cambia di stato.

Inserisci questo codice in functions.php del tema child.

add_action( 
    'woocommerce_order_status_changed', 
    'my_maybe_autocomplete_order', 
    20, 
    4 
);

function my_maybe_autocomplete_order( $order_id, $old_status, $new_status, $order ) {
    
    // Condizione: completa solo se il nuovo stato è "processing"
    if ( $new_status !== 'processing' ) {
        return;
    }

    // Recupero articoli dell’ordine
    $items = $order->get_items();

    $only_virtual = true;

    foreach ( $items as $item ) {
        $product = $item->get_product();
        
        // Se uno dei prodotti non è virtuale => non completare automaticamente
        if ( ! $product || ! $product->is_virtual() ) {
            $only_virtual = false;
            break;
        }
    }

    // Se tutti i prodotti sono virtuali, cambio lo stato in "completed"
    if ( $only_virtual ) {
        $order->update_status( 'completed', __( 'Ordine completato automaticamente perché contiene solo prodotti virtuali.', 'my-textdomain' ) );
    }
}

Questo codice completa automaticamente l’ordine solo se il nuovo stato è “processing“.

Poi controlla i prodotti all’interno dell’ordine e solo se tutti sono di tipo Virtuale allora procede con il completamente automatico dell’ordine usando la funzionalità nativa di WooCommerce $order->update_status( 'completed', ..., ... ).

Puoi aggiungere o modificare gli stati dell’ordine modificando la condizione $new_status !== 'processing'.

Puoi anche aggiungere o modificare altri tipi di prodotti nella condizione ! $product->is_virtual().

Perché automatizzare?

Perché è utile e comodo automatizzare il completamento dell’ordine?

  • Riduzione del lavoro manuale: ideale per i negozi che vendono prodotti digitali. Risparmi tempo e soldi.
  • Miglior esperienza utente: subito dopo il pagamento l’utente potrà vedere il suo ordine completato, ed accedere immediatamente ai suoi file.

Sponsor

Vhosting
themeforest