
Cómo agregar campos en la sección de exportar productos en WooCommerce
WooCommerce permite exportar productos desde el administrador de WordPress, pero en su configuración predeterminada no ofrece la posibilidad de agregar filtros personalizados. En este artículo, te mostraré cómo agregar campos personalizados en la sección de exportación de productos y cómo utilizarlos como filtros para refinar la exportación.
Como ejemplo, agregaremos un campo de selección múltiple para filtrar por etiquetas de productos (product_tags
).
Agregar un campo de selección múltiple en la sección de exportación
Para agregar un campo personalizado en la sección de exportación, debemos usar el hook woocommerce_product_export_row
, que nos permite insertar elementos HTML dentro del formulario de exportación.
<?php add_action( 'woocommerce_product_export_row', function() { $tags = get_terms( array( 'taxonomy' => 'product_tag', 'hide_empty' => false ) ); if ( empty( $tags ) || is_wp_error( $tags ) ) { return; } echo '<tr>'; echo '<th><label for="product_tags">' . __( 'Product Tags', 'woocommerce' ) . '</label></th>'; echo '<td>'; echo '<select id="product_tags" name="product_tags[]" class="wc-enhanced-select" multiple style="width: 100%; max-width: 300px;">'; foreach ( $tags as $tag ) { echo '<option value="' . esc_attr( $tag->slug ) . '">' . esc_html( $tag->name ) . '</option>'; } echo '</select>'; echo '</td>'; echo '</tr>'; } );
Esto añadirá un campo de selección múltiple donde los usuarios podrán elegir etiquetas de productos antes de exportarlos.
Aplicar un filtro basado en el campo agregado
Una vez agregado el campo, debemos usar el hook woocommerce_product_export_product_query_args
para modificar la consulta de exportación y filtrar los productos según la selección del usuario.
<?php add_filter( 'woocommerce_product_export_product_query_args', function( $args ) { if ( isset( $_POST['form'] ) ) { parse_str( $_POST['form'], $form_data ); if ( isset( $form_data['product_tags'] ) && ! empty( $form_data['product_tags'] ) ) { $args['tax_query'][] = array( 'taxonomy' => 'product_tag', 'field' => 'slug', 'terms' => (array) $form_data['product_tags'] ); } } return $args; } );
Esto asegura que solo se exporten los productos que tienen las etiquetas seleccionadas en el filtro.
Con estos fragmentos de código, puedes agregar campos personalizados en la sección de exportación de WooCommerce y utilizarlos para filtrar los productos antes de exportarlos. En este ejemplo, hemos agregado un filtro basado en etiquetas de productos, pero puedes aplicar la misma metodología para otros campos personalizados según tus necesidades.