Sid Gifari From Gifari Industries - BD Cyber Security Team
Home
/
home
/
drleilu
/
www
/
wp-content
/
themes
/
bella-beauty
/
admin
/
installer
/
importer
/
✏️
Editing: revslider.php
<?php namespace BellaBeautySpace\Admin\Installer\Importer; use BellaBeautySpace\Core\Utils\API_Requests; use BellaBeautySpace\Core\Utils\File_Manager; use BellaBeautySpace\Core\Utils\Utils; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } /** * Revslider handler class is responsible for different methods on importing "Slider Revolution" slides. */ class Revslider { /** * Cached data for slides. */ private static $cached_data = null; /** * Revslider Import constructor. */ public function __construct() { add_action( 'cmsmasters_set_import_status', array( get_called_class(), 'set_import_status' ) ); if ( self::activation_status() && API_Requests::check_token_status() ) { add_action( 'admin_init', array( $this, 'admin_init_actions' ) ); } } /** * Activation status. * * @return bool Activation status. */ public static function activation_status() { return ( class_exists( 'RevSliderSlider' ) && class_exists( 'RevSliderSliderImport' ) ); } /** * Get import status. * * @param string $default Import status by default, may be pending or done. * * @return string Import status. */ public static function get_import_status( $default = 'done' ) { return get_option( 'cmsmasters_bella-beauty_' . Utils::get_demo() . '_revslider_import', $default ); } /** * Set import status. * * @param string $status Import status, may be pending or done. */ public static function set_import_status( $status = 'pending' ) { if ( 'done' === self::get_import_status( false ) ) { return; } update_option( 'cmsmasters_bella-beauty_' . Utils::get_demo() . '_revslider_import', $status ); } /** * Actions on admin_init hook. */ public function admin_init_actions() { if ( 'pending' !== self::get_import_status( 'done' ) ) { return; } $this->import_slides(); self::set_import_status( 'done' ); } /** * Import slides. */ protected function import_slides() { if ( ! empty( self::$cached_data ) ) { $this->process_slides( self::$cached_data ); return; } $response = API_Requests::post_request( 'get-revslider', array( 'demo' => Utils::get_demo() ) ); $response_code = wp_remote_retrieve_response_code( $response ); if ( 200 !== $response_code ) { error_log( 'Revslider import failed with status code: ' . $response_code ); return; } $response_body = json_decode( wp_remote_retrieve_body( $response ), true ); $data = $response_body['data']; if ( empty( $data ) || ! is_array( $data ) ) { error_log( 'Revslider import failed: no data or invalid data format' ); return; } self::$cached_data = $data; $this->process_slides( $data ); } /** * Process slides import. * * @param array $data List of slide URLs to import. */ protected function process_slides( $data ) { $revslider = new \RevSliderSliderImport(); foreach ( $data as $file_url ) { $file_path = File_Manager::download_temp_file( $file_url, 'revslider-' . uniqid() . '.zip' ); $revslider->import_slider( true, $file_path ); @unlink( $file_path ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged } } }
💾 Save
❌ Cancel