From d7773b5d04dd1e469904500d0431b76c8282d732 Mon Sep 17 00:00:00 2001 From: bengizmo Date: Fri, 23 May 2025 14:13:31 -0300 Subject: [PATCH] fix: Resolve PHP errors in Certificate Manager SQL query construction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix duplicate WHERE clause construction in get_user_certificate_count method - Remove incorrect AND operator placement in search query - Streamline SQL query building logic for better reliability - All certificate functionality now working without PHP errors - Comprehensive testing confirms all pages load correctly 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../class-certificate-manager.php | 59 ++++++------------- 1 file changed, 18 insertions(+), 41 deletions(-) diff --git a/wordpress-dev/wordpress/wp-content/plugins/hvac-community-events/includes/certificates/class-certificate-manager.php b/wordpress-dev/wordpress/wp-content/plugins/hvac-community-events/includes/certificates/class-certificate-manager.php index 5967435e..0a6d1d07 100644 --- a/wordpress-dev/wordpress/wp-content/plugins/hvac-community-events/includes/certificates/class-certificate-manager.php +++ b/wordpress-dev/wordpress/wp-content/plugins/hvac-community-events/includes/certificates/class-certificate-manager.php @@ -683,54 +683,31 @@ class HVAC_Certificate_Manager { return 0; } - // Build WHERE clause - $where_clause = !empty($where) ? "WHERE " . implode(" AND ", $where) : ""; - // Add WHERE clause for attendee search if provided if (!empty($args['search_attendee'])) { $search_term = '%' . $wpdb->esc_like($args['search_attendee']) . '%'; - if (empty($where)) { - $where[] = "( - certificate_id IN ( - SELECT c.certificate_id - FROM {$wpdb->prefix}hvac_certificates c - JOIN {$wpdb->postmeta} pm ON c.attendee_id = pm.post_id - WHERE pm.meta_key = '_tribe_tickets_full_name' AND pm.meta_value LIKE %s - ) - OR - certificate_id IN ( - SELECT c.certificate_id - FROM {$wpdb->prefix}hvac_certificates c - JOIN {$wpdb->postmeta} pm ON c.attendee_id = pm.post_id - WHERE pm.meta_key = '_tribe_tickets_email' AND pm.meta_value LIKE %s - ) - )"; - $where_values[] = $search_term; - $where_values[] = $search_term; - } else { - $where[] = "AND ( - certificate_id IN ( - SELECT c.certificate_id - FROM {$wpdb->prefix}hvac_certificates c - JOIN {$wpdb->postmeta} pm ON c.attendee_id = pm.post_id - WHERE pm.meta_key = '_tribe_tickets_full_name' AND pm.meta_value LIKE %s - ) - OR - certificate_id IN ( - SELECT c.certificate_id - FROM {$wpdb->prefix}hvac_certificates c - JOIN {$wpdb->postmeta} pm ON c.attendee_id = pm.post_id - WHERE pm.meta_key = '_tribe_tickets_email' AND pm.meta_value LIKE %s - ) - )"; - $where_values[] = $search_term; - $where_values[] = $search_term; - } + $where[] = "( + certificate_id IN ( + SELECT c.certificate_id + FROM {$wpdb->prefix}hvac_certificates c + JOIN {$wpdb->postmeta} pm ON c.attendee_id = pm.post_id + WHERE pm.meta_key = '_tribe_tickets_full_name' AND pm.meta_value LIKE %s + ) + OR + certificate_id IN ( + SELECT c.certificate_id + FROM {$wpdb->prefix}hvac_certificates c + JOIN {$wpdb->postmeta} pm ON c.attendee_id = pm.post_id + WHERE pm.meta_key = '_tribe_tickets_email' AND pm.meta_value LIKE %s + ) + )"; + $where_values[] = $search_term; + $where_values[] = $search_term; } // Build WHERE clause - $where_clause = !empty($where) ? "WHERE " . implode(" ", $where) : ""; + $where_clause = !empty($where) ? "WHERE " . implode(" AND ", $where) : ""; // Build final query $query = "SELECT COUNT(*) FROM {$wpdb->prefix}hvac_certificates $where_clause";