Visser Labs – Wtyczki WooCommerce

  1. Strona główna
  2. Baza wiedzy
  3. WooCommerce Store Exporter Deluxe
  4. Dostępne haki i filtry do dalszej personalizacji

Dostępne haki i filtry do dalszej personalizacji

Store Exporter Deluxe uruchamia duży zestaw akcji i filtrów WordPress podczas całego procesu eksportu. Użyj ich, aby dodać własne pola do formularzy eksportu, zmienić dane, które są eksportowane, lub podłączyć zupełnie nowy typ eksportu bez bezpośredniej edycji plików wtyczki.

Jest to referencja dla deweloperów. Zakłada się, że czujesz się komfortowo z dodawaniem kodu za pomocą niestandardowej wtyczki lub pliku functions.php Twojego motywu. Jeśli nie znasz haków WordPress, najpierw zapoznaj się z Podręcznikiem wtyczek WordPress dotyczącym haków.

Od wersji Store Exporter Deluxe v5.4.3, ekrany administracyjne wtyczki (Przegląd, Szybki eksport, Zaplanowane eksporty, Ustawienia i tak dalej) są renderowane przez aplikację Vue single-page pod adresem WooCommerce → Store Export. Większość poniższych haków nadal działa z tych samych podstawowych funkcji PHP, co zawsze, więc działają one tak samo, niezależnie od tego, który ekran administracyjny je wyzwala. Kilka haków powiązanych ze starym formularzem eksportu i ekranem ustawień już w ogóle nie działa: zobacz wezwanie pod sekcją Akcje poniżej, aby dowiedzieć się, które z nich. Nagłówki sekcji grupują haki według tego, na co wpływają, a nie według nazwy konkretnej karty na ekranie.

Jak haki pasują do potoku eksportu

Każdy eksport, niezależnie od tego, czy został wyzwolony z Szybkiego eksportu, Zaplanowanego eksportu, czy ręcznego CRON, przechodzi przez te same trzy etapy:

  • Przygotowanie: eksporter otwiera plik wyjściowy i zapisuje nagłówki kolumn. W przypadku eksportów XML i RSS filtry takie jak wsed_export_xml_first_line i wsed_export_xml_store_node kontrolują tagi otwierające i nazwę węzła głównego przed dodaniem jakichkolwiek wierszy.
  • Przetwarzanie: eksporter pobiera rekordy w partiach (domyślnie 100 rekordów na raz, konfigurowalne za pomocą ustawienia rozmiaru partii; zaplanowane eksporty nie działają w partiach) i zapisuje każdy wiersz. Filtry o nazwie *_item (takie jak woo_ce_product_item lub woo_ce_order_item) działają tutaj, raz na rekord, pozwalając na zmianę lub dodanie danych do tego wiersza.
  • Finalizacja: eksporter zamyka plik, na przykład zamykając zbiór danych XML za pomocą wsed_export_xml_after_dataset, a następnie przekazuje go do pobrania, wysłania e-mailem lub archiwizacji.

Pamiętaj o tym przy wyborze haka: filtr _item zmienia jeden rekord na raz podczas przetwarzania, podczas gdy akcja _options (uruchamiana podczas formularza administracyjnego, zanim jeszcze rozpocznie się przygotowanie) wpływa tylko na widoczny formularz eksportu, a nie na same dane.

Akcje

Akcje to haki, które WordPress uruchamia w określonych punktach podczas wykonywania lub gdy wystąpią określone zdarzenia.

Przed przepisaniem Vue SPA w wersji 5.4.3, Store Exporter Deluxe renderował formularz Szybkiego Eksportu i ekran Ustawień za pomocą starszych szablonów PHP, które wywoływały haki takie jak woo_ce_export_options i woo_ce_export_settings_after, dzięki czemu można było dodawać do nich własne pola. Te szablony nie są już częścią obecnego interfejsu administratora, więc te haki już się nie wywołują. Jeśli polegałeś na jednym z nich, aby dodać niestandardowe pole do formularza eksportu lub ekranu Ustawień, otwórz zgłoszenie wsparcia, aby nasz zespół mógł pomóc Ci znaleźć działającą alternatywę dla Twojego przypadku użycia.

Pięć innych filtrów zostało całkowicie usuniętych z bazy kodu, zamiast pozostać niedostępnymi, jak wspomniane wyżej haki. Zostały one usunięte w niepowiązanych refaktoryzacjach między 2023 a 2024 rokiem, na długo przed przepisaniem w wersji 5.4.3, i żaden z nich nie został wcześniej oznaczony jako przestarzały: woo_ce_setup_dataset_options, woo_ce_extend_order_fields_custom_order_hover, woo_ce_extend_order_fields_custom_order_item_hover, woo_ce_extend_order_fields_custom_product_hover i woo_ce_get_order_items_variation_custom. Żaden z nich nie wywołuje się w obecnej wtyczce. Podobnie nazwane woo_ce_extend_order_fields_custom_user_hover, woo_ce_extend_product_fields_custom_product_hover i woo_ce_get_order_items_variation_taxonomy są nadal dostępne dla powiązanych pól (patrz poniższe sekcje Zamówienie i Produkt). Jeśli potrzebujesz jednego z usuniętych filtrów, otwórz zgłoszenie wsparcia, aby nasz zespół mógł pomóc Ci znaleźć działającą alternatywę.

