En algunos mayoristas o algunos nichos de productos muestran cuántas unidades se han vendido de cada uno en la ficha de producto. Así que ¿Cómo podemos mostrarlo de manera fiable?¿Y de manera automática sin tener que preocuparnos?
Pues lo vamos a conseguir y sin ningún plugin!
¿Por qué implementar esta funcionalidad?
Mostrar las unidades vendidas tanto en la ficha de producto (backend) como en la lista de productos del admin no es un adorno: es un atajo operativo que transforma datos dispersos en decisiones rápidas.
- Priorización y foco en catálogo: Ver de un vistazo qué productos venden más te permite decidir dónde invertir tiempo: mejorar fotos y descripciones de los top sellers, revisar atributos y variantes con peor desempeño o retirar referencias que no traccionan.
- Pricing y promociones con criterio: El histórico de ventas por producto ayuda a detectar elasticidad del precio: si un artículo no despega, puedes probar descuentos, packs o cupones; si uno arrasa, quizá convenga proteger márgenes, limitar promociones o crear bundles premium.
- Planificación de stock y compras: Cruzar ventas acumuladas con stock disponible te da señales tempranas: reaprovisionar con antelación los productos que se agotan y contener inmovilizado en los de baja rotación. En picos (rebajas, Black Friday) reduce roturas y sobrecostes urgentes.
- Diagnóstico rápido de problemas:Caídas bruscas en unidades vendidas pueden indicar incidencias de catálogo: cambios en SEO, variaciones sin stock, fotos o precios erróneos, reseñas negativas, errores de tracking, etc. Detectarlo desde el listado ahorra muchas horas de búsqueda.
- Coordinación entre equipos: Marketing, catálogo, atención al cliente y compras comparten una métrica visible y consistente. Esto simplifica reuniones, priorización de tareas y argumentarios (por ejemplo, qué productos destacar en campañas o en la home).
- Argumentos de venta y prueba social: Saber qué productos son superventas facilita decidir dónde activar mensajes tipo “más de X vendidos” (en front) o reforzar recomendaciones relacionadas. Hecho con cabeza, aumenta la conversión sin depender de suposiciones.
- Reporting más ágil sin salir de WooCommerce: Para tareas del día a día no siempre hace falta exportar a hojas de cálculo: la columna de “Vendidas” en el listado resuelve consultas rápidas y reduce la dependencia de informes complejos.
Añadir la cantidad de productos vendidos en la ficha de producto de Woocommerce
Añade este código al Functions.php de tu tema o bien en tu plugin de funcionalidades, tienes esta guía:
add_action( 'woocommerce_single_product_summary', 'dl_unidades_vendidas_woocommerce', 20 );
function dl_unidades_vendidas_woocommerce() {
global $product;
$units_sold = get_post_meta( $product->id, 'total_sales', true );
echo '
<p>' . '<i class="fa fa-cart-plus" aria-hidden="true"></i>' . sprintf( __( 'Unidades Vendidas: %s', 'woocommerce' ), $units_sold ) . '</p>
';
}
Con esto obtendremos el siguiente resultado en nuestros productos de forma automática:

El icono lo podéis cambiar en el mismo texto por el que queráis.
Añadir la cantidad de productos vendidos en la edición ficha de producto de Woocommerce
Por otro lado, si lo que quieres es mostrar los productos que se han vendido al editar el producto como muestro en la imagen o en el vídeo, te dejo el siguiente código:
add_action( 'post_submitbox_misc_actions', function () {
global $post;
if ( ! $post || 'product' !== $post->post_type ) {
return;
}
if ( ! function_exists( 'wc_get_product' ) ) {
return;
}
$product = wc_get_product( $post->ID );
if ( ! $product ) {
return;
}
$total_sold = 0;
if ( $product->is_type( 'variable' ) ) {
foreach ( $product->get_children() as $variation_id ) {
$total_sold += (int) get_post_meta( $variation_id, 'total_sales', true );
}
} else {
$total_sold = (int) get_post_meta( $post->ID, 'total_sales', true );
}
?>
<div class="misc-pub-section" id="dl-unidades-vendidas">
<span class="dashicons dashicons-chart-line" style="vertical-align: text-bottom; margin-right: 6px;"></span>
<strong><?php echo esc_html__( 'Unidades vendidas:', 'your-textdomain' ); ?></strong>
<?php echo esc_html( number_format_i18n( $total_sold ) ); ?>
</div>
<?php
} );
Obteniendo el siguiente resultado:

