golden hour
/var/www/html/wp-content/plugins/weekly-class/api
⬆️ Go Up
Upload
File/Folder
Size
Actions
api.export.php
170 B
Del
OK
api.preview.php
1.62 KB
Del
OK
api.woo.php
23.42 KB
Del
OK
api.wp.bookings.php
1.76 KB
Del
OK
api.wp.settings.php
1.57 KB
Del
OK
ical.new.php
1.68 KB
Del
OK
Edit: api.wp.bookings.php
<?php class WcsBookingsWPRestApi { private $_version; private $_namespace; public function __construct(){ $this->_version = '1'; $this->_namespace = "weekly-class/v{$this->_version}"; add_action( 'rest_api_init', array( $this, 'register_api_routes' ) ); } function register_api_routes(){ register_rest_route( $this->_namespace, '/bookings', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_bookings' ), 'permission_callback' => array( $this, 'get_private_data_permissions_check' ) ), )); } public function get_bookings( $request ){ $start = strtotime( $request->get_param( 'start' ) ) ; $end = strtotime( $request->get_param( 'end' ) ); $orders = array(); $classes = new WP_Query( array( 'post_status' => array( 'publish' ), 'posts_per_page' => -1, 'post_type' => 'class', 'meta_key' => '_wcs_timestamp', 'orderby' => 'meta_value_num', 'order' => 'ASC' ) ); if ( $classes->have_posts() ) : while ( $classes->have_posts() ) : $classes->the_post(); $class = new CurlyWeeklyClassEvent( $classes->post, $start, $end ); $orders = array_merge( $orders, $class->render_bookings() ); endwhile; endif; wp_reset_query(); usort( $orders, function( $a, $b ){ return $a['timestamp']>$b['timestamp']; }); return rest_ensure_response( $orders ); } function get_private_data_permissions_check() { if ( ! current_user_can('edit_posts') ) { return new WP_Error( 'rest_forbidden', esc_html__( 'OMG you can not view private data.', 'my-text-domain' ), array( 'status' => 401 ) ); } return true; } } new WcsBookingsWPRestApi();
Save