Ta wersja robocza musi zostać scalona z oryginalnym artykułem, a nie opublikowana jako nowy.
Bezpośrednie opublikowanie jej tworzy zduplikowany artykuł pod niewłaściwym adresem URL.
➡️ Przejrzyj wersję roboczą, a następnie uruchom
/kb-publish 86cxuy4ru — wykryje ona powiązanie rydm i automatycznie przekieruje przez punkt końcowy scalania.Oryginalny artykuł: Jak ustawić inny temat wiadomości e-mail z nowym zamówieniem dla zamówień hurtowych Zadanie ClickUp: Jak ustawić inny temat wiadomości e-mail z nowym zamówieniem dla zamówień hurtowych
Jeśli prowadzisz sklep hurtowy, możesz chcieć, aby Twoje wiadomości e-mail z powiadomieniami o nowych zamówieniach wyraźnie identyfikowały zamówienia hurtowe, a nawet pokazywały, która rola hurtowa złożyła zamówienie. WooCommerce Wholesale Prices Premium nie zawiera jeszcze wbudowanego sposobu na nadpisanie tematu wiadomości e-mail, ale możesz go dostosować za pomocą fragmentu kodu. Ten artykuł pokazuje, jak to zrobić.
Wymagania wstępne
- WooCommerce Wholesale Prices Premium zainstalowany i aktywowany
- Dostęp do pliku
functions.phpTwojego motywu lub wtyczki do fragmentów kodu (takiej jak WPCode)
Jak dostosować temat wiadomości e-mail z nowym zamówieniem dla zamówień hurtowych
Domyślnie WooCommerce używa tego samego tematu wiadomości e-mail dla wszystkich nowych zamówień. Poniższy fragment kodu podłącza się do woocommerce_email_subject_new_order i dodaje nazwę wyświetlaną roli hurtowej do tematu, gdy zamówienie jest zamówieniem hurtowym. W przypadku zamówień detalicznych domyślny temat WooCommerce jest zwracany bez zmian.
Dodaj poniższy fragment kodu do pliku functions.php swojego motywu potomnego lub do wtyczki do fragmentów kodu:
// Custom New Order Subject - Adding the Wholesale Role Name in the Subject Line
add_filter( 'woocommerce_email_subject_new_order', 'wwpp_change_email_subject', 1, 2 );
function wwpp_change_email_subject( $subject, $order ) {
// Only customise the subject for wholesale orders.
$order_type = $order->get_meta( '_wwpp_order_type', true );
if ( 'wholesale' !== $order_type ) {
return $subject;
}
// Get the wholesale role slug stored on the order (e.g. 'wholesale_customer').
$role_slug = $order->get_meta( '_wwpp_wholesale_order_type', true );
// Look up the human-readable role name from the registered wholesale roles.
// getAllRegisteredWholesaleRoles() returns an array keyed by role slug,
// each entry containing a 'roleName' key with the display name.
$all_wholesale_roles = WWP_Wholesale_Roles::getInstance()->getAllRegisteredWholesaleRoles();
$role_label = isset( $all_wholesale_roles[ $role_slug ]['roleName'] )
? $all_wholesale_roles[ $role_slug ]['roleName']
: $role_slug; // Fallback to slug if the role is no longer registered.
// Build the custom subject using the readable role name.
$blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
$subject = sprintf( '[%s] Order #%s - %s', $role_label, $order->get_id(), $blogname );
return $subject;
}
Co przechowują _wwpp_order_type i _wwpp_wholesale_order_type: Każde zamówienie złożone przez klienta hurtowego otrzymuje dwie wartości meta. _wwpp_order_type to albo 'wholesale', albo 'retail'. _wwpp_wholesale_order_type przechowuje identyfikator roli hurtowej (np. wholesale_customer), a nie nazwę wyświetlaną. Powyższy fragment kodu używa getAllRegisteredWholesaleRoles() do konwersji identyfikatora na czytelną etykietę, którą skonfigurowałeś w ustawieniach ról hurtowych.
Rozwiązywanie problemów
Temat wiadomości nie ulega zmianie. Sprawdź, czy fragment kodu został poprawnie zapisany i czy nie ma błędów PHP. Filtr woocommerce_email_subject_new_order działa tylko wtedy, gdy WooCommerce wysyła wiadomość e-mail z nowym zamówieniem. Potwierdź, że wiadomość e-mail jest włączona w WooCommerce → Ustawienia → E-maile → Nowe zamówienie.
Temat pokazuje identyfikator roli zamiast nazwy wyświetlanej. Dzieje się tak, jeśli rola hurtowa została usunięta lub zmieniono jej nazwę po złożeniu zamówienia. Fragment kodu wraca do identyfikatora w takim przypadku. Jeśli stale widzisz identyfikatory, potwierdź, że rola jest nadal zarejestrowana w sekcji WooCommerce Wholesale Prices → Wholesale Roles.
Zamówienia detaliczne również pokazują zmodyfikowany temat. Upewnij się, że fragment kodu zawiera wczesny powrót _wwpp_order_type !== 'wholesale' (jak pokazano powyżej). Bez tego filtr działa również na zamówienia detaliczne. Ponieważ _wwpp_wholesale_order_type jest pusty dla zamówień detalicznych, temat pokazywałby wtedy pusty nawias.
Potrzebujesz pomocy?
Jeśli masz pytanie lub napotkasz jakiekolwiek problemy, jesteśmy tutaj, aby pomóc.
- Użytkownicy wersji Premium: Otwórz zgłoszenie wsparcia
- Użytkownicy wersji darmowej: Odwiedź nasze forum społecznościowe
