Visser Labs – Plugins WooCommerce

  1. Accueil
  2. Base de connaissances
  3. WooCommerce Store Exporter Deluxe
  4. Crochets et filtres disponibles pour une personnalisation plus poussée

Crochets et filtres disponibles pour une personnalisation plus poussée

Store Exporter Deluxe déclenche un grand nombre de crochets d'action et de filtre WordPress tout au long de son processus d'exportation. Utilisez-les pour ajouter vos propres champs aux formulaires d'exportation, modifier les données exportées, ou intégrer un tout nouveau type d'exportation sans modifier directement les fichiers du plugin.

Ceci est une référence pour développeurs. Elle suppose que vous êtes à l'aise pour ajouter du code via un plugin personnalisé ou le fichier functions.php de votre thème. Si vous n'êtes pas familier avec les crochets WordPress, consultez d'abord le Manuel des plugins WordPress sur les crochets.

Depuis Store Exporter Deluxe v5.4.3, les écrans d'administration du plugin (Vue d'ensemble, Export rapide, Exportations planifiées, Paramètres, etc.) sont rendus par une application monopage Vue sous WooCommerce → Exportation du magasin. La plupart des crochets ci-dessous sont toujours déclenchés par les mêmes fonctions PHP sous-jacentes qu'auparavant, ils fonctionnent donc de la même manière, quel que soit l'écran d'administration qui les déclenche. Quelques crochets liés à l'ancien formulaire d'exportation et à l'écran des paramètres ne sont plus déclenchés du tout : consultez l'appel sous Actions ci-dessous pour savoir lesquels. Les titres de section regroupent les crochets par ce qu'ils affectent, et non par un nom d'onglet spécifique à l'écran.

Comment les crochets s'intègrent dans le pipeline d'exportation

Chaque exportation, qu'elle soit déclenchée depuis l'Exportation rapide, une Exportation planifiée, ou un CRON manuel, passe par les trois mêmes étapes :

  • Préparer : l'exportateur ouvre le fichier de sortie et écrit les en-têtes de colonne. Pour les exportations XML et RSS, des filtres tels que wsed_export_xml_first_line et wsed_export_xml_store_node contrôlent les balises d'ouverture et le nom du nœud racine avant que les lignes ne soient ajoutées.
  • Traiter : l'exportateur récupère les enregistrements par lots (100 enregistrements à la fois par défaut, configurable via le paramètre de taille de lot ; les exportations planifiées ne s'exécutent pas par lots) et écrit chaque ligne. Les filtres nommés *_item (comme woo_ce_product_item ou woo_ce_order_item) s'exécutent ici, une fois par enregistrement, vous permettant de modifier ou d'ajouter des données à cette ligne.
  • Finaliser : l'exportateur clôt le fichier, par exemple en fermant le jeu de données XML avec wsed_export_xml_after_dataset, puis le transmet pour téléchargement, e-mail ou archivage.

