Visser Labs – Plugins de WooCommerce

  1. Inicio
  2. Base de conocimiento
  3. Exportador de Tiendas Deluxe de WooCommerce
  4. Ganchos y filtros disponibles para una mayor personalización

Ganchos y filtros disponibles para una mayor personalización

Store Exporter Deluxe activa un gran conjunto de acciones y filtros de WordPress durante su proceso de exportación. Úsalos para agregar tus propios campos a los formularios de exportación, cambiar qué datos se exportan o conectar un tipo de exportación completamente nuevo sin editar los archivos del plugin directamente.

Esta es una referencia para desarrolladores. Asume que te sientes cómodo agregando código a través de un plugin personalizado o el archivo functions.php de tu tema. Si no estás familiarizado con los hooks de WordPress, consulta primero el Manual de Plugins de WordPress sobre hooks.

Desde Store Exporter Deluxe v5.4.3, las pantallas de administración del plugin (Visión general, Exportación rápida, Exportaciones programadas, Ajustes, etc.) son renderizadas por una aplicación de página única de Vue en WooCommerce → Exportación de tienda. La mayoría de los hooks a continuación todavía se activan desde las mismas funciones PHP subyacentes que siempre han tenido, por lo que funcionan de la misma manera sin importar qué pantalla de administración los active. Algunos hooks vinculados al antiguo formulario de exportación y a la pantalla de Ajustes ya no se activan: consulta la llamada de atención debajo de Acciones para saber cuáles. Los encabezados de sección agrupan los hooks por lo que afectan, no por un nombre de pestaña específico en pantalla.

Cómo encajan los hooks en el proceso de exportación

Cada exportación, ya sea activada desde Exportación rápida, una Exportación programada o CRON manual, pasa por las mismas tres etapas:

  • Preparar: el exportador abre el archivo de salida y escribe las cabeceras de las columnas. Para las exportaciones XML y RSS, filtros como wsed_export_xml_first_line y wsed_export_xml_store_node controlan las etiquetas de apertura y el nombre del nodo raíz antes de que se agreguen las filas.
  • Procesar: el exportador recupera registros en lotes (100 registros a la vez por defecto, configurable a través de la configuración del tamaño del lote; las exportaciones programadas no se ejecutan en lotes) y escribe cada fila. Los filtros llamados *_item (como woo_ce_product_item o woo_ce_order_item) se ejecutan aquí, una vez por registro, lo que te permite cambiar o agregar datos a esa fila.
  • Finalizar: el exportador cierra el archivo, por ejemplo, cerrando el conjunto de datos XML con wsed_export_xml_after_dataset, y luego lo entrega para su descarga, correo electrónico o archivo.

Ten esto en cuenta al elegir un hook: un filtro _item cambia un registro a la vez durante el Procesamiento, mientras que una acción _options (activada durante el formulario de administración, antes de que comience la Preparación) solo afecta al formulario de exportación que ves, no a los datos en sí.

Acciones

Las acciones son hooks que WordPress ejecuta en puntos específicos durante la ejecución, o cuando ocurren eventos específicos.

Antes de la reescritura de la SPA de Vue en la v5.4.3, Store Exporter Deluxe renderizaba el formulario de Exportación Rápida y la pantalla de Configuración con plantillas PHP heredadas que disparaban ganchos como woo_ce_export_options y woo_ce_export_settings_after para que pudieras añadir tus propios campos. Esas plantillas ya no forman parte de la interfaz de administración actual, por lo que esos ganchos ya no se disparan. Si dependías de uno de ellos para añadir un campo personalizado al formulario de exportación o a la pantalla de Configuración, abre un ticket de soporte para que nuestro equipo pueda ayudarte a encontrar una alternativa funcional para tu caso de uso.

Otros cinco filtros fueron eliminados por completo del código base, en lugar de dejarlos inalcanzables como los ganchos anteriores. Estos se incluyeron en refactors no relacionados entre 2023 y 2024, mucho antes de la reescritura de la v5.4.3, y ninguno de ellos fue previamente obsoleto: 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 y woo_ce_get_order_items_variation_custom. Ninguno de estos se dispara en el plugin actual. Los de nombre similar woo_ce_extend_order_fields_custom_user_hover, woo_ce_extend_product_fields_custom_product_hover y woo_ce_get_order_items_variation_taxonomy todavía están disponibles para campos relacionados (ver las secciones Pedido y Producto a continuación). Si necesitas uno de los filtros eliminados, abre un ticket de soporte para que nuestro equipo pueda ayudarte a encontrar una alternativa funcional.

Pantalla de edición de Exportación Programada