Ekran edycji Eksportu Zaplanowanego

Te haki wywołują się na ekranie edycji Eksportu Zaplanowanego, gdzie każdy zaplanowany eksport jest przechowywany i zarządzany jako własny post.

  • woo_ce_before_scheduled_export_general_options: Dodaj pola do zakładki Ogólne
  • woo_ce_before_scheduled_export_type_options: Dodaj pola do zakładki Typ
  • woo_ce_before_scheduled_export_method_options: Dodaj pola do zakładki Metoda
  • woo_ce_before_scheduled_export_frequency_options: Dodaj pola do zakładki Częstotliwość

Filtry

Filtry to haki, które modyfikują dane przed ich użyciem, niezależnie od tego, czy przed dodaniem ich do bazy danych, czy przed zapisaniem ich do pliku eksportu.

Ogólne

  • woo_ce_export_types: Dodaj własne typy eksportu
  • woo_ce_sys_get_temp_dir: Zastąp domyślny katalog tymczasowy PHP dla niestandardowych ścieżek
  • woo_ce_template_header: Zastąp domyślny tytuł nagłówka Store Exporter Deluxe
  • woo_ce_admin_order_actions: Dodaj własne przyciski do kolumny Akcje na ekranie Zamówienia
  • woo_ce_display_admin_footer_text: Zmodyfikuj komunikat stopki WP Admin
  • woo_ce_modules_addons: Dodaj własne wtyczki do widżetu Moduły Eksportu
  • woo_ce_get_visitor_ip_address: Zastąp wykryty adres IP CRON
  • woo_ce_get_line_ending: Zastąp domyślny znak końca linii
  • woo_ce_wc_price_decimal_sep
  • woo_ce_wc_price_thousands_sep
  • woo_ce_get_export_type_count: Nadpisz liczbę typów eksportu
  • woo_ce_scheduled_export_data_tabs: Dodaj własne zakładki do ekranu edycji zaplanowanego eksportu
  • woo_ce_admin_user_capability: Nadpisz domyślną wymaganą uprawnienie użytkownika, aby zobaczyć ekran WooCommerce > Store Export
  • woo_ce_admin_dashboard_user_capability: Nadpisz domyślne wymagane uprawnienie użytkownika, aby wyświetlać widżety pulpitu nawigacyjnego Zaplanowane eksporty i Ostatnie zaplanowane eksporty

Marka

  • woo_ce_brand_term_taxonomy: Nadpisz domyślną taksonomię terminów product_brand
  • woo_ce_get_product_brands_args: Dodaj własne filtry WP_Query do eksportu marek

Kategoria

  • woo_ce_category_item: Dodaj obsługę dodatkowych kolumn kategorii
  • woo_ce_get_product_categories_args: Dodaj własne filtry WP_Query do eksportu kategorii

Kupon

  • woo_ce_get_coupons_args: Dodaj własne filtry WP_Query do eksportu kuponów
  • woo_ce_coupon_item: Dodaj obsługę dodatkowych kolumn kuponów
  • woo_ce_coupon_smart_coupons_valid_for
  • woocommerce_coupon_discount_types: Dodaj własne typy rabatów kuponów

Prowizja

  • woo_ce_get_commissions_args: Dodaj własne filtry WP_Query do eksportu prowizji

CRON

  • woo_ce_cron_export_post_args: Nadpisz opcje POST HTTP
  • woo_ce_email_recipient_name: Nadpisz domyślną nazwę odbiorcy wiadomości e-mail
  • woo_ce_email_contents: Nadpisz domyślną treść wiadomości e-mail
  • woo_ce_cron_export_ftp_switch: Przełączaj między metodami FTP ftp_put i ftp_fput
  • woo_ce_default_email_subject: Nadpisz domyślny temat wiadomości e-mail
  • woo_ce_trigger_new_order_items_formatting

Klient

  • woo_ce_customer_post_status: Nadpisz domyślny status posta klienta przekazywany do WP_Query
  • woo_ce_extend_customer_fields_custom_customer_hover
  • woo_ce_extend_customer_fields_custom_user_hover

