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 / Player.php
presto-player / inc / Services Last commit date
API 2 years ago Blocks 5 years ago License 5 years ago AdminNotice.php 5 years ago AdminNotices.php 4 years ago AjaxActions.php 2 years ago Blocks.php 5 years ago Compatibility.php 4 years ago Menu.php 3 years ago Migrations.php 5 years ago Player.php 2 years ago ProCompatibility.php 2 years ago ReusableVideos.php 4 years ago Scripts.php 2 years ago Settings.php 4 years ago Shortcodes.php 2 years ago Streamer.php 4 years ago Translation.php 2 years ago VideoPostType.php 4 years ago
Player.php
75 lines
1 <?php
2
3 namespace PrestoPlayer\Services;
4
5 use PrestoPlayer\Contracts\Service;
6
7 class Player implements Service
8 {
9 public function register()
10 {
11 // ajax percentage actions
12 add_action('wp_ajax_presto_player_progress_percent', [$this, 'progressAjaxPercent']);
13 add_action('wp_ajax_nopriv_presto_player_progress_percent', [$this, 'progressAjaxPercent']);
14
15 add_action('wp_ajax_nopriv_presto_refresh_progress_nonce', [$this, 'generateNonce']);
16 add_action('wp_ajax_presto_refresh_progress_nonce', [$this, 'generateNonce']);
17 }
18
19 // refresh nonce
20 public function generateNonce()
21 {
22 return wp_send_json_success(wp_create_nonce('wp_rest'));
23 }
24
25 /**
26 * Run ajax percent action
27 *
28 * @return void
29 */
30 public function progressAjaxPercent()
31 {
32 $response = $this->progressAction();
33 if (is_wp_error($response)) {
34 wp_send_json_error($response->get_error_message(), $response->get_all_error_data('status'));
35 }
36
37 return wp_send_json_success();
38 }
39
40 /**
41 * Run the progress action
42 *
43 * @return bool|\WP_Error
44 */
45 public function progressAction()
46 {
47 // verify nonce
48 if (!wp_verify_nonce($_POST['nonce'] ?? '', 'wp_rest')) {
49 return new \WP_Error('invalid', 'Nonce invalid', ['status' => 403]);
50 }
51
52 // video id is required
53 if (empty($_POST['id'])) {
54 return new \WP_Error('invalid', 'You must provide a valid video id', ['status' => 400]);
55 }
56
57 // must have a valid percentage
58 if (!isset($_POST['percent'])) {
59 return new \WP_Error('invalid', 'You must provide a valid percentage', ['status' => 400]);
60 }
61
62 $id = (int) $_POST['id'];
63 $percent = (int) $_POST['percent'];
64 $visit_time = isset($_POST['visit_time']) ? (int) $_POST['visit_time'] : false;
65
66 /**
67 * Progress event, sends video id and percent progress
68 */
69 do_action('presto_player_progress', $id, $percent, $visit_time);
70
71 // success
72 return true;
73 }
74 }
75