PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.1
Presto Player v4.3.1
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
PopupTriggerService.php 10 months ago VimeoBlockService.php 1 year ago YoutubeBlockService.php 1 year ago
YoutubeBlockService.php
48 lines
1 <?php
2
3 namespace PrestoPlayer\Services\Blocks;
4
5 class YoutubeBlockService {
6
7 public function register() {
8 add_action( 'wp_get_attachment_url', array( $this, 'replaceLink' ), 10, 2 );
9 }
10
11 public function replaceLink( $url, $post_id ) {
12 $type = get_post_meta( $post_id, 'presto_video_type', true );
13 $external_id = get_post_meta( $post_id, 'presto_external_id', true );
14
15 if ( $type !== 'youtube' ) {
16 return $url;
17 }
18
19 return 'https://www.youtube.com/watch?v=' . (int) $external_id;
20 }
21
22 /**
23 * Get video data from remote
24 *
25 * @param string $id
26 * @return array
27 */
28 public function getRemoteVideoData( $id ) {
29 $response = wp_remote_get(
30 add_query_arg(
31 array(
32 'format' => 'json',
33 'url' => esc_url_raw( 'https://www.youtube.com/watch?v=' . $id ),
34 ),
35 'https://www.youtube.com/oembed'
36 )
37 );
38
39 // handle errors silently since it's progressive enhancement
40 if ( is_wp_error( $response ) ) {
41 return null;
42 }
43
44 $body = wp_remote_retrieve_body( $response );
45 return json_decode( $body, true );
46 }
47 }
48