Your IP : 216.73.216.196


Current Path : /home/icmq6107/clients/BUCODAC/wp-content/themes/alone/install/import-pack/
Upload File :
Current File : /home/icmq6107/clients/BUCODAC/wp-content/themes/alone/install/import-pack/ajax.php

<?php
/**
 * Import pack ajax functions
 *
 * @package Import Pack
 */

if( ! function_exists( 'beplus_import_pack_modal_import_body_template' ) ) {
    /**
     * Modal import template
     *
     */
    function beplus_import_pack_modal_import_body_template() {

        set_query_var( 'package_id', $_POST['package_id'] );
        set_query_var( 'package_data', beplus_import_pack_get_package_data_by_id( $_POST['package_id'] ) );
        set_query_var( 'import_steps', beplus_import_pack_import_steps() );

        ob_start();
        load_template( get_template_directory() . '/install/import-pack/templates/modal-body-by-package-id.php' );
        $content = ob_get_clean();

        wp_send_json( [
            'success' => true,
            'content' => $content,
        ] );
    }

    add_action( 'wp_ajax_beplus_import_pack_modal_import_body_template', 'beplus_import_pack_modal_import_body_template' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_modal_import_body_template', 'beplus_import_pack_modal_import_body_template' );
}

if( ! function_exists( 'beplus_import_pack_import_action_ajax_callback' ) ) {
    /**
     * Import action ajax callback
     *
     */
    function beplus_import_pack_import_action_ajax_callback() {

        extract( $_POST );

        if( ! isset( $data['form_data'] ) ) {
            wp_send_json( [
                'success' => true,
                'type' => 'error',
                'message' => __( 'Error: Form data not defined!' ),
            ] );
        }

        if( ! isset( $data['form_data'][$data['action_type']] ) ) {
            wp_send_json( [
                'success' => true,
                'type' => 'error',
                'message' => __( 'Error: Missing function ajax callback!' ),
            ] );
        }

        if( ! function_exists( $data['form_data'][$data['action_type']] ) ) {
            wp_send_json( [
                'success' => true,
                'type' => 'error',
                'message' => __( 'Error: Function ajax not defined!' ),
            ] );
        }

        $result = call_user_func( $data['form_data'][$data['action_type']] );

        wp_send_json( [
            'success' => true,
            'type' => 'success',
            'result' => $result,
        ] ); exit();
    }

    add_action( 'wp_ajax_beplus_import_pack_import_action_ajax_callback', 'beplus_import_pack_import_action_ajax_callback' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_import_action_ajax_callback', 'beplus_import_pack_import_action_ajax_callback' );
}

if( ! function_exists( 'beplus_import_pack_install_plugin' ) ) {
    /**
     * Install plugin
     *
     */
    function beplus_import_pack_install_plugin() {
        extract( $_POST );

        $installer = false;
        $plugin = ['slug' => $data['plugin_slug']];
        if( ! empty( $data['plugin_source'] ) ) { $plugin['source'] = $data['plugin_source']; }

        if(! Import_Pack_Plugin_Installer_Helper::is_installed( $plugin )) {

            $install_response = Import_Pack_Plugin_Installer_Helper::install( $plugin );
            if( $install_response['success'] == true ) {
                // Install...
                $installer = true;
            }
        } else {
            $installer = true;
        }

        if( false == $installer ) {
            wp_send_json( [
                'success' => true,
                'status' => false,
                'substep' => 'installer',
            ] );
        }

        $active_response = Import_Pack_Plugin_Installer_Helper::activate( $plugin );
        $activate = false;

        if( $active_response['success'] == true ) {
            $activate = true;
        }

        if( false == $activate ) {
            wp_send_json( [
                'success' => true,
                'status' => false,
                'substep' => 'activate',
            ] );
        }

        wp_send_json( [
            'success' => true,
            'status' => true,
            'substep' => 'activate',
        ] );
    }

    add_action( 'wp_ajax_beplus_import_pack_install_plugin', 'beplus_import_pack_install_plugin' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_install_plugin', 'beplus_import_pack_install_plugin' );
}

if( ! function_exists( 'beplus_import_pack_download_package' ) ) {
    /**
     * Download package
     *
     */
    function beplus_import_pack_download_package() {

        extract( $_POST );
        $package_name = $data['package_name'];
        $position = isset( $data['position'] ) ? $data['position'] : 0;
        $package = isset( $data['package'] ) ? $data['package'] : '';

        $result = beplus_import_pack_download_package_step( $package_name, $position, $package );

        wp_send_json( array(
            'success' => true,
            'result' => $result,
        ) );

        exit();
    }

    add_action( 'wp_ajax_beplus_import_pack_download_package', 'beplus_import_pack_download_package' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_download_package', 'beplus_import_pack_download_package' );
}

if( ! function_exists( 'beplus_import_pack_extract_package_demo' ) ) {
    /**
     * Extract (.zip) package demo
     *
     */
    function beplus_import_pack_extract_package_demo() {
        global $Bears_Backup;
        extract( $_POST );

        $package_name = $data['package_name'];
        $package = $data['package'];

        $upload_dir = wp_upload_dir();
        $path = $upload_dir['basedir'];
        $path_file_package = $path . '/' . $package;

        $backup_path = $Bears_Backup->upload_path();
        $extract_to = $backup_path . '/' . sprintf( 'package-install__%s', $package_name );

        if ( ! wp_mkdir_p( $extract_to ) ) {
            wp_send_json( array(
                'success' => true,
                'result' => array(
                    'extract_success' => false,
                )
            ) );
        }

        WP_Filesystem();
        $unzipfile = unzip_file( $path_file_package, $extract_to);

         if ( $unzipfile ) {
           wp_send_json( array(
               'success' => true,
               'result' => array(
                   'extract_success' => true,
                   'extract_to' => $extract_to,
               )
           ) );
         } else {
           wp_send_json( array(
               'success' => true,
               'result' => array(
                   'extract_success' => false,
               )
           ) );
         }

         // remove zip file
         wp_delete_file( $path_file_package );

        exit();
    }

    add_action( 'wp_ajax_beplus_import_pack_extract_package_demo', 'beplus_import_pack_extract_package_demo' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_extract_package_demo', 'beplus_import_pack_extract_package_demo' );
}

if( ! function_exists( 'beplus_import_pack_restore_data' ) ) {
    /**
     * Restore data
     *
     */
    function beplus_import_pack_restore_data() {
        global $wp_filesystem;
        $package_path = $_POST['data']['package_path'];

        if (empty($wp_filesystem)) {
            require_once (ABSPATH . '/wp-admin/includes/file.php');
            WP_Filesystem();
        }

        do_action( 'beplus/import_pack/before_restore_package', $package_path );

        $result = BBACKUP_Restore_Data( array(
            'name' => basename( $package_path ),
            'backup_path_file' => $package_path,
        ), '' );

        do_action( 'beplus/import_pack/after_restore_package', $package_path, $result );

        // delete package folder
        $wp_filesystem->delete( $package_path , true );

        if( isset( $result['success'] ) && true == $result['success'] ) {

            wp_send_json( array(
                'success' => true,
                'result' => array(
                    'restore' => true
                )
            ) );
        } else {
            wp_send_json( array(
                'success' => true,
                'result' => array(
                    'restore' => false
                )
            ) );
        }
    }

    add_action( 'wp_ajax_beplus_import_pack_restore_data', 'beplus_import_pack_restore_data' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_restore_data', 'beplus_import_pack_restore_data' );
}

if( ! function_exists( 'beplus_import_pack_backup_site_substep_install_bears_backup_plg' ) ) {
    /**
     * Backup site step install Bears Backup plugin
     *
     */
    function beplus_import_pack_backup_site_substep_install_bears_backup_plg() {

        // Install plugin Bears Backup
        $installer = false;
        $plugin = [
            'slug' => 'bears-backup',
            'source' => IMPORT_REMOTE_SERVER_PLUGIN_DOWNLOAD . '/bears-backup.zip',
        ];

        if(! Import_Pack_Plugin_Installer_Helper::is_installed( $plugin )) {

            $install_response = Import_Pack_Plugin_Installer_Helper::install( $plugin );

            if( $install_response['success'] == true ) {
                // Install...
                $installer = true;
            }
        } else {
            $installer = true;
        }

        if( false == $installer ) {
            wp_send_json( [
                'success' => true,
                'result' => [
                    'status' => false,
                    'message' => __( 'Install plugin Bears Backup fail!', 'beplus' ),
                ]
            ] );

            exit();
        }

        $active_response = Import_Pack_Plugin_Installer_Helper::activate( $plugin );
        $activate = false;

        if( $active_response['success'] != true ) {
            wp_send_json( [
                'success' => true,
                'result' => [
                    'status' => false,
                    'message' => __( 'Active plugin Bears Backup fail!', 'beplus' ),
                ]
            ] );

            exit();
        }

        wp_send_json( [
            'success' => true,
            'result' => [
                'status' => true,
                'message' => __( 'Install plugin Bears Backup successful.', 'beplus' ),
            ]
        ] );

        exit();
    }

    add_action( 'wp_ajax_beplus_import_pack_backup_site_substep_install_bears_backup_plg', 'beplus_import_pack_backup_site_substep_install_bears_backup_plg' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_backup_site_substep_install_bears_backup_plg', 'beplus_import_pack_backup_site_substep_install_bears_backup_plg' );
}

if( ! function_exists( 'beplus_import_pack_backup_site_substep_backup_database' ) ) {
    /**
     * Backup site step backup database
     *
     */
    function beplus_import_pack_backup_site_substep_backup_database() {

        // bbackup_backup_database
        $result = BBACKUP_Backup_Database( [], '' );

        if( $result['success'] == true ) {

            wp_send_json( [
                'success' => true,
                'result' => [
                    'status' => true,
                    'message' => __( 'Backup database successful.', 'beplus' ),
                    'next_step_data' => $result,
                ]
            ] );
        } else {
            wp_send_json( [
                'success' => true,
                'result' => [
                    'status' => false,
                    'message' => __( 'Backup database fail!', 'beplus' ),
                ]
            ] );
        }
    }

    add_action( 'wp_ajax_beplus_import_pack_backup_site_substep_backup_database', 'beplus_import_pack_backup_site_substep_backup_database' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_backup_site_substep_backup_database', 'beplus_import_pack_backup_site_substep_backup_database' );
}

if( ! function_exists( 'beplus_import_pack_backup_site_substep_create_file_config' ) ) {
    /**
     * Backup site step create file config
     *
     */
    function beplus_import_pack_backup_site_substep_create_file_config() {

        $result = BBACKUP_Create_File_Config( $_POST['data']['next_step_data'], '' );

        if( $result['success'] == true ) {

            wp_send_json( [
                'success' => true,
                'result' => [
                    'status' => true,
                    'message' => __( 'Backup database successful.', 'beplus' ),
                    'next_step_data' => $result,
                ]
            ] );
        } else {
            wp_send_json( [
                'success' => true,
                'result' => [
                    'status' => false,
                    'message' => __( 'Backup database fail!', 'beplus' ),
                ]
            ] );
        }
    }

    add_action( 'wp_ajax_beplus_import_pack_backup_site_substep_create_file_config', 'beplus_import_pack_backup_site_substep_create_file_config' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_backup_site_substep_create_file_config', 'beplus_import_pack_backup_site_substep_create_file_config' );
}

if( ! function_exists( 'beplus_import_pack_backup_site_substep_backup_folder_upload' ) ) {
    /**
     * Backup site step backup folder upload
     *
     */
    function beplus_import_pack_backup_site_substep_backup_folder_upload() {

        $result = BBACKUP_Backup_Folder_Upload( $_POST['data']['next_step_data'], '' );

        if( $result['success'] == true ) {

            wp_send_json( [
                'success' => true,
                'result' => [
                    'status' => true,
                    'message' => __( 'Backup folder upload successful.', 'beplus' ),
                    'next_step_data' => $result,
                ]
            ] );
        } else {
            wp_send_json( [
                'success' => true,
                'result' => [
                    'status' => false,
                    'message' => __( 'Backup folder upload fail!', 'beplus' ),
                ]
            ] );
        }
    }

    add_action( 'wp_ajax_beplus_import_pack_backup_site_substep_backup_folder_upload', 'beplus_import_pack_backup_site_substep_backup_folder_upload' );
    add_action( 'wp_ajax_nopriv_beplus_import_pack_backup_site_substep_backup_folder_upload', 'beplus_import_pack_backup_site_substep_backup_folder_upload' );
}