Automatyczne zmniejszanie poziomu zapasów po złożeniu zamówienia w WooCommerce
Objaśnienie
Ten fragment kodu został zaprojektowany, aby pomóc w automatycznym zarządzaniu zapasami w Twoim sklepie WooCommerce poprzez redukcję poziomów zapasów za każdym razem, gdy składane jest zamówienie. Pomaga to zapobiegać nadmiernej sprzedaży i utrzymuje dokładność zapasów.
Jak to działa:
- Gdy zamówienie zostanie złożone i jego status zmienia się na "w trakcie realizacji", "zrealizowane" lub "wstrzymane", kod wchodzi w życie.
- Sprawdza każdy przedmiot w zamówieniu, aby zobaczyć, czy zarządzanie zapasami jest włączone dla produktu.
- Jeśli zarządzanie zapasami jest włączone dla produktu, kod oblicza nowy poziom zapasów, odejmując zamówioną ilość od aktualnego stanu magazynowego.
- Ilość zapasów produktu jest następnie aktualizowana, aby odzwierciedlić nową wartość.
Uwaga: Ten kod jest uruchamiany przez określone statusy zamówienia, co zapewnia, że zapasy są redukowane tylko wtedy, gdy zamówienie jest potwierdzone lub w trakcie realizacji, co zapobiega przedwczesnej redukcji zapasów.
Kod
<?php
/**
* Automatically reduce stock level in WooCommerce after an order is placed.
*
* This function hooks into the WooCommerce order status change to reduce stock levels
* when an order is placed, preventing overselling and ensuring accurate inventory management.
*
* @param int $order_id The ID of the order.
*/
function wp_dudecom_reduce_stock_on_order_status_change( $order_id ) {
// Get the order object
$order = wc_get_order( $order_id );
// Check if the order is valid
if ( ! $order ) {
return;
}
// Loop through each item in the order
foreach ( $order->get_items() as $item_id => $item ) {
// Get the product object
$product = $item->get_product();
// Check if the product manages stock
if ( $product && $product->managing_stock() ) {
// Get the current stock quantity
$current_stock = $product->get_stock_quantity();
// Calculate the new stock quantity
$new_stock = $current_stock - $item->get_quantity();
// Update the product stock quantity
wc_update_product_stock( $product, $new_stock );
}
}
}
add_action( 'woocommerce_order_status_processing', 'wp_dudecom_reduce_stock_on_order_status_change', 10, 1 );
add_action( 'woocommerce_order_status_completed', 'wp_dudecom_reduce_stock_on_order_status_change', 10, 1 );
add_action( 'woocommerce_order_status_on-hold', 'wp_dudecom_reduce_stock_on_order_status_change', 10, 1 );
?>
Instrukcja
Lokalizacja pliku: Dodaj kod do pliku functions.php
swojego motywu lub do pliku własnej wtyczki.
Wymagania wstępne:
- Upewnij się, że WooCommerce jest zainstalowane i aktywowane na Twojej stronie WordPress.
- Produkty powinny mieć włączone zarządzanie stanem magazynowym.
Kroki wdrożenia:
- Zaloguj się do panelu administracyjnego WordPress.
- Przejdź do Wygląd > Edytor motywu, jeśli dodajesz kod do pliku
functions.php
. Alternatywnie, przejdź do Wtyczki > Edytor, jeśli używasz własnej wtyczki. - Znajdź i otwórz plik
functions.php
lub plik swojej własnej wtyczki. - Skopiuj podany fragment kodu.
- Wklej kod na końcu pliku
functions.php
lub pliku własnej wtyczki. - Kliknij Aktualizuj plik, aby zapisać zmiany.
- Przetestuj funkcjonalność, składając testowe zamówienie i sprawdzając, czy poziomy zapasów są odpowiednio zmniejszone.
Jeśli potrzebujesz pomocy przy wdrożeniu lub bardziej zaawansowanej funkcjonalności, rozważ skorzystanie z usług wp-dude.com.