Estos se disparan en la pantalla de edición de Exportación Programada, donde cada exportación programada se almacena y gestiona como su propia publicación.

  • woo_ce_before_scheduled_export_general_options: Añadir campos a la pestaña General
  • woo_ce_before_scheduled_export_type_options: Añadir campos a la pestaña Tipo
  • woo_ce_before_scheduled_export_method_options: Añadir campos a la pestaña Método
  • woo_ce_before_scheduled_export_frequency_options: Añadir campos a la pestaña Frecuencia

Filtros

Los filtros son ganchos que modifican los datos antes de que se utilicen, ya sea antes de que se añadan a la base de datos o antes de que se escriban en el archivo de exportación.

Genérico

  • woo_ce_export_types: Añadir tus propios tipos de exportación
  • woo_ce_sys_get_temp_dir: Anular el directorio temporal PHP predeterminado para rutas personalizadas
  • woo_ce_template_header: Anular el título del encabezado predeterminado de Store Exporter Deluxe
  • woo_ce_admin_order_actions: Añadir tus propios botones a la columna Acciones en la pantalla de Pedidos
  • woo_ce_display_admin_footer_text: Modificar el mensaje del pie de página de WP Admin
  • woo_ce_modules_addons: Añadir tus propios plugins al widget de Módulos de Exportación
  • woo_ce_get_visitor_ip_address: Anular la dirección IP detectada de CRON
  • woo_ce_get_line_ending: Anular el carácter de fin de línea predeterminado
  • woo_ce_wc_price_decimal_sep
  • woo_ce_wc_price_thousands_sep
  • woo_ce_get_export_type_count: Anular los recuentos de tipos de exportación
  • woo_ce_scheduled_export_data_tabs: Añade tus propias pestañas a la pantalla de edición de Exportación programada
  • woo_ce_admin_user_capability: Anula la capacidad de usuario predeterminada requerida para ver la pantalla de Exportación de WooCommerce > Tienda
  • woo_ce_admin_dashboard_user_capability: Anula la capacidad de usuario predeterminada requerida para ver los widgets del panel de Exportaciones programadas y Exportaciones programadas recientes

Marca

  • woo_ce_brand_term_taxonomy: Anula la taxonomía de términos product_brand predeterminada
  • woo_ce_get_product_brands_args: Añade tus propios filtros WP_Query a la exportación de Marcas

Categoría

  • woo_ce_category_item: Añade soporte para columnas de Categoría adicionales
  • woo_ce_get_product_categories_args: Añade tus propios filtros WP_Query a la exportación de Categorías

Cupón

  • woo_ce_get_coupons_args: Añade tus propios filtros WP_Query a la exportación de Cupones
  • woo_ce_coupon_item: Añade soporte para columnas de Cupón adicionales
  • woo_ce_coupon_smart_coupons_valid_for
  • woocommerce_coupon_discount_types: Añade tus propios tipos de descuento de cupón

Comisión

  • woo_ce_get_commissions_args: Añade tus propios filtros WP_Query a la exportación de Comisiones

CRON

  • woo_ce_cron_export_post_args: Anula las opciones POST de HTTP
  • woo_ce_email_recipient_name: Anula el nombre del destinatario del correo electrónico predeterminado
  • woo_ce_email_contents: Anula el mensaje de contenido del correo electrónico predeterminado
  • woo_ce_cron_export_ftp_switch: Cambia entre los métodos FTP ftp_put y ftp_fput
  • woo_ce_default_email_subject: Anula el asunto del correo electrónico predeterminado
  • woo_ce_trigger_new_order_items_formatting

Cliente

  • woo_ce_customer_post_status: Anula el estado de publicación del cliente predeterminado pasado a WP_Query
  • woo_ce_extend_customer_fields_custom_customer_hover
  • woo_ce_extend_customer_fields_custom_user_hover

Pedido

  • woo_ce_order_post_status: Anula el estado de publicación del pedido predeterminado pasado 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: Añade tus propios filtros WP_Query a la exportación de pedidos
  • 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: Añade soporte para columnas de pedido adicionales
  • 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: Añade tus propios tipos de artículo de pedido
  • 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

Producto

  • 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: Agrega tus propios filtros WP_Query a la exportación de Productos
  • woo_ce_product_item: Agrega soporte para columnas de Producto adicionales
  • 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

Vendedor de Producto

  • woo_ce_get_product_vendors_args: Agrega tus propios filtros WP_Query a la exportación de Vendedores de Producto
  • woo_ce_product_vendor: Agrega soporte para columnas de Vendedor de Producto adicionales
  • woo_ce_product_vendor_term_taxonomy: Anula la taxonomía de términos wcpv_product_vendors predeterminada

