Files
roi-theme/wp-content/plugins/thrive-visual-editor/inc/classes/video-reporting/class-video.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

62 lines
1.3 KiB
PHP
Executable File

<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package thrive-visual-editor
*/
namespace TCB\VideoReporting;
use TCB\Traits\Is_Singleton;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Silence is golden!
}
class Video {
use Is_Singleton;
use Has_Post_Type;
/**
* @var int
*/
private $ID;
/**
* @param $id
*/
public function __construct( $id = null ) {
$this->ID = $id;
}
public function on_video_start( $user_id, $post_id ) {
do_action( 'thrive_video_start', [
'item_id' => $this->ID,
'user_id' => $user_id,
'post_id' => $post_id,
] );
}
public function save_range( $user_id, $post_id, $range_start, $range_end ) {
do_action( 'thrive_video_update_watch_data', [
'item_id' => $this->ID,
'user_id' => $user_id,
'post_id' => $post_id,
'range_start' => $range_start,
'range_end' => $range_end,
] );
}
public function is_completed( $current_duration ) {
$percentage_to_complete = $this->get_percentage_to_complete();
if ( ! $percentage_to_complete ) {
$percentage_to_complete = 100;
}
$duration_to_complete = (int) $this->get_full_duration() * (int) $percentage_to_complete / 100;
// If current duration is less than 5 seconds of the duration_to_complete, consider it as completed.
return $current_duration >= $duration_to_complete - 5;
}
}