PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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-complete-video.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-complete-video.php
139 lines
1 <?php
2 /**
3 * UserCompleteVideo.
4 * php version 5.6
5 *
6 * @category UserCompleteVideo
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( 'UserCompleteVideo' ) ) :
22
23 /**
24 * UserCompleteVideo
25 *
26 * @category UserCompleteVideo
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 UserCompleteVideo {
36
37
38 /**
39 * Integration type.
40 *
41 * @var string
42 */
43 public $integration = 'PrestoPlayer';
44
45
46 /**
47 * Trigger name.
48 *
49 * @var string
50 */
51 public $trigger = 'user_video_completes';
52
53 use SingletonLoader;
54
55
56 /**
57 * Constructor
58 *
59 * @since 1.0.0
60 */
61 public function __construct() {
62 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
63 }
64
65 /**
66 * Register action.
67 *
68 * @param array $triggers trigger data.
69 * @return array
70 */
71 public function register( $triggers ) {
72
73 $triggers[ $this->integration ][ $this->trigger ] = [
74 'label' => __( 'Video Completed', 'suretriggers' ),
75 'action' => $this->trigger,
76 'common_action' => 'presto_player_progress',
77 'function' => [ $this, 'trigger_listener' ],
78 'priority' => 10,
79 'accepted_args' => 3,
80 ];
81
82 return $triggers;
83
84 }
85
86 /**
87 * Trigger listener
88 *
89 * @param array $video_id The entry that was just created.
90 * @param int $percent The current form.
91 * @param int $visit_time Visit time.
92 * @since 1.0.0
93 *
94 * @return void
95 */
96 public function trigger_listener( $video_id, $percent, $visit_time ) {
97 if ( 100 === $percent ) {
98 if ( ! class_exists( 'PrestoPlayer\Models\Video' ) ) {
99 return;
100 }
101
102 $user_id = ap_get_current_user_id();
103 $context = WordPress::get_user_context( $user_id );
104 $context['pp_video'] = $video_id;
105 $context['pp_video_percentage'] = $percent;
106 $video_data = ( new Video( $video_id ) )->toArray();
107 $context['video'] = $video_data;
108 if ( is_array( $video_data ) && array_key_exists( 'post_id', $video_data ) ) {
109 $media_tags = get_the_terms( $video_data['post_id'], 'pp_video_tag' );
110 if ( ! empty( $media_tags ) && is_array( $media_tags ) && isset( $media_tags[0] ) ) {
111 $tag_name = [];
112 foreach ( $media_tags as $tag ) {
113 $tag_name[] = $tag->name;
114 }
115 $context['media']['tag'] = $tag_name;
116 }
117 $mediahub_data = WordPress::get_post_context( $video_data['post_id'] );
118 $context = array_merge( $context, $mediahub_data );
119 }
120
121 AutomationController::sure_trigger_handle_trigger(
122 [
123 'trigger' => $this->trigger,
124 'context' => $context,
125 ]
126 );
127 }
128 }
129 }
130
131 /**
132 * Ignore false positive
133 *
134 * @psalm-suppress UndefinedMethod
135 */
136 UserCompleteVideo::get_instance();
137
138 endif;
139