Clase de Envío

  • woo_ce_get_shipping_clases_args: Agrega tus propios filtros WP_Query a la exportación de Clases de Envío

Suscripción

  • woo_ce_get_subscriptions_args: Agrega tus propios filtros WP_Query a la exportación de Suscripciones
  • woo_ce_subscription: Agrega soporte para columnas de Suscripción adicionales
  • woo_ce_subscription_statuses
  • woo_ce_extend_subscription_fields_wc
  • woo_ce_extend_subscription_fields_custom_user_hover

Etiqueta

  • woo_ce_get_product_tags_args: Agrega tus propios filtros WP_Query a la exportación de Etiquetas

Usuario

  • woo_ce_extend_user_fields_wc
  • woo_ce_extend_user_fields_custom_user_hover
  • woo_ce_get_users_args: Añada sus propios filtros WP_Query a la exportación de usuarios
  • woo_ce_get_user_data_full_name
  • woo_ce_user: Añada soporte para columnas de usuario adicionales

XML y RSS

Store Exporter Deluxe tiene dos rutas de código para generar la salida XML y RSS. Exportación Rápida y Exportaciones Programadas usan los filtros con prefijo wsed_ a continuación. Los equivalentes con prefijo woo_ce_ solo se activan para exportaciones iniciadas a través de la URL CRON manual heredada. Si está personalizando la salida XML o RSS para una Exportación Rápida o una Exportación Programada, use la versión wsed_.

Exportación CRON manual (heredada)Exportación Rápida y Exportaciones Programadas
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(sin equivalente de Exportación Rápida/Programada)
woo_ce_export_rss_channel_nodewsed_export_rss_channel_node

Los siguientes filtros de nodo se aplican a ambas rutas de código:

  • 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

Ejemplos de personalización comunes

Estos ejemplos muestran firmas reales verificadas contra el código actual del plugin. Añádelos a un plugin personalizado o al functions.php de tu tema.

Añadir una columna personalizada a la exportación de productos

woo_ce_product_item se ejecuta una vez por producto durante la etapa de Procesamiento. Recibe la matriz de datos de la fila, el ID del producto y el objeto 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;
}

Añada el ID de columna coincidente a la lista de campos de su exportación desde la sección Campos de exportación para que el nuevo valor aparezca realmente en la salida.

Añadir tu propio campo al formulario de Exportación Rápida o a la pantalla de Configuración no es posible actualmente a través de un hook. La SPA de Vue que renderiza esas pantallas aún no expone un punto de extensión para esto. Si necesitas esto, abre un ticket de soporte para discutir tu caso de uso.

Añadir una pestaña personalizada a la pantalla de edición de Exportación Programada

woo_ce_scheduled_export_data_tabs recibe la matriz de pestañas que se muestran en la pantalla de edición de Exportación Programada, cada una con clave por un ID de pestaña con una etiqueta, un ID de elemento de destino y una clase 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 solo añade una etiqueta a la lista de tipos de exportación utilizada en lugares como el contador de tipos. Registrar un nuevo tipo de exportación totalmente funcional también significa añadir un caso coincidente al despachador interno del exportador, lo cual no es algo que un solo filtro pueda hacer. Si necesitas un tipo de exportación genuinamente nuevo, abre un ticket de soporte para discutir tu caso de uso.

Preguntas Frecuentes

¿Necesito conocer los detalles internos del plugin para usar estos hooks?
No. Solo necesitas el nombre del hook, cuándo se dispara y qué argumentos pasa, todo lo cual está listado arriba. No necesitas leer el código fuente del plugin para usar un hook.
¿Cambiarán estos hooks en una futura actualización?
Los nombres de los hooks se consideran parte de la API pública del plugin y Visser Labs evita renombrarlos sin previo aviso. Dicho esto, siempre prueba el código personalizado en un sitio de staging después de actualizar el plugin.
¿Dónde añado este código?
Añádelo a un plugin personalizado (específico del sitio), o al functions.php de tu tema activo si no estás usando una configuración de tema hijo. No edites los archivos de Store Exporter Deluxe directamente. Cualquier cambio allí se perderá en la próxima actualización del plugin.

¿Necesitas más ayuda?

Si estás en Store Exporter Deluxe y necesitas ayuda con una personalización específica, abre un ticket de soporte y nuestro equipo podrá indicarte el hook correcto para tu caso de uso.

Si estás usando el plugin gratuito Store Exporter, haz tu pregunta en el foro de soporte de WordPress.org.

¿Fue útil este artículo?

Artículos relacionados

Recursos y ayuda