Pluginy Wholesale Suite udostępniają haki i filtry PHP. Możesz ich używać do zmiany cen, formularzy, e-maili, ofert i zachowania płatności bez edycji plików pluginów. Ten artykuł pokazuje, jak dodać własny kod do haka i wymienia haki przeznaczone do użycia we własnym kodzie, wraz z ich argumentami i tym, co zmieniają. Jest to wybór, a nie każdy hak, który uruchamiają pluginy.
Każda tabela zawiera nazwę haka, jego typ, argumenty i to, co zmienia. Filtr musi zwracać wartość. Akcja nie zwraca wartości.
Dodaj swój kod do haka
- Wybierz, gdzie dodać swój kod: plik
functions.phpmotywu potomnego lub wtyczka fragmentów kodu. - Znajdź potrzebny hak w poniższych tabelach pluginów. Zwróć uwagę na jego typ i argumenty.
- Dodaj swój fragment za pomocą
add_filter()dla filtra lubadd_action()dla akcji. Przykłady w sekcjach pluginów pokazują wzorzec. - Zapisz plik.
- Przetestuj zmianę na stronie stagingowej, zanim dodasz ją do swojej aktywnej witryny.
Nie edytuj plików pluginów. Aktualizacja pluginu zastąpi je i usunie Twoją zmianę.
Haki z pluginu Wholesale Suite działają tylko wtedy, gdy ten plugin jest aktywny. Na przykład, haki WooCommerce Wholesale Prices Premium wymagają aktywnego WooCommerce Wholesale Prices Premium na Twojej stronie.
Szczegóły haków w tym artykule odpowiadają następującym wersjom pluginów: WooCommerce Wholesale Prices 2.3.1, WooCommerce Wholesale Prices Premium 2.1.5, WooCommerce Wholesale Order Form 3.1.3, WooCommerce Wholesale Lead Capture 2.0.7, WooCommerce Wholesale Quotes 1.0.3, WooCommerce Wholesale Payments 1.0.8 i Invoice Gateway for WooCommerce 1.1.7.
WooCommerce Wholesale Prices
WooCommerce Wholesale Prices dodaje haki wokół pól ceny hurtowej w panelu szybkiej edycji WooCommerce. Posiada również filtr do wyłączania funkcji AI w Wholesale Suite. Więcej o funkcjach AI przeczytasz w Jak używać funkcji AI w Wholesale Suite.
| Hak | Typ | Argumenty | Co zmienia |
|---|---|---|---|
wwp_before_quick_edit_wholesale_price_fields | Akcja | $all_wholesale_roles (tablica, zarejestrowane role hurtowe) | Uruchamia się w panelu szybkiej edycji, przed polami Ceny hurtowej. Użyj go do wyświetlenia własnego znacznika. Nie uruchamia się, gdy filtr wwp_product_editor_show_wholesale_prices_fields zwraca wartość false. |
wwp_after_quick_edit_wholesale_price_fields | Akcja | $all_wholesale_roles (tablica, zarejestrowane role hurtowe) | Uruchamia się w panelu szybkiej edycji, po polach Ceny hurtowej. Działa na tej samej zasadzie co hak „przed”. |
wwp_quick_edit_allowed_product_types | Filtr | $allowed_product_types (tablica, domyślnie simple i external)$context (ciąg znaków, wholesale_price_fields) | Określa, które typy produktów wyświetlają i zapisują pola ceny hurtowej w szybkiej edycji. Określa również, które produkty otrzymują dane ceny hurtowej na liście produktów. |
wwp_product_editor_show_wholesale_prices_fields | Filtr | $show (bool, domyślnie true) | Zwróć false, aby ukryć pola ceny hurtowej w edytorze produktów i w szybkim edytowaniu. |
wwp_disable_abilities | Filtr | $disabled (bool, domyślnie false) | Zwróć true, aby wyłączyć funkcje AI Wholesale Suite. Wyłącza to również funkcje innych wtyczek Wholesale Suite, ponieważ rejestrują się one za pośrednictwem WooCommerce Wholesale Prices. |
Przykład: dodaj notatkę pod polami ceny hurtowej
Ten przykład wyświetla krótką notatkę po polach ceny hurtowej w szybkim edytowaniu.
add_action( 'wwp_after_quick_edit_wholesale_price_fields', function ( $all_wholesale_roles ) {
echo '<p>' . esc_html__( 'Enter prices without tax.', 'your-text-domain' ) . '</p>';
} );
WooCommerce Wholesale Prices Premium
WooCommerce Wholesale Prices Premium posiada haki dla rabatów ilościowych, rabatów koszyka, minimalnych wymagań zamówienia, raportów i REST API. Wszystkie haki w tej sekcji wymagają WooCommerce Wholesale Prices Premium.
| Hak | Typ | Argumenty | Co zmienia |
|---|---|---|---|
wwpp_quantity_based_discount_base_price | Filtr | $base_price (float|string, cena, od której działają poziomy ilościowe)$mapping (array, zasady rabatów ilościowych)$raw_wholesale_price (float|string)$product (WC_Product)$wholesale_role (array) | Zmienia cenę bazową, do której stosowane są poziomy rabatów ilościowych. Bazą jest aktywna cena hurtowa promocyjna, jeśli istnieje, w przeciwnym razie cena hurtowa. Kiedy ustawienie sklepu, które używa ceny regularnej do obliczania rabatów, jest włączone, bazą jest cena regularna. |
wwpp_cart_subtotal_discount_eligible_item | Filtr | $is_eligible (bool, domyślnie true)$cart_item (array, dane pozycji koszyka)$wholesale_role (array) | Decyduje, czy pozycja koszyka jest uwzględniana w sumie do rabatu od sumy koszyka. Zwróć false, aby pominąć pozycję. |
wwpp_min_order_requirement_check | Filtr | $apply (bool, wynik sprawdzenia)$cart_total (float, całkowita kwota koszyka hurtowego)$cart_items (float, całkowita ilość pozycji)$cart (WC_Cart)$wholesale_role (array) | Zmienia wynik sprawdzenia minimalnego zamówienia dla rabatów koszyka. Rabat od sumy koszyka stosuje się tylko wtedy, gdy wynik jest dokładnie true. |
wwpp_add_wholesale_role_general_discount_mapping | Akcja | Brak | Uruchamiany po zapisaniu ogólnego rabatu dla roli hurtowej. |
wwpp_edit_wholesale_role_general_discount_mapping | Akcja | Brak | Uruchamiany po zaktualizowaniu ogólnego rabatu roli hurtowej. |
wwpp_process_category_products_in_api | Filtr | $products_in_api (bool, domyślnie false)$category_id (int, ID kategorii) | Określa, który kod aktualizuje flagi cen hurtowych produktów w kategorii. Kiedy zwraca true, REST API rabatu kategorii wykonuje aktualizację, a ekran edycji kategorii ją pomija. |
wwpp_meta_data | Filtr | $meta_data (array, dane hurtowe, puste wartości usunięte)$product (WC_Product)$request (WP_REST_Request) | Zmienia dane hurtowe, które zwraca REST API produktów hurtowych dla produktu. |
wwpp_api_update_wholesale_roles_filter | Filtr | $wholesale_roles (array, wszystkie zarejestrowane role)$request (WP_REST_Request) | Zmienia listę ról hurtowych przed zapisaniem ich przez REST API. Działa, gdy rola jest tworzona lub aktualizowana przez API. |
wwpp_reports_sales_transient_expiration_constant | Filtr | $expiration (int, sekundy, domyślnie HOUR_IN_SECONDS) | Ustawia, jak długo odpowiedź raportu sprzedaży pozostaje w pamięci podręcznej. |
wwpp_disable_abilities | Filtr | $disabled (bool, domyślnie false) | Zwróć true, aby wyłączyć funkcje, które ten wtyczka rejestruje. |
Przykład: wyklucz kategorię produktów z rabatu od kwoty zamówienia
Ten przykład wyklucza produkty z kategorii gift-cards z kwoty zamówienia używanej do rabatu.
add_filter( 'wwpp_cart_subtotal_discount_eligible_item', function ( $is_eligible, $cart_item, $wholesale_role ) {
if ( has_term( 'gift-cards', 'product_cat', $cart_item['product_id'] ) ) {
return false;
}
return $is_eligible;
}, 10, 3 );
WooCommerce Wholesale Order Form
WooCommerce Wholesale Order Form posiada haki dla żądań REST formularza zamówienia, wyszukiwania produktów, ładowania wariantów i skryptów formularza.
| Hak | Typ | Argumenty | Co zmienia |
|---|---|---|---|
wwof_rest_read_permissions | Filtr | $permission (bool, wynik reguł formularza zamówienia)$object_id (int|string, identyfikator obiektu lub 0 dla kolekcji)$post_type (string, typ posta lub taksonomia) | Przyznaje lub odmawia odczytu REST, którego odmówiły reguły formularza zamówienia. Działa tylko dla odczytów w kontekście widoku na trasach używanych przez formularz zamówienia. Wartość true nigdy nie dociera do obiektu, który nie jest opublikowany. |
wwof_wc_rest_prepare_product_object | Filtr | $response (WP_REST_Response)$wc_data (WC_Product)$request (WP_REST_Request)$wc (WC, obiekt integracji WooCommerce formularza zamówienia) | Zmienia dane produktu, które zwraca żądanie REST formularza zamówienia dla produktu. |
wwof_product_type_terms | Filtr | $product_type_terms (array, slugi typów produktów) | Ustawia typy produktów, które wyświetla formularz zamówienia. Domyślnie są to simple, grouped i external, gdy warianty są wyświetlane indywidualnie. W przeciwnym razie obejmuje również variable. Dodaj typ, taki jak bundle, aby go wyświetlić. |
wwof_search_post_clauses_request | Filtr | $clauses (array, klauzule SQL)$wc (WC, obiekt integracji WooCommerce formularza zamówienia) | Zmienia klauzule SQL wyszukiwania produktów w formularzu zamówienia. |
wwof_force_load_form_posts | Filtr | $form_posts (array, domyślnie puste) | Wymusza załadowanie skryptu formularza zamówienia na stronie. Zwróć tablicę obiektów formularza zamówienia z kluczami według identyfikatora formularza, gdy skrócony kod nie zostanie wykryty. |
wwof_login_url | Filtr | $login_url (string) | Zmienia adres URL logowania używany przez skrypt formularza zamówienia. |
wwof_min_requirement_current_user_id | Filtr | $user_id (int, domyślnie bieżący identyfikator użytkownika) | Zmienia identyfikator użytkownika, którego formularz zamówienia używa do wyszukiwania minimalnych wymagań zamówienia. |
wwof_required_plugins | Filtr | $required_plugins (tablica, ścieżki plików wtyczek) | Zmienia listę wtyczek, które muszą być aktywne. Formularz zamówienia zgłasza każdą wymienioną wtyczkę, która nie jest aktywna. |
wwof_after_register_order_form_post_type | Akcja | $post_type (ciąg znaków, nazwa typu posta formularza zamówienia) | Uruchamiane po zarejestrowaniu typu posta formularza zamówienia. |
wwof_variations_max_requests | Filtr | $variations_max_requests (int, domyślnie 12) | Określa, ile żądań listy wariantów formularz zamówienia wysyła jednocześnie. Minimalna wartość to 1. |
wwof_variations_response_cache_bypass | Filtr | $bypass (bool, domyślnie false)$request (WP_REST_Request)$user_id (int, 0 dla gości) | Zwróć true, aby pominąć pamięć podręczną odpowiedzi wariantów dla żądania. Użyj jej, gdy inna wtyczka ustawia ceny na użytkownika lub na sesję. |
wwof_variations_response_cache_ttl | Filtr | $ttl (int, sekundy, domyślnie 5 minut)$request (WP_REST_Request)$product_id (int, identyfikator produktu nadrzędnego) | Określa, jak długo odpowiedź wariantów pozostaje w pamięci podręcznej. |
wwof_disable_abilities | Filtr | $disable (bool, domyślnie false) | Zwróć true, aby wyłączyć funkcje, które ten wtyczka rejestruje. |
Przykład: skrócenie pamięci podręcznej wariantów
Ten przykład przechowuje w pamięci podręcznej odpowiedzi wariantów przez jedną minutę.
add_filter( 'wwof_variations_response_cache_ttl', function ( $ttl, $request, $product_id ) {
return MINUTE_IN_SECONDS;
}, 10, 3 );
Polecenie WP-CLI: migruj formularze zamówień
Uruchom to polecenie, aby zmigrować formularze zamówień z formatu wersji 2 do formatu wersji 3. Polecenie zapisuje kopię starych ustawień każdego formularza w meta polu posta _settings przed migracją formularza.
wp wwof migrate_forms_settings
Aby zmigrować tylko niektóre formularze, dodaj jeden lub więcej identyfikatorów formularzy zamówień po nazwie polecenia:
wp wwof migrate_forms_settings 123 456
Bez identyfikatorów polecenie migruje wszystkie formularze wersji 2. Jeśli nie znajdzie żadnych formularzy, wyświetli błąd Nie znaleziono formularzy.
Wtyczka posiada również dwa dodatkowe polecenia WP-CLI. Użyj wp wwof export_order_forms [<format>], aby wyeksportować formularze w formacie json lub yml. Użyj wp wwof import_v2_forms_from_json_file <json_file_path>, aby zaimportować formularze wersji 2 z pliku JSON.
WooCommerce Wholesale Lead Capture
WooCommerce Wholesale Lead Capture posiada haki dla cyklu życia potencjalnego klienta, formularza rejestracyjnego, przekierowań logowania, e-maili i interfejsu API REST dla potencjalnych klientów. Każda akcja dotycząca potencjalnego klienta przekazuje obiekt WP_User.
| Hak | Typ | Argumenty | Co zmienia |
|---|---|---|---|
wwlc_action_before_approve_user | Akcja | $user (WP_User) | Uruchamiane przed zatwierdzeniem potencjalnego klienta przez WooCommerce Wholesale Lead Capture. |
wwlc_action_after_approve_user | Akcja | $user (WP_User) | Uruchamiane po zatwierdzeniu potencjalnego klienta i wysłaniu e-maila z potwierdzeniem. |
wwlc_action_before_reject_user | Akcja | $user (WP_User) | Uruchamiana przed odrzuceniem potencjalnego klienta. Nie jest uruchamiana dla potencjalnego klienta, który jest już odrzucony. |
wwlc_action_after_reject_user | Akcja | $user (WP_User) | Uruchamiana po odrzuceniu potencjalnego klienta. Potencjalny klient otrzymuje rolę Odrzucony lub konto jest usuwane, zgodnie z ustawieniami. |
wwlc_action_before_activate_user | Akcja | $user (WP_User) | Uruchamiana przed aktywacją konta potencjalnego klienta. |
wwlc_action_after_activate_user | Akcja | $user (WP_User) | Uruchamiana po oznaczeniu konta potencjalnego klienta jako aktywne. |
wwlc_action_before_deactivate_user | Akcja | $user (WP_User, role przed zmianą) | Uruchamiana przed dezaktywacją konta potencjalnego klienta. Uruchamiana jest również, gdy interfejs API REST Leads dezaktywuje potencjalnego klienta. |
wwlc_action_after_deactivate_user | Akcja | $user (WP_User) | Uruchamiana po dezaktywacji konta potencjalnego klienta. Użytkownik otrzymuje rolę klienta i jest wylogowywany ze wszystkich sesji. |
wwlc_action_after_create_wholesale_lead | Akcja | $new_lead (WP_User) | Uruchamiana po rejestracji potencjalnego klienta i po przetworzeniu automatycznego zatwierdzenia. Uruchamiana jest również, gdy istniejący klient przechodzi na konto hurtowe. |
wwlc_stop_registering | Filtr | $stop (bool, domyślnie false)$user_data (array, przesłane dane formularza) | Zwróć true, aby zatrzymać rejestrację. Formularz wyświetla komunikat o błędzie „Nie możesz się zarejestrować”. |
wwlc_login_redirect_url | Filtr | $redirect_url (string)$user (WP_User) | Zmienia adres URL, na który użytkownik przechodzi po zalogowaniu się w formularzu logowania hurtowego. Dotyczy to również logowania WooCommerce (na przykład Moje konto), gdy użytkownik ma rolę hurtową. |
wwlc_registration_form_fields | Filtr | $form_fields (array, pola domyślne, niestandardowe i reCAPTCHA, posortowane według kolejności) | Zmienia pola wyświetlane w formularzu rejestracyjnym. |
wwlc_filter_{field}_field_form_label | Filtr | $label (string, przetłumaczona etykieta domyślna) | Zmienia etykietę jednego z domyślnych pól rejestracyjnych. Zastąp {field} jednym z: first_name, last_name, phone, email, company, country, address1, address2, city, state, postcode, password. Na przykład: wwlc_filter_first_name_field_form_label. |
wwlc_email_format_string | Filtr | $text (string, zawartość wiadomości e-mail po zastąpieniu symboli zastępczych)$wc_email (WC_Email) | Zmienia tekst wiadomości e-mail z WooCommerce Wholesale Lead Capture po zastąpieniu symboli zastępczych. |
wwlc_default_email_lead_role | Filtr | $role (string, domyślnie wholesale_customer) | Ustawia rolę używaną do wybrania przykładowego leada dla obiektów e-mail. Rola ustawiona w ustawieniach roli leada ją nadpisuje, gdy to ustawienie nie jest puste. |
wwlc_rest_api_routes | Filtr | $routes (tablica, definicje tras) | Dodaje lub zmienia trasy API REST dla leadów w przestrzeni nazw wwlc/v1. Każda trasa jest kluczowana jako leads/<route>. |
wwlc_disable_abilities | Filtr | $disabled (bool, domyślnie false) | Zwróć true, aby wyłączyć funkcje, które rejestruje ta wtyczka. Stała WWLC_DISABLE_ABILITIES robi to samo. |
Przykład: uruchom kod po zatwierdzeniu leada
Ten przykład zapisuje flagę w użytkowniku po zatwierdzeniu. Skrypt synchronizacji może później odczytać flagę.
add_action( 'wwlc_action_after_approve_user', function ( $user ) {
update_user_meta( $user->ID, 'needs_crm_sync', 'yes' );
} );
WooCommerce Wholesale Quotes
WooCommerce Wholesale Quotes posiada filtry dla danych ofert, etykiety przycisku oferty, opcji front-end i uprawnień API REST.
| Hak | Typ | Argumenty | Co zmienia |
|---|---|---|---|
wholesale_quotes_api_admin_permissions_check | Filtr | $response (true|WP_Error, true, gdy użytkownik ma manage_woocommerce)$request (WP_REST_Request) | Zmienia sprawdzanie uprawnień dla tras API REST administratora. Zwróć true, aby zezwolić na żądanie, lub WP_Error, aby je odrzucić. |
wholesale_quotes_quote_items_data | Filtr | $data (tablica, obiekty elementów oferty) | Zmienia listę elementów oferty przed jej użyciem przez wtyczkę. Dotyczy to elementów oferty i listy elementów oferty. |
wholesale_quotes_quote_item_product_data | Filtr | $product (tablica, dane produktu elementu oferty)$item_product_id (int) | Zmienia dane produktu elementu oferty. Dane zawierają obraz, link, stan magazynowy i typ produktu. |
wws_wq_quote_button_shop_label | Filtr | $label (string, domyślnie etykieta z ustawień oferty) | Zmienia etykietę przycisku oferty na stronach sklepu. |
wws_wq_guest_quote_products_data | Filtr | $products (tablica, obiekty elementów oferty)$product_data (tablica, dane produktu z żądania) | Zmienia produkty zwracane przez trasę oferty dla gości. |
wholesale_quotes_options | Filtr | $options (tablica, opcje front-end) | Zmienia tablicę opcji używaną przez front-end oferty. Zawiera klucze takie jak title, description i quoteUrl. |
wwq_disable_abilities | Filtr | $disabled (bool, domyślnie false) | Zwróć true, aby wyłączyć funkcje, które ten wtyczka rejestruje. |
Przykład: zmień etykietę przycisku cytatu
Ten przykład zmienia etykietę przycisku cytatu na stronach sklepu.
add_filter( 'wws_wq_quote_button_shop_label', function ( $label ) {
return __( 'Request pricing', 'your-text-domain' );
} );
WooCommerce Wholesale Payments
WooCommerce Wholesale Payments posiada filtry dla harmonogramu faktur, planu płatności i zapytań o zamówienia, wersji API Stripe oraz szablonów e-maili z przypomnieniami.
| Hak | Typ | Argumenty | Co zmienia |
|---|---|---|---|
wpay_filter_cron_schedule | Filtr | $cron_schedule (string, domyślnie zapisany harmonogram, daily jeśli żaden) | Ustawia interwał powtarzającej się akcji fakturowania. Wtyczka odczytuje go tylko podczas tworzenia tej akcji, więc nie zmienia istniejącego harmonogramu. Użyj daily, hourly lub 15min. Każda inna wartość działa codziennie. |
wpay_get_payment_plans | Filtr | $args (array, argumenty WP_Query) | Zmienia argumenty zapytania, które ładują plany płatności. Wtyczka ustawia typ posta po wykonaniu filtra. |
wpay_get_payment_orders | Filtr | $args (array, argumenty wc_get_orders()) | Zmienia argumenty zapytania, które ładują zamówienia płatności. Wtyczka ogranicza rozmiar strony po wykonaniu filtra. |
wpay_stripe_api_version | Filtr | $version (string, wersja API Stripe używana przez wtyczkę) | Zmienia wersję API Stripe w nagłówku żądania. Ustawia również wersję, gdy wtyczka tworzy webhook Stripe. |
wpay_payment_due_today_email_template_html | Filtr | $template (string, domyślnie payment-due-today.php) | Zmienia plik szablonu HTML e-maila z przypomnieniem o płatności dzisiaj. |
wpay_payment_due_today_email_template_plain | Filtr | $template (string, domyślnie payment-due-today.php) | Zmienia plik szablonu czystego tekstu e-maila z przypomnieniem o płatności dzisiaj. |
wpay_payment_overdue_email_template_html | Filtr | $template (string, domyślnie payment-overdue.php) | Zmienia plik szablonu HTML e-maila z przypomnieniem o zaległej płatności. |
wpay_payment_overdue_email_template_plain | Filtr | $template (string, domyślnie payment-overdue.php) | Zmienia plik szablonu czystego tekstu e-maila z przypomnieniem o zaległej płatności. |
wpay_disable_abilities | Filtr | $disabled (bool, domyślnie false) | Zwróć true, aby wyłączyć funkcje, które ten wtyczka rejestruje. |
Bramka Płatności Faktur dla WooCommerce
Bramka Płatności Faktur dla WooCommerce posiada haki dla daty płatności faktury, statusu zamówienia, darmowych zamówień i zaległych faktur.
| Hak | Typ | Argumenty | Co zmienia |
|---|---|---|---|
igfw_invoice_due_date | Filtr | $due (int, znacznik czasu Unix)$order (WC_Order) | Zmienia termin płatności zamówienia faktury. Domyślnie jest to data zamówienia plus termin płatności w dniach. Wartość 0 lub mniejsza jest ignorowana. |
igfw_invoice_gateway_default_order_status | Filtr | $status (string, domyślnie zapisany status zamówienia, on-hold jeśli żaden) | Zmienia status, który bramka nadaje zamówieniu podczas realizacji zakupu. |
igfw_show_invoice_gateway_on_free_orders | Filtr | $show (bool, domyślnie true) | Zwróć false, aby ukryć bramkę faktury, gdy całkowita kwota koszyka wynosi zero. |
igfw_invoice_gateway_construct | Akcja | Brak | Uruchamiany na końcu konstruktora bramki faktury. |
igfw_invoice_payment_overdue | Akcja | $order (WC_Order, przeterminowane zamówienie) | Uruchamiany, gdy wtyczka wykryje przeterminowane zamówienie faktury, po wysłaniu e-maila o przeterminowaniu do administratora sklepu. Wtyczka nie obciąża zamówienia. Użyj tego haka, aby rozpocząć własny proces. |
Przykład: dodaj siedem dni do terminu płatności faktury
Ten przykład przesuwa każdy termin płatności faktury o siedem dni do przodu.
add_filter( 'igfw_invoice_due_date', function ( $due, $order ) {
return $due + ( 7 * DAY_IN_SECONDS );
}, 10, 2 );
Co przeczytać dalej
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
