Snippet

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

Jak zatrzymać e-maile WooCommerce dla określonego statusu zamówieniaWyłącz powiadomienia e-mail WooCommerce dla wybranych zamówieńZapobiegaj wysyłaniu e-maili przez WooCommerce przy zmianie statusu zamówieniaWyłącz e-maile WooCommerce dla określonego statusu zamówieniaZatrzymaj e-maile zamówień WooCommerce dla niestandardowego statusuWyłącz e-maile WooCommerce dla zrealizowanych zamówieńJak zapobiec e-mailom WooCommerce w określonych warunkachZatrzymaj wysyłanie e-maili przez WooCommerce przy ręcznej zmianie statusu zamówieniaWyłącz e-maile dla konkretnych zamówień WooCommerceZablokuj 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

1<?php 2// Function to disable WooCommerce emails for specific order statuses 3function wp_dudecom_disable_woocommerce_emails( $email_classes ) { 4 // List of order statuses for which emails should be disabled 5 $disabled_statuses = array( 'completed', 'custom-status' ); 6 7 // Loop through each email class 8 foreach ( $email_classes as $email_class ) { 9 // Check if the email class is an instance of WC_Email 10 if ( is_a( $email_class, 'WC_Email' ) ) { 11 // Add a filter to disable the email if the order status is in the disabled list 12 add_filter( 'woocommerce_email_enabled_' . $email_class->id, function( $enabled, $order ) use ( $disabled_statuses ) { 13 if ( $order instanceof WC_Order && in_array( $order->get_status(), $disabled_statuses ) ) { 14 return false; 15 } 16 return $enabled; 17 }, 10, 2 ); 18 } 19 } 20 21 return $email_classes; 22} 23add_filter( 'woocommerce_email_classes', 'wp_dudecom_disable_woocommerce_emails' ); 24?>

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.