Gardez cela à l'esprit lorsque vous choisissez un crochet : un filtre _item modifie un enregistrement à la fois pendant le traitement, tandis qu'une action _options (déclenchée pendant le formulaire d'administration, avant même que la préparation ne commence) n'affecte que le formulaire d'exportation que vous voyez, pas les données elles-mêmes.

Actions

Les actions sont des crochets que WordPress exécute à des points spécifiques pendant l'exécution, ou lorsque des événements spécifiques se produisent.

Avant la réécriture de la SPA Vue dans la v5.4.3, Store Exporter Deluxe rendait le formulaire d'exportation rapide et l'écran des paramètres avec des modèles PHP hérités qui déclenchaient des hooks tels que woo_ce_export_options et woo_ce_export_settings_after afin que vous puissiez y ajouter vos propres champs. Ces modèles ne font plus partie de l'interface utilisateur d'administration actuelle, par conséquent, ces hooks ne sont plus déclenchés. Si vous vous appuyiez sur l'un d'eux pour ajouter un champ personnalisé au formulaire d'exportation ou à l'écran des paramètres, ouvrez un ticket de support afin que notre équipe puisse vous aider à trouver une alternative fonctionnelle pour votre cas d'utilisation.

Cinq autres filtres ont été entièrement supprimés du code, plutôt que laissés inaccessibles comme les hooks ci-dessus. Ils ont été supprimés lors de refactorisations sans rapport entre 2023 et 2024, bien avant la réécriture de la v5.4.3, et aucun d'entre eux n'a été déprécié au préalable : 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 et woo_ce_get_order_items_variation_custom. Aucun de ceux-ci n'est déclenché dans le plugin actuel. Les filtres nommés de manière similaire woo_ce_extend_order_fields_custom_user_hover, woo_ce_extend_product_fields_custom_product_hover et woo_ce_get_order_items_variation_taxonomy sont toujours disponibles pour les champs associés (voir les sections Commande et Produit ci-dessous). Si vous avez besoin de l'un des filtres supprimés, ouvrez un ticket de support afin que notre équipe puisse vous aider à trouver une alternative fonctionnelle.

Écran de modification de l'exportation planifiée

Ceux-ci sont déclenchés sur l'écran de modification de l'exportation planifiée, où chaque exportation planifiée est stockée et gérée comme son propre article.

  • woo_ce_before_scheduled_export_general_options : Ajouter des champs à l'onglet Général
  • woo_ce_before_scheduled_export_type_options : Ajouter des champs à l'onglet Type
  • woo_ce_before_scheduled_export_method_options : Ajouter des champs à l'onglet Méthode
  • woo_ce_before_scheduled_export_frequency_options : Ajouter des champs à l'onglet Fréquence

Filtres

Les filtres sont des hooks qui modifient les données avant qu'elles ne soient utilisées, que ce soit avant leur ajout à la base de données ou avant leur écriture dans le fichier d'exportation.

Générique

  • woo_ce_export_types : Ajouter vos propres types d'exportation
  • woo_ce_sys_get_temp_dir : Substituer le répertoire temporaire PHP par défaut pour les chemins personnalisés
  • woo_ce_template_header : Substituer le titre d'en-tête par défaut de Store Exporter Deluxe
  • woo_ce_admin_order_actions : Ajouter vos propres boutons à la colonne Actions de l'écran Commandes
  • woo_ce_display_admin_footer_text : Modifier le message du pied de page de l'administration WordPress
  • woo_ce_modules_addons : Ajouter vos propres plugins au widget Modules d'exportation
  • woo_ce_get_visitor_ip_address : Substituer l'adresse IP détectée de CRON
  • woo_ce_get_line_ending : Substituer le caractère de fin de ligne par défaut
  • woo_ce_wc_price_decimal_sep
  • woo_ce_wc_price_thousands_sep
  • woo_ce_get_export_type_count : Substituer les décomptes de types d'exportation
  • woo_ce_scheduled_export_data_tabs : Ajoutez vos propres onglets à l'écran de modification de l'exportation planifiée
  • woo_ce_admin_user_capability : Remplacez la capacité utilisateur par défaut requise pour voir l'écran WooCommerce > Store Export
  • woo_ce_admin_dashboard_user_capability : Remplacez la capacité utilisateur par défaut requise pour afficher les widgets du tableau de bord Exportations planifiées et Exportations planifiées récentes

Marque

  • woo_ce_brand_term_taxonomy : Remplacez la taxonomie de terme product_brand par défaut
  • woo_ce_get_product_brands_args : Ajoutez vos propres filtres WP_Query à l'exportation des marques

Catégorie

  • woo_ce_category_item : Ajoutez la prise en charge de colonnes de catégories supplémentaires
  • woo_ce_get_product_categories_args : Ajoutez vos propres filtres WP_Query à l'exportation des catégories

Coupon

  • woo_ce_get_coupons_args : Ajoutez vos propres filtres WP_Query à l'exportation des coupons
  • woo_ce_coupon_item : Ajoutez la prise en charge de colonnes de coupons supplémentaires
  • woo_ce_coupon_smart_coupons_valid_for
  • woocommerce_coupon_discount_types : Ajoutez vos propres types de réduction de coupon

Commission

  • woo_ce_get_commissions_args : Ajoutez vos propres filtres WP_Query à l'exportation des commissions

CRON

  • woo_ce_cron_export_post_args : Remplacez les options HTTP POST
  • woo_ce_email_recipient_name : Remplacez le nom du destinataire de l'e-mail par défaut
  • woo_ce_email_contents : Remplacez le message de contenu de l'e-mail par défaut
  • woo_ce_cron_export_ftp_switch : Basculez entre les méthodes FTP ftp_put et ftp_fput
  • woo_ce_default_email_subject : Remplacez l'objet de l'e-mail par défaut
  • woo_ce_trigger_new_order_items_formatting

Client

  • woo_ce_customer_post_status : Remplacez le statut de publication du client par défaut passé à WP_Query
  • woo_ce_extend_customer_fields_custom_customer_hover
  • woo_ce_extend_customer_fields_custom_user_hover

Ordre

  • woo_ce_order_post_status : Remplacez le statut de publication de la commande par défaut passé à 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 : Ajoutez vos propres filtres WP_Query à l'export des commandes
  • 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 : Ajoutez la prise en charge de colonnes de commande supplémentaires
  • 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 : Ajoutez vos propres types d'articles de commande
  • 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

Produit

  • 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 : Ajoutez vos propres filtres WP_Query à l'exportation des produits
  • woo_ce_product_item : Ajoutez la prise en charge de colonnes de produits supplémentaires
  • 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

Vendeur de produit

  • woo_ce_get_product_vendors_args : Ajoutez vos propres filtres WP_Query à l'exportation des vendeurs de produits
  • woo_ce_product_vendor : Ajoutez la prise en charge de colonnes de vendeurs de produits supplémentaires
  • woo_ce_product_vendor_term_taxonomy : Remplacez la taxonomie de terme par défaut wcpv_product_vendors

Classe d'expédition

  • woo_ce_get_shipping_clases_args : Ajoutez vos propres filtres WP_Query à l'exportation des classes de livraison

Abonnement

  • woo_ce_get_subscriptions_args : Ajoutez vos propres filtres WP_Query à l'exportation des abonnements
  • woo_ce_subscription : Ajoutez la prise en charge de colonnes d'abonnement supplémentaires
  • woo_ce_subscription_statuses
  • woo_ce_extend_subscription_fields_wc
  • woo_ce_extend_subscription_fields_custom_user_hover

Étiquette

  • woo_ce_get_product_tags_args : Ajoutez vos propres filtres WP_Query à l'exportation des étiquettes

Utilisateur

  • woo_ce_extend_user_fields_wc
  • woo_ce_extend_user_fields_custom_user_hover
  • woo_ce_get_users_args : Ajoutez vos propres filtres WP_Query à l'exportation des utilisateurs
  • woo_ce_get_user_data_full_name
  • woo_ce_user : Ajoutez la prise en charge de colonnes d'utilisateurs supplémentaires

XML et RSS

Store Exporter Deluxe dispose de deux chemins de code pour générer la sortie XML et RSS. L'exportation rapide et les exportations planifiées utilisent les filtres préfixés wsed_ ci-dessous. Les équivalents préfixés woo_ce_ ne s'activent que pour les exportations déclenchées via l'URL CRON manuelle héritée. Si vous personnalisez la sortie XML ou RSS pour une exportation rapide ou une exportation planifiée, utilisez la version wsed_.

Exportation CRON manuelle (héritée)Exportation rapide et exportations planifiées
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(pas d'équivalent Quick Export/Programmé)
woo_ce_export_rss_channel_nodewsed_export_rss_channel_node

Les filtres de nœuds suivants s'appliquent aux deux chemins de code :

  • 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

Exemples de personnalisation courants

Ces exemples montrent des signatures réelles vérifiées par rapport au code actuel du plugin. Ajoutez-les à un plugin personnalisé ou au fichier functions.php de votre thème.

Ajouter une colonne personnalisée à l'exportation des produits

woo_ce_product_item s'exécute une fois par produit pendant l'étape de traitement. Il reçoit le tableau de données de la ligne, l'ID du produit et l'objet 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;
}

Ajoutez l'ID de colonne correspondant à la liste des champs de votre exportation dans la section Champs d'exportation afin que la nouvelle valeur apparaisse réellement dans la sortie.

Il n'est actuellement pas possible d'ajouter votre propre champ au formulaire Quick Export ou à l'écran des paramètres via un hook. Le SPA Vue qui rend ces écrans n'expose pas encore de point d'extension pour cela. Si vous en avez besoin, ouvrez un ticket de support pour discuter de votre cas d'utilisation.

Ajouter un onglet personnalisé à l'écran de modification de l'exportation planifiée

woo_ce_scheduled_export_data_tabs reçoit le tableau des onglets affichés sur l'écran de modification de l'exportation planifiée, chacun indexé par un ID d'onglet avec une étiquette, un ID d'élément cible et une 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 ajoute uniquement une étiquette à la liste des types d'exportation utilisée dans des endroits comme le compteur de types. L'enregistrement d'un nouveau type d'exportation entièrement fonctionnel signifie également ajouter un cas correspondant à la distribution interne de l'exportateur, ce qui n'est pas quelque chose qu'un seul filtre peut faire. Si vous avez besoin d'un nouveau type d'exportation, ouvrez un ticket de support pour discuter de votre cas d'utilisation.

FAQ

Dois-je connaître les détails internes du plugin pour utiliser ces hooks ?
Non. Vous avez seulement besoin du nom du hook, du moment où il se déclenche et des arguments qu'il transmet, tout cela est indiqué ci-dessus. Vous n'avez pas besoin de lire le code source du plugin pour utiliser un hook.
Ces hooks changeront-ils dans une future mise à jour ?
Les noms des hooks sont considérés comme faisant partie de l'API publique du plugin et Visser Labs évite de les renommer sans préavis. Cela dit, testez toujours le code personnalisé sur un site de staging après la mise à jour du plugin.
Où dois-je ajouter ce code ?
Ajoutez-le à un plugin personnalisé (spécifique au site) ou au fichier functions.php de votre thème actif si vous n'utilisez pas une configuration de thème enfant. Ne modifiez pas directement les fichiers de Store Exporter Deluxe. Toute modification apportée sera perdue lors de la prochaine mise à jour du plugin.

Besoin d'aide supplémentaire ?

Si vous utilisez Store Exporter Deluxe et avez besoin d'aide pour une personnalisation spécifique, ouvrez un ticket de support et notre équipe pourra vous indiquer le bon hook pour votre cas d'utilisation.

Si vous utilisez le plugin gratuit Store Exporter, posez votre question sur le forum de support de WordPress.org.

Cet article vous a-t-il été utile ?

Articles Liés

Ressources et aide