Visser Labs – Plugin WooCommerce

  1. Casa
  2. Knowledge Base
  3. WooCommerce Store Exporter Deluxe
  4. Hook e filtri disponibili per ulteriori personalizzazioni

Hook e filtri disponibili per ulteriori personalizzazioni

Store Exporter Deluxe attiva un ampio set di hook di azione e filtro di WordPress durante il suo processo di esportazione. Usali per aggiungere i tuoi campi ai moduli di esportazione, modificare quali dati vengono esportati o integrare un tipo di esportazione completamente nuovo senza modificare direttamente i file del plugin.

Questo è un riferimento per sviluppatori. Presuppone che tu sia a tuo agio nell'aggiungere codice tramite un plugin personalizzato o il file functions.php del tuo tema. Se non hai familiarità con gli hook di WordPress, consulta prima la Guida per sviluppatori di plugin WordPress sugli hook.

Dalla versione 5.4.3 di Store Exporter Deluxe, le schermate di amministrazione del plugin (Panoramica, Esportazione rapida, Esportazioni pianificate, Impostazioni, ecc.) sono renderizzate da un'app a pagina singola Vue sotto WooCommerce → Esportazione Store. La maggior parte degli hook seguenti viene ancora attivata dalle stesse funzioni PHP sottostanti che hanno sempre avuto, quindi funzionano allo stesso modo indipendentemente dalla schermata di amministrazione che li attiva. Alcuni hook legati al vecchio modulo di esportazione e alla schermata delle impostazioni non vengono più attivati: consulta la nota sotto Azioni per sapere quali. Le intestazioni di sezione raggruppano gli hook in base a ciò che influenzano, non in base al nome di una specifica scheda visualizzata.

Come gli hook si inseriscono nella pipeline di esportazione

Ogni esportazione, sia essa attivata da Esportazione rapida, Esportazione pianificata o CRON manuale, attraversa le stesse tre fasi:

  • Prepara: l'esportatore apre il file di output e scrive le intestazioni di colonna. Per le esportazioni XML e RSS, filtri come wsed_export_xml_first_line e wsed_export_xml_store_node controllano i tag di apertura e il nome del nodo radice prima che vengano aggiunte righe.
  • Elabora: l'esportatore recupera i record in batch (100 record alla volta per impostazione predefinita, configurabile tramite l'impostazione della dimensione del batch; le esportazioni pianificate non vengono eseguite in batch) e scrive ogni riga. Qui vengono eseguiti i filtri denominati *_item (come woo_ce_product_item o woo_ce_order_item), una volta per record, consentendoti di modificare o aggiungere dati a quella riga.
  • Finalizza: l'esportatore chiude il file, ad esempio chiudendo il set di dati XML con wsed_export_xml_after_dataset, quindi lo consegna per il download, l'invio via email o l'archiviazione.

Tieni presente questo quando scegli un hook: un filtro _item modifica un record alla volta durante l'elaborazione, mentre un'azione _options (attivata durante il modulo di amministrazione, prima ancora che inizi la preparazione) influisce solo sul modulo di esportazione visualizzato, non sui dati stessi.

Azioni

Le azioni sono hook che WordPress esegue in punti specifici durante l'esecuzione, o quando si verificano eventi specifici.

Prima della riscrittura della SPA Vue in v5.4.3, Store Exporter Deluxe renderizzava il modulo di Esportazione Rapida e la schermata delle Impostazioni con template PHP legacy che attivavano hook come woo_ce_export_options e woo_ce_export_settings_after in modo da poter aggiungere i propri campi. Quei template non fanno più parte dell'interfaccia utente amministrativa attuale, quindi quegli hook non vengono più attivati. Se ti affidavi a uno di essi per aggiungere un campo personalizzato al modulo di esportazione o alla schermata delle Impostazioni, apri un ticket di supporto in modo che il nostro team possa aiutarti a trovare un'alternativa funzionante per il tuo caso d'uso.

Altri cinque filtri sono stati rimossi completamente dal codebase, piuttosto che lasciati irraggiungibili come gli hook sopra. Questi sono stati inseriti in refactor non correlati tra il 2023 e il 2024, ben prima della riscrittura v5.4.3, e nessuno di essi è stato prima deprecato: 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 e woo_ce_get_order_items_variation_custom. Nessuno di questi viene attivato nel plugin attuale. I filtri con nomi simili woo_ce_extend_order_fields_custom_user_hover, woo_ce_extend_product_fields_custom_product_hover e woo_ce_get_order_items_variation_taxonomy sono ancora disponibili per campi correlati (vedi le sezioni Ordini e Prodotti di seguito). Se hai bisogno di uno dei filtri rimossi, apri un ticket di supporto in modo che il nostro team possa aiutarti a trovare un'alternativa funzionante.

Schermata di modifica Esportazione Pianificata

