Wyłącz e-maile WooCommerce dla określonych zmian statusu zamówienia

Jak zatrzymać e-maile WooCommerce dla określonego statusu zamówienia; Wyłącz powiadomienia e-mail WooCommerce dla wybranych zamówień; Zapobiegaj wysyłaniu e-maili przez WooCommerce przy zmianie statusu zamówienia; Wyłącz e-maile WooCommerce dla określonego statusu zamówienia; Zatrzymaj e-maile zamówień WooCommerce dla niestandardowego statusu; Wyłącz e-maile WooCommerce dla zrealizowanych zamówień; Jak zapobiec e-mailom WooCommerce w określonych warunkach; Zatrzymaj wysyłanie e-maili przez WooCommerce przy ręcznej zmianie statusu zamówienia; Wyłącz e-maile dla konkretnych zamówień WooCommerce; Zablokuj e-maile WooCommerce dla określonych aktualizacji zamówienia;

Objaśnienie

Jeśli chcesz zatrzymać WooCommerce przed wysyłaniem e-maili, gdy zamówienie osiągnie określone statusy, ten fragment kodu jest idealnym rozwiązaniem.

Co to robi:

  • Zapobiega wysyłaniu e-maili dla określonych statusów zamówień, takich jak 'zrealizowane' lub dowolny niestandardowy status, który zdefiniujesz.

Jak to działa:

  • Kod łączy się z systemem e-mailowym WooCommerce.
  • Sprawdza każdy typ e-maila, aby zobaczyć, czy powinien być wysłany w zależności od statusu zamówienia.
  • Jeśli status zamówienia odpowiada jednemu z wymienionych statusów (np. 'zrealizowane'), zatrzymuje wysyłkę e-maila.

Dostosowywanie:

  • Aby dodać lub usunąć statusy, wystarczy zmodyfikować tablicę $disabled_statuses. Na przykład, dodaj 'oczekujące', aby zatrzymać e-maile dla zamówień oczekujących.

To wygodny sposób na zarządzanie powiadomieniami, które otrzymują Twoi klienci, zapewniając, że dostają tylko te e-maile, które są naprawdę potrzebne.

Kod

<?php
// Function to disable WooCommerce emails for specific order statuses
function wp_dudecom_disable_woocommerce_emails( $email_classes ) {
    // List of order statuses for which emails should be disabled
    $disabled_statuses = array( 'completed', 'custom-status' );

    // Loop through each email class
    foreach ( $email_classes as $email_class ) {
        // Check if the email class is an instance of WC_Email
        if ( is_a( $email_class, 'WC_Email' ) ) {
            // Add a filter to disable the email if the order status is in the disabled list
            add_filter( 'woocommerce_email_enabled_' . $email_class->id, function( $enabled, $order ) use ( $disabled_statuses ) {
                if ( $order instanceof WC_Order && in_array( $order->get_status(), $disabled_statuses ) ) {
                    return false;
                }
                return $enabled;
            }, 10, 2 );
        }
    }

    return $email_classes;
}
add_filter( 'woocommerce_email_classes', 'wp_dudecom_disable_woocommerce_emails' );
?>

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.

Kroki wdrożenia:

  1. Zaloguj się do panelu administracyjnego WordPress.
  2. Przejdź do Wygląd > Edytor motywu, jeśli używasz pliku functions.php, lub przejdź do Wtyczki > Edytor wtyczek, jeśli używasz pliku własnej wtyczki.
  3. Znajdź i otwórz plik functions.php aktywnego motywu lub plik własnej wtyczki.
  4. Skopiuj podany fragment kodu.
  5. Wklej kod na końcu pliku functions.php lub pliku własnej wtyczki.
  6. Zapisz zmiany.

Dostosowywanie:

  • Aby zmodyfikować, które statusy zamówień wyłączają powiadomienia e-mail, edytuj tablicę $disabled_statuses w kodzie. Na przykład, dodaj 'pending' do tablicy, aby wyłączyć e-maile dla zamówień oczekujących.

Jeśli potrzebujesz dalszej pomocy lub chcesz odkryć bardziej zaawansowane funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.