fix: Update dashboard data queries to use meta relationships for revenue
- Fixed get_total_tickets_sold() to use _tribe_tpp_event meta instead of post_parent - Fixed get_total_revenue() to check multiple price meta keys (_tribe_tpp_ticket_price, _paid_price, _tribe_tpp_price) - Updated events table queries to properly calculate sold tickets and revenue using meta relationships - TEC doesn't use post_parent for attendee-event relationships, it uses postmeta This fixes the issue where ticket sales and revenue numbers were not showing in the dashboard. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
669f5d5650
commit
8121815ded
1 changed files with 41 additions and 16 deletions
|
|
@ -117,11 +117,12 @@ class HVAC_Dashboard_Data {
|
|||
public function get_total_tickets_sold() {
|
||||
global $wpdb;
|
||||
|
||||
// Use direct database query to count attendees for user's events
|
||||
// Use meta relationships since TEC doesn't use post_parent for attendees
|
||||
$count = $wpdb->get_var( $wpdb->prepare(
|
||||
"SELECT COUNT(*) FROM {$wpdb->posts} p
|
||||
INNER JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id AND pm.meta_key = '_tribe_tpp_event'
|
||||
WHERE p.post_type = %s
|
||||
AND p.post_parent IN (
|
||||
AND pm.meta_value IN (
|
||||
SELECT ID FROM {$wpdb->posts}
|
||||
WHERE post_type = %s
|
||||
AND post_author = %d
|
||||
|
|
@ -143,12 +144,23 @@ class HVAC_Dashboard_Data {
|
|||
public function get_total_revenue() {
|
||||
global $wpdb;
|
||||
|
||||
// Use direct database query to sum revenue from attendees for user's events
|
||||
// Use meta relationships to sum revenue - check multiple possible price fields
|
||||
$revenue = $wpdb->get_var( $wpdb->prepare(
|
||||
"SELECT SUM(CAST(pm.meta_value AS DECIMAL(10,2))) FROM {$wpdb->posts} p
|
||||
LEFT JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id AND pm.meta_key = '_tribe_tpp_ticket_price'
|
||||
"SELECT SUM(
|
||||
CASE
|
||||
WHEN pm_price1.meta_value IS NOT NULL THEN CAST(pm_price1.meta_value AS DECIMAL(10,2))
|
||||
WHEN pm_price2.meta_value IS NOT NULL THEN CAST(pm_price2.meta_value AS DECIMAL(10,2))
|
||||
WHEN pm_price3.meta_value IS NOT NULL THEN CAST(pm_price3.meta_value AS DECIMAL(10,2))
|
||||
ELSE 0
|
||||
END
|
||||
)
|
||||
FROM {$wpdb->posts} p
|
||||
INNER JOIN {$wpdb->postmeta} pm_event ON p.ID = pm_event.post_id AND pm_event.meta_key = '_tribe_tpp_event'
|
||||
LEFT JOIN {$wpdb->postmeta} pm_price1 ON p.ID = pm_price1.post_id AND pm_price1.meta_key = '_tribe_tpp_ticket_price'
|
||||
LEFT JOIN {$wpdb->postmeta} pm_price2 ON p.ID = pm_price2.post_id AND pm_price2.meta_key = '_paid_price'
|
||||
LEFT JOIN {$wpdb->postmeta} pm_price3 ON p.ID = pm_price3.post_id AND pm_price3.meta_key = '_tribe_tpp_price'
|
||||
WHERE p.post_type = %s
|
||||
AND p.post_parent IN (
|
||||
AND pm_event.meta_value IN (
|
||||
SELECT ID FROM {$wpdb->posts}
|
||||
WHERE post_type = %s
|
||||
AND post_author = %d
|
||||
|
|
@ -294,14 +306,27 @@ class HVAC_Dashboard_Data {
|
|||
p.post_date,
|
||||
COALESCE(pm_start.meta_value, p.post_date) as event_date,
|
||||
COALESCE(
|
||||
(SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_type = 'tribe_tpp_attendees' AND post_parent = p.ID),
|
||||
(SELECT COUNT(*)
|
||||
FROM {$wpdb->posts} attendees
|
||||
INNER JOIN {$wpdb->postmeta} pm_event ON attendees.ID = pm_event.post_id AND pm_event.meta_key = '_tribe_tpp_event'
|
||||
WHERE attendees.post_type = 'tribe_tpp_attendees' AND pm_event.meta_value = p.ID),
|
||||
0
|
||||
) as sold,
|
||||
COALESCE(
|
||||
(SELECT SUM(CAST(pm_price.meta_value AS DECIMAL(10,2)))
|
||||
(SELECT SUM(
|
||||
CASE
|
||||
WHEN pm_price1.meta_value IS NOT NULL THEN CAST(pm_price1.meta_value AS DECIMAL(10,2))
|
||||
WHEN pm_price2.meta_value IS NOT NULL THEN CAST(pm_price2.meta_value AS DECIMAL(10,2))
|
||||
WHEN pm_price3.meta_value IS NOT NULL THEN CAST(pm_price3.meta_value AS DECIMAL(10,2))
|
||||
ELSE 0
|
||||
END
|
||||
)
|
||||
FROM {$wpdb->posts} attendees
|
||||
LEFT JOIN {$wpdb->postmeta} pm_price ON attendees.ID = pm_price.post_id AND pm_price.meta_key = '_tribe_tpp_ticket_price'
|
||||
WHERE attendees.post_type = 'tribe_tpp_attendees' AND attendees.post_parent = p.ID),
|
||||
INNER JOIN {$wpdb->postmeta} pm_event ON attendees.ID = pm_event.post_id AND pm_event.meta_key = '_tribe_tpp_event'
|
||||
LEFT JOIN {$wpdb->postmeta} pm_price1 ON attendees.ID = pm_price1.post_id AND pm_price1.meta_key = '_tribe_tpp_ticket_price'
|
||||
LEFT JOIN {$wpdb->postmeta} pm_price2 ON attendees.ID = pm_price2.post_id AND pm_price2.meta_key = '_paid_price'
|
||||
LEFT JOIN {$wpdb->postmeta} pm_price3 ON attendees.ID = pm_price3.post_id AND pm_price3.meta_key = '_tribe_tpp_price'
|
||||
WHERE attendees.post_type = 'tribe_tpp_attendees' AND pm_event.meta_value = p.ID),
|
||||
0
|
||||
) as revenue,
|
||||
50 as capacity
|
||||
|
|
|
|||
Loading…
Reference in a new issue