Questi vengono attivati nella schermata di modifica delle Esportazioni Pianificate, dove ogni esportazione pianificata viene memorizzata e gestita come un proprio post.

  • woo_ce_before_scheduled_export_general_options: Aggiungi campi alla scheda Generale
  • woo_ce_before_scheduled_export_type_options: Aggiungi campi alla scheda Tipo
  • woo_ce_before_scheduled_export_method_options: Aggiungi campi alla scheda Metodo
  • woo_ce_before_scheduled_export_frequency_options: Aggiungi campi alla scheda Frequenza

Filtri

I filtri sono hook che modificano i dati prima che vengano utilizzati, sia prima che vengano aggiunti al database sia prima che vengano scritti nel file di esportazione.

Generico

  • woo_ce_export_types: Aggiungi i tuoi tipi di esportazione
  • woo_ce_sys_get_temp_dir: Sovrascrivi la directory temporanea PHP predefinita per percorsi personalizzati
  • woo_ce_template_header: Sovrascrivi il titolo dell'intestazione predefinito di Store Exporter Deluxe
  • woo_ce_admin_order_actions: Aggiungi i tuoi pulsanti alla colonna Azioni nella schermata Ordini
  • woo_ce_display_admin_footer_text: Modifica il messaggio del piè di pagina di WP Admin
  • woo_ce_modules_addons: Aggiungi i tuoi plugin al widget Moduli di Esportazione
  • woo_ce_get_visitor_ip_address: Sovrascrivi l'indirizzo IP CRON rilevato
  • woo_ce_get_line_ending: Sovrascrivi il carattere di fine riga predefinito
  • woo_ce_wc_price_decimal_sep
  • woo_ce_wc_price_thousands_sep
  • woo_ce_get_export_type_count: Sovrascrivi i conteggi del tipo di esportazione
  • woo_ce_scheduled_export_data_tabs: Aggiungi le tue schede alla schermata di modifica dell'esportazione pianificata
  • woo_ce_admin_user_capability: Sovrascrivi la capacità utente predefinita richiesta per vedere la schermata WooCommerce > Store Export
  • woo_ce_admin_dashboard_user_capability: Sovrascrivi la capacità utente predefinita richiesta per visualizzare i widget del dashboard Esportazioni pianificate ed Esportazioni pianificate recenti

Marca

  • woo_ce_brand_term_taxonomy: Sovrascrivi la tassonomia dei termini product_brand predefinita
  • woo_ce_get_product_brands_args: Aggiungi i tuoi filtri WP_Query all'esportazione dei marchi

Categoria

  • woo_ce_category_item: Aggiungi supporto per colonne aggiuntive di Categoria
  • woo_ce_get_product_categories_args: Aggiungi i tuoi filtri WP_Query all'esportazione delle categorie

Coupon

  • woo_ce_get_coupons_args: Aggiungi i tuoi filtri WP_Query all'esportazione dei coupon
  • woo_ce_coupon_item: Aggiungi supporto per colonne aggiuntive di Coupon
  • woo_ce_coupon_smart_coupons_valid_for
  • woocommerce_coupon_discount_types: Aggiungi i tuoi tipi di sconto coupon

Commissione

  • woo_ce_get_commissions_args: Aggiungi i tuoi filtri WP_Query all'esportazione delle commissioni

CRON

  • woo_ce_cron_export_post_args: Sovrascrivi le opzioni HTTP POST
  • woo_ce_email_recipient_name: Sovrascrivi il nome del destinatario dell'email predefinito
  • woo_ce_email_contents: Sovrascrivi il messaggio del contenuto dell'email predefinito
  • woo_ce_cron_export_ftp_switch: Passa tra i metodi FTP ftp_put e ftp_fput
  • woo_ce_default_email_subject: Sovrascrivi l'oggetto dell'email predefinito
  • woo_ce_trigger_new_order_items_formatting

Cliente

  • woo_ce_customer_post_status: Sovrascrivi lo stato del post del cliente predefinito passato a WP_Query
  • woo_ce_extend_customer_fields_custom_customer_hover
  • woo_ce_extend_customer_fields_custom_user_hover

Ordine

  • woo_ce_order_post_status: Sovrascrivi lo stato del post dell'ordine predefinito passato a 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: Aggiungi i tuoi filtri WP_Query all'esportazione degli ordini
  • 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: Aggiungi supporto per colonne Ordine aggiuntive
  • 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: Aggiungi i tuoi tipi di articoli d'ordine
  • 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

Prodotto

  • 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: Aggiungi i tuoi filtri WP_Query all'esportazione Prodotti
  • woo_ce_product_item: Aggiungi supporto per colonne Prodotto aggiuntive
  • 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_allowed_protocols
  • woo_ce_format_description_excerpt

Venditore Prodotto

  • woo_ce_get_product_vendors_args: Aggiungi i tuoi filtri WP_Query all'esportazione Venditori Prodotto
  • woo_ce_product_vendor: Aggiungi supporto per colonne Venditore Prodotto aggiuntive
  • woo_ce_product_vendor_term_taxonomy: Sovrascrivi la tassonomia del termine wcpv_product_vendors predefinita

