Hola @charlie0412!
Pues no conozco ningún plugin que lo haga, pero he buscado un poco y he encontrado el código para calcularlo y mostrarlo 🙂
https://stackoverflow.com/questions/52966776/display-customer-total-spent-without-shipping-in-woocommerce
Básicamente, esta es la función que habría que llamar para calcular y mostrar ese total:
public static function users_custom_column( $value, $column_name, $user_id ) {
if ( 'money_spent' == $column_name ) {
global $wpdb;
$statuses = array_map( 'esc_sql', wc_get_is_paid_statuses() );
$spent = $wpdb->get_var("
SELECT SUM(pm2.meta_value - (pm3.meta_value + pm4.meta_value))
FROM $wpdb->posts as p
LEFT JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id
LEFT JOIN {$wpdb->postmeta} AS pm2 ON p.ID = pm2.post_id
LEFT JOIN {$wpdb->postmeta} AS pm3 ON p.ID = pm3.post_id
LEFT JOIN {$wpdb->postmeta} AS pm4 ON p.ID = pm4.post_id
WHERE pm.meta_key = '_customer_user'
AND pm.meta_value = '" . esc_sql( $user_id ) . "'
AND p.post_type = 'shop_order'
AND p.post_status IN ( 'wc-" . implode( "','wc-", $statuses ) . "' )
AND pm2.meta_key = '_order_total'
AND pm3.meta_key = '_order_tax'
AND pm4.meta_key = '_order_shipping'
");
if ( ! $spent ) {
$spent = 0;
}
$value = wc_price( $spent );
}
return $value;
}
Espero que esto te ayude, cuéntanos qué tal y así otras personas pueden aprender de tu experiencia 🙂
Ya nos dices!
Muchas gracias por responder y disculpen la demora, pues buscando en la red he encontrado el siguiente código que ha resuelto mi problema:
function filter_woocommerce_calculated_total( $total, $cart ) {
$shipping_total = $cart->get_shipping_total();
return $total - $shipping_total;
}
add_filter( 'woocommerce_calculated_total', 'filter_woocommerce_calculated_total', 10, 2 );
Muchas gracias a ti, @charlie0412 por volver y contarnos cómo lo solucionaste! Seguro que muchas personas lo agradecerán 🙂
Si no te importa, podrías marcar el hilo como resuelto? Es para el buen funcionamiento del foro.
Muchas gracias y buena semana!