1. Strona główna
  2. Baza wiedzy
  3. WooCommerce Wholesale Prices Premium
  4. API
  5. Jak dostosować Wholesale Suite za pomocą haków i filtrów

Jak dostosować Wholesale Suite za pomocą haków i filtrów

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

  1. Wybierz, gdzie dodać swój kod: plik functions.php motywu potomnego lub wtyczka fragmentów kodu.
  2. Znajdź potrzebny hak w poniższych tabelach pluginów. Zwróć uwagę na jego typ i argumenty.
  3. Dodaj swój fragment za pomocą add_filter() dla filtra lub add_action() dla akcji. Przykłady w sekcjach pluginów pokazują wzorzec.
  4. Zapisz plik.
  5. 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.

HakTypArgumentyCo zmienia
wwp_before_quick_edit_wholesale_price_fieldsAkcja$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_fieldsAkcja$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_typesFiltr$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_fieldsFiltr$show (bool, domyślnie true)Zwróć false, aby ukryć pola ceny hurtowej w edytorze produktów i w szybkim edytowaniu.
wwp_disable_abilitiesFiltr$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.

HakTypArgumentyCo zmienia
wwpp_quantity_based_discount_base_priceFiltr$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_itemFiltr$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_checkFiltr$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_mappingAkcjaBrakUruchamiany po zapisaniu ogólnego rabatu dla roli hurtowej.
wwpp_edit_wholesale_role_general_discount_mappingAkcjaBrakUruchamiany po zaktualizowaniu ogólnego rabatu roli hurtowej.
wwpp_process_category_products_in_apiFiltr$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_dataFiltr$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_filterFiltr$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_constantFiltr$expiration (int, sekundy, domyślnie HOUR_IN_SECONDS)Ustawia, jak długo odpowiedź raportu sprzedaży pozostaje w pamięci podręcznej.
wwpp_disable_abilitiesFiltr$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.

HakTypArgumentyCo zmienia
wwof_rest_read_permissionsFiltr$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_objectFiltr$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_termsFiltr$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_requestFiltr$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_postsFiltr$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_urlFiltr$login_url (string)Zmienia adres URL logowania używany przez skrypt formularza zamówienia.
wwof_min_requirement_current_user_idFiltr$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_pluginsFiltr$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_typeAkcja$post_type (ciąg znaków, nazwa typu posta formularza zamówienia)Uruchamiane po zarejestrowaniu typu posta formularza zamówienia.
wwof_variations_max_requestsFiltr$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_bypassFiltr$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_ttlFiltr$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_abilitiesFiltr$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.

HakTypArgumentyCo zmienia
wwlc_action_before_approve_userAkcja$user (WP_User)Uruchamiane przed zatwierdzeniem potencjalnego klienta przez WooCommerce Wholesale Lead Capture.
wwlc_action_after_approve_userAkcja$user (WP_User)Uruchamiane po zatwierdzeniu potencjalnego klienta i wysłaniu e-maila z potwierdzeniem.
wwlc_action_before_reject_userAkcja$user (WP_User)Uruchamiana przed odrzuceniem potencjalnego klienta. Nie jest uruchamiana dla potencjalnego klienta, który jest już odrzucony.
wwlc_action_after_reject_userAkcja$user (WP_User)Uruchamiana po odrzuceniu potencjalnego klienta. Potencjalny klient otrzymuje rolę Odrzucony lub konto jest usuwane, zgodnie z ustawieniami.
wwlc_action_before_activate_userAkcja$user (WP_User)Uruchamiana przed aktywacją konta potencjalnego klienta.
wwlc_action_after_activate_userAkcja$user (WP_User)Uruchamiana po oznaczeniu konta potencjalnego klienta jako aktywne.
wwlc_action_before_deactivate_userAkcja$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_userAkcja$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_leadAkcja$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_registeringFiltr$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_urlFiltr$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_fieldsFiltr$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_labelFiltr$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_stringFiltr$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_roleFiltr$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_routesFiltr$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_abilitiesFiltr$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.

HakTypArgumentyCo zmienia
wholesale_quotes_api_admin_permissions_checkFiltr$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_dataFiltr$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_dataFiltr$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_labelFiltr$label (string, domyślnie etykieta z ustawień oferty)Zmienia etykietę przycisku oferty na stronach sklepu.
wws_wq_guest_quote_products_dataFiltr$products (tablica, obiekty elementów oferty)
$product_data (tablica, dane produktu z żądania)
Zmienia produkty zwracane przez trasę oferty dla gości.
wholesale_quotes_optionsFiltr$options (tablica, opcje front-end)Zmienia tablicę opcji używaną przez front-end oferty. Zawiera klucze takie jak title, description i quoteUrl.
wwq_disable_abilitiesFiltr$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.

HakTypArgumentyCo zmienia
wpay_filter_cron_scheduleFiltr$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_plansFiltr$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_ordersFiltr$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_versionFiltr$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_htmlFiltr$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_plainFiltr$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_htmlFiltr$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_plainFiltr$template (string, domyślnie payment-overdue.php)Zmienia plik szablonu czystego tekstu e-maila z przypomnieniem o zaległej płatności.
wpay_disable_abilitiesFiltr$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.

HakTypArgumentyCo zmienia
igfw_invoice_due_dateFiltr$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_statusFiltr$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_ordersFiltr$show (bool, domyślnie true)Zwróć false, aby ukryć bramkę faktury, gdy całkowita kwota koszyka wynosi zero.
igfw_invoice_gateway_constructAkcjaBrakUruchamiany na końcu konstruktora bramki faktury.
igfw_invoice_payment_overdueAkcja$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 );

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