Classe di Spedizione

  • woo_ce_get_shipping_clases_args: Aggiungi i tuoi filtri WP_Query all'esportazione Classi di Spedizione

Abbonamento

  • woo_ce_get_subscriptions_args: Aggiungi i tuoi filtri WP_Query all'esportazione Abbonamenti
  • woo_ce_subscription: Aggiungi supporto per colonne Abbonamento aggiuntive
  • 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: Aggiungi i tuoi filtri WP_Query all'esportazione Tag

Utente

  • woo_ce_extend_user_fields_wc
  • woo_ce_extend_user_fields_custom_user_hover
  • woo_ce_get_users_args: Aggiungi i tuoi filtri WP_Query all'esportazione Utenti
  • woo_ce_get_user_data_full_name
  • woo_ce_user: Aggiungi supporto per colonne Utente aggiuntive

XML e RSS

Store Exporter Deluxe ha due percorsi di codice per la generazione di output XML e RSS. Quick Export e Scheduled Exports utilizzano i filtri con prefisso wsed_ di seguito. Gli equivalenti con prefisso woo_ce_ vengono attivati solo per le esportazioni attivate tramite l'URL CRON manuale legacy. Se stai personalizzando l'output XML o RSS per un Quick Export o uno Scheduled Export, usa la versione wsed_.

Esportazione CRON manuale (legacy)Quick Export e Scheduled Exports
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(nessun equivalente Quick Export/Scheduled)
woo_ce_export_rss_channel_nodewsed_export_rss_channel_node

I seguenti filtri nodo si applicano a entrambi i percorsi di codice:

  • 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

Esempi comuni di personalizzazione

Questi esempi mostrano firme reali verificate rispetto al codice del plugin corrente. Aggiungili a un plugin personalizzato o al file functions.php del tuo tema.

Aggiungi una colonna personalizzata all'esportazione dei prodotti

woo_ce_product_item viene eseguito una volta per prodotto durante la fase di elaborazione. Riceve l'array dei dati della riga, l'ID del prodotto e l'oggetto 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;
}

Aggiungi l'ID della colonna corrispondente all'elenco dei campi della tua esportazione dalla sezione Campi di esportazione in modo che il nuovo valore appaia effettivamente nell'output.

Al momento non è possibile aggiungere il proprio campo al modulo Esportazione rapida o alla schermata Impostazioni tramite un hook. La SPA Vue che renderizza tali schermate non espone ancora un punto di estensione per questo. Se ne hai bisogno, apri un ticket di supporto per discutere il tuo caso d'uso.

Aggiungi una scheda personalizzata alla schermata di modifica dell'esportazione pianificata

woo_ce_scheduled_export_data_tabs riceve l'array di schede mostrate nella schermata di modifica dell'esportazione pianificata, ciascuna indicizzata da un ID scheda con un'etichetta, un ID elemento di destinazione e una classe 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 aggiunge solo un'etichetta all'elenco dei tipi di esportazione utilizzato in luoghi come il contatore dei tipi. La registrazione di un nuovo tipo di esportazione completamente funzionante significa anche aggiungere un caso corrispondente al dispatch interno dell'esportatore, che non è qualcosa che un singolo filtro può fare. Se hai bisogno di un tipo di esportazione veramente nuovo, apri un ticket di supporto per discutere il tuo caso d'uso.

FAQ

Ho bisogno di conoscere gli interni del plugin per usare questi hook?
No. Hai solo bisogno del nome dell'hook, di quando viene attivato e degli argomenti che passa, tutto ciò che è elencato sopra. Non è necessario leggere il codice sorgente del plugin per utilizzare un hook.
Questi hook cambieranno in un futuro aggiornamento?
I nomi degli hook sono considerati parte dell'API pubblica del plugin e Visser Labs evita di rinominarli senza preavviso. Detto questo, testa sempre il codice personalizzato su un sito di staging dopo aver aggiornato il plugin.
Dove aggiungo questo codice?
Aggiungilo a un plugin personalizzato (specifico del sito) o al file functions.php del tuo tema attivo se non stai utilizzando una configurazione di tema figlio. Non modificare direttamente i file di Store Exporter Deluxe. Qualsiasi modifica lì andrà persa al prossimo aggiornamento del plugin.

Serve ulteriore aiuto?

Se stai usando Store Exporter Deluxe e hai bisogno di aiuto con una personalizzazione specifica, apri un ticket di supporto e il nostro team potrà indicarti l'hook giusto per il tuo caso d'uso.

Se stai utilizzando il plugin gratuito Store Exporter, fai la tua domanda sul forum di supporto di WordPress.org.

Questo articolo è stato utile?

Articoli Correlati

Risorse e Aiuto