Kolejność

  • woo_ce_order_post_status: Nadpisz domyślny status posta zamówienia przekazywany do WP_Query
  • woo_ce_extend_order_fields_product_addons
  • woo_ce_extend_order_fields_wccs
  • woo_ce_extend_order_fields_gf_label
  • woo_ce_extend_order_fields_gf_hover
  • woo_ce_extend_order_fields_attribute
  • woo_ce_extend_order_fields_custom_user_hover
  • woo_ce_get_orders_args: Dodaj własne filtry WP_Query do eksportu zamówień
  • woo_ce_get_order_id
  • woo_ce_get_order_data_billing_address
  • woo_ce_get_order_data_shipping_address
  • woo_ce_order_items_combined
  • woo_ce_order_items_unique
  • woo_ce_order: Dodaj obsługę dodatkowych kolumn zamówień
  • woo_ce_get_order_assoc_shipping_method_id
  • woo_ce_get_order_assoc_notes_date
  • woo_ce_get_order_assoc_notes_customer
  • woo_ce_get_order_assoc_notes_order
  • woo_ce_enable_addon_gravity_forms
  • woo_ce_get_order_items_variation_taxonomy
  • woo_ce_order_item_custom_meta
  • woo_ce_order_item
  • woo_ce_order_item_types: Dodaj własne typy pozycji zamówienia
  • woo_ce_order_items_individual
  • woo_ce_add_unique_order_item_fields_on
  • woo_ce_add_unique_order_item_fields_exclusion
  • woo_ce_unique_order_item_column_id
  • woo_ce_unique_order_item_column_product_id
  • woo_ce_unique_order_item_columns
  • woo_ce_extend_order_items_unique_columns_gf_fields
  • woo_ce_get_order_shipping_methods

Produkt

  • woo_ce_get_export_type_product_count_post_types
  • woo_ce_extend_product_fields_custom_attribute_hover
  • woo_ce_extend_product_fields_custom_product_hover
  • woo_ce_get_products_post_type
  • woo_ce_get_products_status
  • woo_ce_get_products_args: Dodaj własne filtry WP_Query do eksportu produktów
  • woo_ce_product_item: Dodaj obsługę dodatkowych kolumn produktów
  • woo_ce_get_product_assoc_categories_size
  • woo_ce_format_product_types
  • woo_ce_unique_product_gallery_column
  • woo_ce_format_description_excerpt_allowed_html
  • woo_ce_format_description_excerpt_protocols
  • woo_ce_format_description_excerpt

Sprzedawca produktu

  • woo_ce_get_product_vendors_args: Dodaj własne filtry WP_Query do eksportu sprzedawców produktów
  • woo_ce_product_vendor: Dodaj obsługę dodatkowych kolumn sprzedawców produktów
  • woo_ce_product_vendor_term_taxonomy: Zastąp domyślną taksonomię terminów wcpv_product_vendors

Klasa wysyłki

  • woo_ce_get_shipping_clases_args: Dodaj własne filtry WP_Query do eksportu klas wysyłki

Subskrypcja

  • woo_ce_get_subscriptions_args: Dodaj własne filtry WP_Query do eksportu subskrypcji
  • woo_ce_subscription: Dodaj obsługę dodatkowych kolumn subskrypcji
  • woo_ce_subscription_statuses
  • woo_ce_extend_subscription_fields_wc
  • woo_ce_extend_subscription_fields_custom_user_hover

Tag

  • woo_ce_get_product_tags_args: Dodaj własne filtry WP_Query do eksportu tagów produktów

Użytkownik

  • woo_ce_extend_user_fields_wc
  • woo_ce_extend_user_fields_custom_user_hover
  • woo_ce_get_users_args: Dodaj własne filtry WP_Query do eksportu użytkowników
  • woo_ce_get_user_data_full_name
  • woo_ce_user: Dodaj obsługę dodatkowych kolumn użytkowników

XML i RSS

Store Exporter Deluxe ma dwie ścieżki kodu do generowania danych wyjściowych XML i RSS. Szybki Eksport i Zaplanowane Eksporty używają filtrów z prefiksem wsed_ poniżej. Odpowiedniki z prefiksem woo_ce_ są aktywowane tylko dla eksportów wyzwalanych przez starszy adres URL CRON. Jeśli dostosowujesz dane wyjściowe XML lub RSS dla Szybkiego Eksportu lub Zaplanowanego Eksportu, użyj wersji wsed_.

Ręczny eksport CRON (starszy)Szybki Eksport i Zaplanowane Eksporty
woo_ce_export_xml_first_linewsed_export_xml_first_line
woo_ce_export_xml_store_nodewsed_export_xml_store_node
woo_ce_export_xml_before_datasetwsed_export_xml_before_dataset
woo_ce_export_xml_after_datasetwsed_export_xml_after_dataset
woo_ce_export_rss_first_line(brak odpowiednika Szybkiego Eksportu/Zaplanowanego)
woo_ce_export_rss_channel_nodewsed_export_rss_channel_node

