File "CustomizerApi.php"
Full Path: /home/pumpbmko/public_html/themes/momota/lib/colibriwp/src/Customizer/CustomizerApi.php
File size: 1.47 KB
MIME-type: text/x-php
Charset: utf-8
<?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,
)
);
}
}