public function display_available_instruction_devices() { global $post; $query_arg = array('post_type' => 'device', 'meta_query' => array('relation' => 'OR', array('key' => 'device_status', 'value' => 'online', 'compare' => '='))); $device_query = new WP_Query($query_arg); $user_id = get_current_user_id(); $devices_availabel = false; get_current_user_id(); if ($device_query->have_posts()) { echo '<p>Hier werden dir die verfügbaren ' . fablab_get_captions('devices_caption') . ' für ' . fablab_get_captions('instructions_caption') . ' angezeigt:</p>'; echo '<div id="fl-getticket" class="device-list">'; while ($device_query->have_posts()) { $device_query->the_post(); if (!get_user_meta($user_id, $post->ID, true) && !user_has_ticket($user_id, $post->ID, 'instruction')) { ?> <div class="fl-device-element get-instruction" data-device-id="<?php echo $post->ID; ?> " data-device-name="<?php echo get_device_title_by_id($post->ID); ?> "> <div class="fl-device-element-content"> <h2><?php echo $post->post_title; ?> </h2> <p>Nächste <?php echo fablab_get_captions('instruction_caption'); ?> : <b><?php echo next_instruction($post->ID); ?> </b></p> <p>Ich möchte für dieses <?php echo fablab_get_captions('device_caption'); ?> eine <?php echo fablab_get_captions('instruction_caption'); ?> </p> </div> </div> <?php $devices_availabel = true; } } if (!$devices_availabel) { echo '<p class="device-message">Keine ' . fablab_get_captions('instruction_requests_caption') . ' verfügbar!</p>'; } echo '</div>'; } wp_reset_query(); }
function update_ticket() { $device_id = sanitize_text_field($_POST['device_id']); $duration = sanitize_text_field($_POST['duration']); $ticket_id = sanitize_text_field($_POST['ticket_id']); $user_id = get_current_user_id(); $options = fablab_get_option(); if (get_ticket_device($ticket_id) != $device_id && user_has_ticket($user_id, $device_id, 'device')) { die(false); } //valide input if ($duration > $options['ticket_max_time'] || is_no_device_entry($device_id) || !is_ticket_entry($ticket_id) || !has_ticket_update_permission($ticket_id)) { die(false); } if (intval($duration) && intval($ticket_id)) { update_post_meta($ticket_id, 'device_id', $device_id); update_post_meta($ticket_id, 'duration', $duration); } else { die('naN'); return; } die(true); }
public function display_available_devices($permission_needed) { global $post; $query_arg = array('post_type' => 'device', 'meta_query' => array('relation' => 'OR', array('key' => 'device_status', 'value' => 'online', 'compare' => '='))); $device_query = new WP_Query($query_arg); $user_id = get_current_user_id(); $devices_availabel = false; if (!$device_query->have_posts()) { echo '<p class="device-message">Es sind keine ' . fablab_get_captions('devices_caption') . ' online!</p>'; wp_reset_query(); return; } echo '<p>Hier werden dir die verfügbaren ' . fablab_get_captions('devices_caption') . ' angezeigt:</p>'; echo '<div id="fl-getticket" class="device-list">'; while ($device_query->have_posts()) { $device_query->the_post(); if ((get_user_meta($user_id, $post->ID, true) || !$permission_needed) && !user_has_ticket($user_id, $post->ID, 'device')) { $waiting = get_waiting_time_and_persons($post->ID); $color = get_post_meta($post->ID, 'device_color', true); ?> <div class="fl-device-element get-ticket" style="border: 6px solid <?php echo $color; ?> ; background-color: <?php echo $color; ?> ;" data-device-id="<?php echo $post->ID; ?> " data-device-name="<?php echo get_device_title_by_id($post->ID); ?> "> <div class="fl-device-element-content"> <h2><?php echo $post->post_title; ?> </h2> <p id="waiting-time">Wartende Personen: <b><?php echo $waiting['persons']; ?> </b></br> Vorraussichtlich Wartezeit: <b><?php echo get_post_time_string($waiting['time'], true); ?> </b></p> </div> </div> <?php $devices_availabel = true; } } echo '</div>'; if (!$devices_availabel) { echo '<p class="device-message">Zurzeit kannst du keine ' . fablab_get_captions('tickets_caption') . ' ziehen!</p>'; wp_reset_query(); return; } wp_reset_query(); // Display overlay get Ticket ?> <div id="overlay-get-ticket" class="fl-overlay" hidden> <div id="device-get-ticket-box" class="device-ticket" hidden action="" metod="POST"> <a href="#" class="close">x</a> <h2><?php echo fablab_get_captions('ticket_caption'); ?> bestätigen</h2> <p id="get-ticket-device-name"></p> <input type="hidden" id="get-ticket-device-id" value=""> <div id="get-ticket-device-content"></div> <p>Dauer: <select id="get-ticket-time-select"></select></p> <input type="submit" id="submit-ticket" class="button-primary" value="<?php echo fablab_get_captions('ticket_caption'); ?> ziehen"/> <input type="submit" id="cancel-ticket" class="button-primary" value="Abbrechen"/> </div> <div id="overlay-background" class="fl-overlay-background"></div> </div> <?php }