PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / presto-player / triggers / user-video-percent.php
suretriggers / src / Integrations / presto-player / triggers Last commit date
user-complete-video.php 1 year ago user-video-percent.php 1 year ago
user-video-percent.php
132 lines
1 <?php
2 /**
3 * UserVideoPercent.
4 * php version 5.6
5 *
6 * @category UserVideoPercent
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\PrestoPlayer\Triggers;
15
16 use PrestoPlayer\Models\Video;
17 use SureTriggers\Controllers\AutomationController;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Traits\SingletonLoader;
20
21 if ( ! class_exists( 'UserVideoPercent' ) ) :
22
23 /**
24 * UserVideoPercent
25 *
26 * @category UserVideoPercent
27 * @package SureTriggers
28 * @author BSF <username@example.com>
29 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
30 * @link https://www.brainstormforce.com/
31 * @since 1.0.0
32 *
33 * @psalm-suppress UndefinedTrait
34 */
35 class UserVideoPercent {
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'PrestoPlayer';
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'user_video_percent';
50
51 use SingletonLoader;
52
53 /**
54 * Constructor
55 *
56 * @since 1.0.0
57 */
58 public function __construct() {
59 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
60 }
61
62 /**
63 * Register action.
64 *
65 * @param array $triggers trigger data.
66 * @return array
67 */
68 public function register( $triggers ) {
69 $triggers[ $this->integration ][ $this->trigger ] = [
70 'label' => __( 'Video Watched', 'suretriggers' ),
71 'action' => $this->trigger,
72 'common_action' => 'presto_player_progress',
73 'function' => [ $this, 'trigger_listener' ],
74 'priority' => 10,
75 'accepted_args' => 3,
76 ];
77
78 return $triggers;
79 }
80
81 /**
82 * Trigger listener
83 *
84 * @param int $video_id The entry that was just created.
85 * @param int $percent The current form.
86 * @param int $visit_time Visit time.
87 * @since 1.0.0
88 *
89 * @return void
90 */
91 public function trigger_listener( $video_id, $percent, $visit_time ) {
92 if ( ! class_exists( 'PrestoPlayer\Models\Video' ) ) {
93 return;
94 }
95 $user_id = ap_get_current_user_id();
96 $context = WordPress::get_user_context( $user_id );
97 $context['pp_video'] = $video_id;
98 $context['pp_video_percentage'] = $percent;
99 $video_data = ( new Video( $video_id ) )->toArray();
100 $context['video'] = $video_data;
101 if ( is_array( $video_data ) && array_key_exists( 'post_id', $video_data ) ) {
102 $media_tags = get_the_terms( $video_data['post_id'], 'pp_video_tag' );
103 if ( ! empty( $media_tags ) && is_array( $media_tags ) && isset( $media_tags[0] ) ) {
104 $tag_name = [];
105 foreach ( $media_tags as $tag ) {
106 $tag_name[] = $tag->name;
107 }
108 $context['media']['tag'] = $tag_name;
109 }
110 $mediahub_data = WordPress::get_post_context( $video_data['post_id'] );
111 $context = array_merge( $context, $mediahub_data );
112 }
113
114 AutomationController::sure_trigger_handle_trigger(
115 [
116 'trigger' => $this->trigger,
117 'context' => $context,
118 ]
119 );
120
121 }
122 }
123
124 /**
125 * Ignore false positive
126 *
127 * @psalm-suppress UndefinedMethod
128 */
129 UserVideoPercent::get_instance();
130
131 endif;
132