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();
        }
示例#2
0
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 
        }