/** * @param Resource_Booking_DB $rb_db * @param $resource_id * @param string $format Either 'json' or 'array' * @return mixed */ public static function get_resource_info_or_die(Resource_Booking_DB $rb_db, $resource_id, $format = "json") { $resourceA = $rb_db->get_resource_info($resource_id); if (!$resourceA || count($resourceA) != 1) { // And die wp_send_json_error(array("message" => "Wrong resource")); } $resource = $resourceA[0]; $resourceMetaA = $rb_db->get_resource_meta($resource_id); $response = new stdClass(); $response->success = true; $response->resourceInfo = array("resource_id" => $resource->ID, "title" => $resource->post_title); foreach ($resourceMetaA as $meta) { switch ($meta->meta_key) { case Resource_Booking_Res_Mb::RESOURCE_TYPE: $response->resourceInfo["resource_type"] = $meta->meta_value; break; case Resource_Booking_Res_Mb::PAGE_DESCRIPTION_ID: $response->resourceInfo["page_description_id"] = $meta->meta_value; break; case Resource_Booking_Res_Mb::OPEN_FROM: $response->resourceInfo["open_from"] = $meta->meta_value; break; case Resource_Booking_Res_Mb::OPEN_TILL: $response->resourceInfo["open_till"] = $meta->meta_value; break; case Resource_Booking_Res_Mb::WORKS_OVERNIGHT: $response->resourceInfo["works_overnight"] = $meta->meta_value; break; case Resource_Booking_Res_Mb::WORKS_HOLIDAYS: $response->resourceInfo["works_holidays"] = $meta->meta_value; break; case Resource_Booking_Res_Mb::SLOT_MIN: $response->resourceInfo["slot_min"] = $meta->meta_value; break; case Resource_Booking_Res_Mb::SLOT_MAX: $response->resourceInfo["slot_max"] = $meta->meta_value; break; case Resource_Booking_Res_Mb::SLOT_LENGTH: $response->resourceInfo["slot_length"] = $meta->meta_value; break; default: break; } } if (!isset($response->resourceInfo["resource_type"])) { $response->resourceInfo["resource_type"] = Resource_Booking_Res_Mb::$resource_type["default"]; } if (!isset($response->resourceInfo["page_description_id"])) { $response->resourceInfo["page_description_id"] = Resource_Booking_Res_Mb::$resource_page_description_id["default"]; } else { $link = get_permalink($response->resourceInfo["page_description_id"]); if ($link) { $response->resourceInfo["page_description_id"] = $link; } else { $response->resourceInfo["page_description_id"] = Resource_Booking_Res_Mb::$resource_page_description_id["default"]; } } if (!isset($response->resourceInfo["open_from"])) { $response->resourceInfo["open_from"] = Resource_Booking_Res_Mb::$resource_open_from["default"]; } if (!isset($response->resourceInfo["open_till"])) { $response->resourceInfo["open_till"] = Resource_Booking_Res_Mb::$resource_open_till["default"]; } if (!isset($response->resourceInfo["works_overnight"])) { $response->resourceInfo["works_overnight"] = Resource_Booking_Res_Mb::$resource_works_overnight["default"]; } if (!isset($response->resourceInfo["works_holidays"])) { $response->resourceInfo["works_holidays"] = Resource_Booking_Res_Mb::$resource_works_holidays["default"]; } if (!isset($response->resourceInfo["slot_min"])) { $response->resourceInfo["slot_min"] = Resource_Booking_Res_Mb::$resource_slot_min["default"]; } if (!isset($response->resourceInfo["slot_max"])) { $response->resourceInfo["slot_max"] = Resource_Booking_Res_Mb::$resource_slot_max["default"]; } if (!isset($response->resourceInfo["slot_length"])) { $response->resourceInfo["slot_length"] = Resource_Booking_Res_Mb::$resource_slot_length["default"]; } if ("json" == $format) { echo json_encode($response); wp_die(); // this is required to terminate immediately and return a proper response } else { return $response; } }