function eme_get_booked_seats_by_person_event_id($person_id, $event_id) { global $wpdb; if (eme_is_event_multiseats($event_id)) { return array_sum(eme_get_booked_multiseats_by_person_event_id($person_id, $event_id)); } $bookings_table = $wpdb->prefix . BOOKINGS_TBNAME; $sql = $wpdb->prepare("SELECT COALESCE(SUM(booking_seats),0) AS booked_seats FROM {$bookings_table} WHERE person_id = %d AND event_id = %d", $person_id, $event_id); return $wpdb->get_var($sql); }
function eme_replace_attendees_placeholders($format, $event, $attendee, $target = "html", $lang = '') { preg_match_all("/#_?[A-Za-z0-9_]+(\\{.*?\\})?(\\{.*?\\})?/", $format, $placeholders); usort($placeholders[0], 'sort_stringlenth'); foreach ($placeholders[0] as $result) { $replacement = ''; $found = 1; $orig_result = $result; if (preg_match('/#_(ATTEND)?ID/', $result)) { $replacement = $attendee['person_id']; $replacement = eme_sanitize_html($replacement); if ($target == "html") { $replacement = apply_filters('eme_general', $replacement); } else { $replacement = apply_filters('eme_general_rss', $replacement); } } elseif (preg_match('/#_(ATTEND)?(NAME|LASTNAME|FIRSTNAME|ZIP|CITY|STATE|COUNTRY|ADDRESS1|ADDRESS2|PHONE|EMAIL)/', $result)) { $field = preg_replace("/#_ATTEND|#_/", "", $result); $field = strtolower($field); if ($field == "name") { $field = "lastname"; } $replacement = $attendee[$field]; $replacement = eme_sanitize_html($replacement); if ($target == "html") { $replacement = apply_filters('eme_general', $replacement); } else { $replacement = apply_filters('eme_general_rss', $replacement); } } elseif (preg_match('/#_ATTENDSPACES$/', $result)) { $replacement = eme_get_booked_seats_by_person_event_id($attendee['person_id'], $event['event_id']); } elseif (preg_match('/#_ATTENDSPACES\\{(\\d+)\\}$/', $result, $matches)) { $field_id = intval($matches[1]) - 1; $replacement = 0; if (eme_is_multi($event['event_seats'])) { $seats = eme_get_booked_multiseats_by_person_event_id($attendee['person_id'], $event['event_id']); if (array_key_exists($field_id, $seats)) { $replacement = $seats[$field_id]; } } } elseif (preg_match('/#_ATTENDNICKNAME$/', $result)) { if ($attendee['wp_id'] > 0) { $user = get_userdata($attendee['wp_id']); if ($user) { $replacement = eme_sanitize_html($user->user_nicename); } } } elseif (preg_match('/#_ATTENDDISPNAME$/', $result)) { if ($attendee['wp_id'] > 0) { $user = get_userdata($attendee['wp_id']); if ($user) { $replacement = eme_sanitize_html($user->display_name); } } } else { $found = 0; } if ($found) { $format = str_replace($orig_result, $replacement, $format); } } // now, replace any language tags found in the format itself $format = eme_translate($format, $lang); return do_shortcode($format); }