Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
firepot
/
themes
/
momota
/
lib
/
colibriwp
/
src
/
Customizer
:
CustomizerApi.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace ColibriWP\Theme\Customizer; use ColibriWP\Theme\Core\Hooks; use WP_REST_Request; use WP_REST_Response; class CustomizerApi { const REST_NAMESPACE = 'colibri_theme/v1'; public function __construct() { $that = $this; add_action( 'rest_api_init', function () use ( $that ) { foreach ( $that->getRoutes() as $route => $data ) { $data['callback'] = array( $that, $data['callback'] ); $data['permission_callback'] = function () { return current_user_can( 'edit_theme_options' ); }; register_rest_route( static::REST_NAMESPACE, $route, $data ); } } ); Hooks::prefixed_add_filter( 'customizer_additional_js_data', function ( $data ) { $data['api_url'] = site_url( '?rest_route=/' . static::REST_NAMESPACE ); return $data; } ); } protected function getRoutes() { return array( '/attachment-data/(?P<id>\d+)' => array( 'method' => 'GET', 'callback' => 'getAttachmentData', ), ); } public function send( $data, $status = '200' ) { $reponse = new WP_REST_Response( $data ); $reponse->set_status( $status ); return $reponse; } public function getAttachmentData( WP_REST_Request $request ) { $id = $request->get_param( 'id' ); $url = wp_get_attachment_url( $id ); $type = wp_check_filetype( $url, wp_get_mime_types() ); $mime_type = $type['type']; return $this->send( array( 'url' => $url, 'mime_type' => $mime_type, ) ); } }