Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}