Añadir la cantidad de productos vendidos en la lista de productos de WooCommerce
Esta aprte también se podría ver desde las estadísticas de WooCommerce, pero por comodidad podemos añadir también una columna en la edición del listado de producto para saberlo desde fuera como muestro aquí:

Si necesitas esta columna no dudes en añadir este snippet a tu tienda online:
if ( is_admin() ) {
add_filter( 'manage_edit-product_columns', function( $columns ) {
$new = [];
foreach ( $columns as $key => $label ) {
$new[ $key ] = $label;
if ( 'is_in_stock' === $key || 'stock' === $key || 'price' === $key ) {
$new['dl_units_sold'] = __( 'Vendidas', 'your-textdomain' );
}
}
if ( ! isset( $new['dl_units_sold'] ) ) {
$new['dl_units_sold'] = __( 'Vendidas', 'your-textdomain' );
}
return $new;
}, 20 );
add_action( 'manage_product_posts_custom_column', function( $column, $post_id ) {
if ( 'dl_units_sold' !== $column ) {
return;
}
if ( ! function_exists( 'wc_get_product' ) ) {
echo '-';
return;
}
static $cache = [];
if ( isset( $cache[ $post_id ] ) ) {
echo esc_html( number_format_i18n( $cache[ $post_id ] ) );
return;
}
$product = wc_get_product( $post_id );
if ( ! $product ) {
echo '-';
return;
}
$total_sold = 0;
if ( $product->is_type( 'variable' ) ) {
$variation_ids = $product->get_children();
if ( ! empty( $variation_ids ) ) {
foreach ( $variation_ids as $v_id ) {
$total_sold += (int) get_post_meta( $v_id, 'total_sales', true );
}
} else {
$total_sold = (int) get_post_meta( $post_id, 'total_sales', true );
}
} else {
$total_sold = (int) get_post_meta( $post_id, 'total_sales', true );
}
$cache[ $post_id ] = $total_sold;
echo esc_html( number_format_i18n( $total_sold ) );
}, 10, 2 );
add_filter( 'manage_edit-product_sortable_columns', function( $sortable_columns ) {
$sortable_columns['dl_units_sold'] = 'dl_units_sold';
return $sortable_columns;
});
add_action( 'pre_get_posts', function( $query ) {
if ( ! is_admin() || ! $query->is_main_query() ) {
return;
}
$orderby = $query->get( 'orderby' );
if ( 'dl_units_sold' === $orderby ) {
$query->set( 'meta_key', 'total_sales' );
$query->set( 'orderby', 'meta_value_num' );
}
}, 10 );
}
add_action( 'admin_head', function() {
$screen = get_current_screen();
if ( isset( $screen->id ) && 'edit-product' === $screen->id ) : ?>
<style>
.column-dl_units_sold { width: 100px; text-align: right; }
.column-dl_units_sold .wrap { text-align: right; }
</style>
<?php endif;
});
Cualquier duda o implementar este y otros snippets lo tenéis incluidos en mis servicios de mantenimiento de Woocommerce.






hola, xopie el codigo que pusiste pero aun asi no muestra la cantidad de productos vendidos, el tema que estoy usando es el divi.
Hola Lespaul,
Tienes la ficha de producto personalizada con Divi? De ser así los ajustes aplicados no funcionarían.
Un saludo