Otevře se na nové kartě

Novinka: Vizuální editor pro éru AI webů: www.directedit.dev

💬

Uzavřít objednávky zdarma

Ušetřete si práci a uzavírejte virtuální objednávky s cenou 0 automaticky.

Jitka Klingenbergová
Jitka Klingenbergová
Vytvořeno: 9. 8. 2022 | Aktualizováno: 17. 1. 2025

Určitě se vám na e-shopu stalo (pokud ho máte nebo spravujete), že objednávky zdarma musíte nějakým způsobem dokončit. Je velká škoda, že tuto funkci – tj. změnu ze stavu Zpracovává se (“Processing“) na Dokončeho (“Completed“) – WordPress sám automaticky neumí. Naštěstí existuje jednoduchý způsob jak ho to naučit.

Následující kód stačí zkopírovat do functions.php (ideálně do Child theme):

  • pozn: Funguje to pouze pro virtuální produkty (nikolik fyzické).
function woo_auto_complete_virtual_orders($order_id) {
  if ( ! $order_id ) {
        return;
  }
  
  global $product;
  $order = wc_get_order( $order_id );
  
  if ($order->data['status'] == 'processing') {
    
    $virtual_order = null;
    if ( count( $order->get_items() ) > 0 ) {
      foreach( $order->get_items() as $item ) {
        if ( 'line_item' == $item['type'] ) {
          $_product = $order->get_product_from_item( $item );
          if ( ! $_product->is_virtual() ) {
            // once we find one non-virtual product, break out of the loop
            $virtual_order = false;
            break;
          } 
          else {
            $virtual_order = true;
          }
       }
     }
   }
    // if all are virtual products, mark as completed
    if ( $virtual_order ) {
      $order->update_status( 'completed' );
    }
  }    
}

add_action('woocommerce_order_status_changed', 'woo_auto_complete_virtual_orders');

Zdroje

Pošlete to dál:

Jitka Klingenbergová

Jitka Klingenbergová

Absolventka ČVUT FIT oboru Informatika | Programátorka | Webová vývojářka, konzultantka a mentorka
tvorime@vyladeny-web.cz

Vaše komentáře

Zanechte první komentář

Pravidelná dávka užitečných tipů až do schránky