1. Strona główna
  2. Baza wiedzy
  3. WooCommerce Wholesale Prices Premium
  4. Panel administracyjny
  5. Jak ustawić inny temat e-maila z nowym zamówieniem dla zamówień hurtowych

Jak ustawić inny temat e-maila z nowym zamówieniem dla zamówień hurtowych

⚠️ Zaktualizuj wersję roboczą — NIE klikaj „Opublikuj” w panelu WP.
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

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.

Czy ten artykuł był pomocny?

Powiązane artykuły

Zakończ Zakup