Please log in with a Shop Manager account to view orders.
'; } $nonce = wp_create_nonce('kitchen_orders_screen_nonce'); ob_start(); ?>
Overtime Kitchen Screen
Listening for new orders
Tip: keep this page open on the iPad. Use Guided Access so staff can’t leave the screen.
'Unauthorized'], 403); } check_ajax_referer('kitchen_orders_screen_nonce'); if (!class_exists('WooCommerce')) { wp_send_json_error(['message' => 'WooCommerce not active'], 400); } $after_id = isset($_POST['after_id']) ? absint($_POST['after_id']) : 0; $args = [ 'limit' => 15, 'orderby' => 'date', 'order' => 'DESC', 'status' => ['processing','on-hold','pending'], 'return' => 'objects', ]; $orders = wc_get_orders($args); $mapped = []; $newest_id = 0; $newest_unacked = 0; foreach ($orders as $order) { $id = $order->get_id(); if ($id > $newest_id) $newest_id = $id; if ($id > $after_id && $id > $newest_unacked) $newest_unacked = $id; $items = []; foreach ($order->get_items() as $item) { $meta = []; foreach ($item->get_meta_data() as $m) { $k = (string) $m->key; $v = (string) $m->value; if ($k && $v) $meta[] = $k . ': ' . $v; } $items[] = [ 'name' => $item->get_name(), 'qty' => (int) $item->get_quantity(), 'meta' => $meta, ]; } $shipping_methods = $order->get_shipping_methods(); $type = 'Pickup'; if (!empty($shipping_methods)) { $type = 'Delivery'; } $mapped[] = [ 'id' => $id, 'created' => $order->get_date_created() ? $order->get_date_created()->date('Y-m-d g:i A') : '', 'status_label' => wc_get_order_status_name($order->get_status()), 'total' => (float) $order->get_total(), 'customer_name' => trim($order->get_billing_first_name() . ' ' . $order->get_billing_last_name()), 'phone' => $order->get_billing_phone(), 'note' => $order->get_customer_note(), 'items' => $items, 'type' => $type ]; } wp_send_json_success([ 'orders' => $mapped, 'newest_id' => $newest_id, 'newest_unacked' => $newest_unacked ]); }