get_results( $wpdb->prepare(
"SELECT DATE(created_at) AS day, SUM(amount) AS total
FROM {$wpdb->prefix}vv_wallet_transactions
WHERE type='credit' AND user_id=1
AND created_at >= DATE_SUB(NOW(), INTERVAL %d DAY)
GROUP BY DATE(created_at) ORDER BY day ASC",
$period
) );
// Top vendors
$top_vendors = $wpdb->get_results( $wpdb->prepare(
"SELECT t.user_id, u.display_name, SUM(t.amount) AS total
FROM {$wpdb->prefix}vv_wallet_transactions t
JOIN {$wpdb->prefix}users u ON t.user_id = u.ID
WHERE t.type='credit' AND t.created_at >= DATE_SUB(NOW(), INTERVAL %d DAY)
AND t.user_id != 1
GROUP BY t.user_id ORDER BY total DESC LIMIT 10",
$period
) );
// Top products
$top_products = $wpdb->get_results( $wpdb->prepare(
"SELECT so.product_id, COUNT(*) AS orders
FROM {$wpdb->prefix}vv_system_orders so
WHERE so.created_at >= DATE_SUB(NOW(), INTERVAL %d DAY)
GROUP BY so.product_id ORDER BY orders DESC LIMIT 10",
$period
) );
// Cart conversion
$cart_count = (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}vv_cart_report WHERE created_at >= DATE_SUB(NOW(), INTERVAL %d DAY)", $period ) );
$order_count = (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}vv_system_orders WHERE created_at >= DATE_SUB(NOW(), INTERVAL %d DAY)", $period ) );
$conversion = $cart_count > 0 ? round( ( $order_count / $cart_count ) * 100, 1 ) : 0;
$labels = $data = [];
foreach ( $rev_rows as $r ) { $labels[] = date( 'M j', strtotime( $r->day ) ); $data[] = (float) $r->total; }
$vendor_labels = $vendor_data = [];
foreach ( $top_vendors as $v ) { $vendor_labels[] = $v->display_name; $vendor_data[] = (float) $v->total; }
?>
'7 Days',30=>'30 Days',90=>'90 Days',365=>'1 Year'] as $d=>$l ) : ?>
Cart-to-Order Conversion
%
carts → orders
Total Revenue (Commission)
Revenue Over Time
Top Vendors
Top Products by Orders
| Product | Orders |
| product_id) ); ?> | orders); ?> |
Top Vendors by Revenue
| Vendor | Revenue |
| display_name); ?> | total); ?> |
get_results( $wpdb->prepare(
"SELECT t.id, u.display_name, t.amount, t.type, t.description, t.created_at
FROM {$wpdb->prefix}vv_wallet_transactions t
JOIN {$wpdb->prefix}users u ON t.user_id = u.ID
WHERE t.created_at >= DATE_SUB(NOW(), INTERVAL %d DAY)
ORDER BY t.created_at DESC",
$period
) );
header( 'Content-Type: text/csv' );
header( 'Content-Disposition: attachment; filename="vendorverse-report-' . date('Y-m-d') . '.csv"' );
$out = fopen( 'php://output', 'w' );
fputcsv( $out, [ 'ID', 'User', 'Amount', 'Type', 'Description', 'Date' ] );
foreach ( $rows as $r ) {
fputcsv( $out, [ $r->id, $r->display_name, $r->amount, $r->type, $r->description, $r->created_at ] );
}
fclose( $out );
exit;
}
}