PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.2.3-beta1
Presto Player v2.2.3-beta1
4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Services / Blocks / YoutubeBlockService.php
presto-player / inc / Services / Blocks Last commit date
VimeoBlockService.php 5 years ago YoutubeBlockService.php 5 years ago
YoutubeBlockService.php
49 lines
1 <?php
2
3 namespace PrestoPlayer\Services\Blocks;
4
5 class YoutubeBlockService
6 {
7 public function register()
8 {
9 add_action('wp_get_attachment_url', [$this, 'replaceLink'], 10, 2);
10 }
11
12 public function replaceLink($url, $post_id)
13 {
14 $type = get_post_meta($post_id, 'presto_video_type', true);
15 $external_id = get_post_meta($post_id, 'presto_external_id', true);
16
17 if ($type !== 'youtube') {
18 return $url;
19 }
20
21 return "https://www.youtube.com/watch?v=" . (int) $external_id;
22 }
23
24 /**
25 * Get video data from remote
26 *
27 * @param string $id
28 * @return array
29 */
30 public function getRemoteVideoData($id)
31 {
32 $response = wp_remote_get(add_query_arg(
33 [
34 'format' => 'json',
35 'url' => esc_url_raw('https://www.youtube.com/watch?v=' . $id)
36 ],
37 'https://www.youtube.com/oembed'
38 ));
39
40 // handle errors silently since it's progressive enhancement
41 if (is_wp_error($response)) {
42 return null;
43 }
44
45 $body = wp_remote_retrieve_body($response);
46 return json_decode($body, true);
47 }
48 }
49