Poniższe filtry węzłów mają zastosowanie do obu ścieżek kodu:

  • woo_ce_export_xml_product_node
  • woo_ce_export_xml_category_node
  • woo_ce_export_xml_tag_node
  • woo_ce_export_xml_brand_node
  • woo_ce_export_xml_order_node
  • woo_ce_export_xml_customer_node
  • woo_ce_export_xml_user_node
  • woo_ce_export_xml_coupon_node
  • woo_ce_export_xml_subscription_node
  • woo_ce_export_xml_product_vendor_node
  • woo_ce_export_xml_commission_node
  • woo_ce_export_xml_shipping_class_node

Typowe przykłady dostosowywania

Te przykłady pokazują rzeczywiste podpisy zweryfikowane pod kątem bieżącego kodu wtyczki. Dodaj je do niestandardowej wtyczki lub do pliku functions.php swojego motywu.

Dodaj niestandardową kolumnę do eksportu produktów

woo_ce_product_item działa raz na produkt podczas etapu przetwarzania. Otrzymuje tablicę danych wiersza, identyfikator produktu i obiekt WC_Product:

add_filter( 'woo_ce_product_item', 'my_custom_product_column', 10, 3 );
function my_custom_product_column( $product, $product_id, $wc_product ) {
    $product['my_custom_field'] = get_post_meta( $product_id, '_my_custom_field', true );
    return $product;
}

Dodaj pasujący identyfikator kolumny do listy pól eksportu w sekcji Pól eksportu, aby nowa wartość faktycznie pojawiła się w wynikach.

Dodanie własnego pola do formularza Szybkiego eksportu lub ekranu Ustawień nie jest obecnie możliwe za pomocą haka. Aplikacja Vue SPA, która renderuje te ekrany, jeszcze nie udostępnia punktu rozszerzenia dla tej funkcji. Jeśli tego potrzebujesz, otwórz zgłoszenie wsparcia, aby omówić swój przypadek użycia.

Dodaj niestandardową kartę do ekranu edycji zaplanowanego eksportu

woo_ce_scheduled_export_data_tabs otrzymuje tablicę kart wyświetlanych na ekranie edycji zaplanowanego eksportu, każda z kluczem identyfikatora karty, etykietą, identyfikatorem elementu docelowego i klasą CSS:

add_filter( 'woo_ce_scheduled_export_data_tabs', 'my_custom_scheduled_export_tab' );
function my_custom_scheduled_export_tab( $tabs ) {
    $tabs['my_tab'] = array(
        'label'  => __( 'My Tab', 'my-textdomain' ),
        'target' => 'my_tab_panel',
        'class'  => '',
    );
    return $tabs;
}

woo_ce_export_types dodaje tylko etykietę do listy typów eksportu używanej w miejscach takich jak licznik typów. Zarejestrowanie w pełni działającego nowego typu eksportu oznacza również dodanie pasującego przypadku do wewnętrznego dyspozytora eksportera, co nie jest czymś, co może zrobić pojedynczy filtr. Jeśli potrzebujesz autentycznie nowego typu eksportu, otwórz zgłoszenie wsparcia, aby omówić swój przypadek użycia.

Często zadawane pytania

Czy muszę znać wewnętrzne mechanizmy wtyczki, aby korzystać z tych haków?
Nie. Potrzebujesz tylko nazwy haka, momentu jego wywołania i przekazywanych argumentów, wszystko to jest wymienione powyżej. Nie musisz czytać kodu źródłowego wtyczki, aby użyć haka.
Czy te haki zmienią się w przyszłej aktualizacji?
Nazwy haków są uważane za część publicznego API wtyczki, a Visser Labs unika ich zmiany bez powiadomienia. Niemniej jednak zawsze testuj niestandardowy kod na stronie staging po zaktualizowaniu wtyczki.
Gdzie mam dodać ten kod?
Dodaj go do niestandardowej (specyficznej dla witryny) wtyczki lub do pliku functions.php aktywnego motywu, jeśli nie używasz konfiguracji motywu potomnego. Nie edytuj bezpośrednio plików Store Exporter Deluxe. Wszelkie zmiany tam zostaną utracone przy następnej aktualizacji wtyczki.

Potrzebujesz więcej pomocy?

Jeśli korzystasz ze Store Exporter Deluxe i potrzebujesz pomocy z konkretną personalizacją, otwórz zgłoszenie wsparcia, a nasz zespół wskaże Ci odpowiedni hak dla Twojego przypadku użycia.

Jeśli korzystasz z darmowej wtyczki Store Exporter, zadaj pytanie na forum wsparcia WordPress.org.

Czy ten artykuł był pomocny?

Powiązane artykuły

Zasoby i pomoc