File "demo-importer.php"

Full Path: /home/tekvhqgl/public_html/wp-content/plugins/digeco-core/demo-importer.php
File size: 13.45 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * @author  RadiusTheme
 * @since   1.0
 * @version 1.0
 */

namespace radiustheme\Digeco_Core;

use \FW_Ext_Backups_Demo;
use \WPCF7_ContactFormTemplate;

if (! defined('ABSPATH')) {
    exit;
}

class Demo_Importer
{

    public function __construct()
    {
        add_filter('plugin_action_links_rt-demo-importer/rt-demo-importer.php', array( $this, 'add_action_links' )); // Link from plugins page
        add_filter('rt_demo_installer_warning', array( $this, 'data_loss_warning' ));
        add_filter('fw:ext:backups-demo:demos', array( $this, 'demo_config' ));
        add_action('fw:ext:backups:tasks:success:id:demo-content-install', array( $this, 'after_demo_install' ));
    }

    public function add_action_links($links)
    {
        $mylinks = array(
            '<a href="' . esc_url(admin_url('tools.php?page=fw-backups-demo-content')) . '">'.__('Install Demo Contents', 'digeco-core').'</a>',
        );
        return array_merge($links, $mylinks);
    }

    public function data_loss_warning($links)
    {
        $html  = '<div style="margin-top:20px;color:#f00;font-size:20px;line-height:1.3;font-weight:600;margin-bottom:40px;border-color: #f00;border-style: dashed;border-width: 1px 0;padding:10px 0;">';
        $html .= __('Warning: All your old data will be lost if you install One Click demo data from here, so it is suitable only for a new website.', 'digeco-core');
        $html .= '</div>';
        return $html;
    }

    public function demo_config($demos)
    {
        $demos_array = array(
            'demo1' => array(
                'title' => __('Home 1', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot1.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/',
            ),       
            'demo2' => array(
                'title' => __('Home 2', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot2.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-2/',
            ),
            'demo3' => array(
                'title' => __('Home 3', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot3.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-3/',
            ),
            'demo4' => array(
                'title' => __('Home 4', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot4.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-4/',
            ),
            'demo5' => array(
                'title' => __('Home 5', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot5.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-5/',
            ),
            'demo6' => array(
                'title' => __('Home 6', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot6.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-6/',
            ),
            'demo7' => array(
                'title' => __('Home 7', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot7.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-7/',
            ),
            'demo8' => array(
                'title' => __('Home 8', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot8.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-8/',
            ),
            'demo9' => array(
                'title' => __('Home 9', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot9.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-9/',
            ),
            'demo10' => array(
                'title' => __('Home 10', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot10.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-10/',
            ),
            'demo11' => array(
                'title' => __('Home 11', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot11.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-11/',
            ),
            'demo12' => array(
                'title' => __('Home 12', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot12.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-12/',
            ), 
            'demo13' => array(
                'title' => __('Home 13', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot13.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-13/',
            ),
            'demo14' => array(
                'title' => __('Home 14', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot14.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-14/',
            ),
            'demo15' => array(
                'title' => __('Home 15', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot15.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-15/',
            ),
            'demo16' => array(
                'title' => __('Home 16', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot16.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home-16/',
            ),
            'demo17' => array(
                'title' => __('Home 1 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot1.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home1-one-page/',
            ),
            'demo18' => array(
                'title' => __('Home 2 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot2.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home2-one-page/',
            ),
            'demo19' => array(
                'title' => __('Home 3 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot3.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home3-one-page/',
            ),
            'demo20' => array(
                'title' => __('Home 4 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot4.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home4-one-page/',
            ),
            'demo21' => array(
                'title' => __('Home 6 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot6.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home6-one-page/',
            ),
            'demo22' => array(
                'title' => __('Home 7 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot7.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home7-one-page/',
            ),
            'demo23' => array(
                'title' => __('Home 8 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot8.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home8-one-page/',
            ),
            'demo24' => array(
                'title' => __('Home 9 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot9.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home9-one-page/',
            ),
            'demo25' => array(
                'title' => __('Home 10 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot10.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home10-one-page/',
            ),
            'demo26' => array(
                'title' => __('Home 11 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot11.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home11-one-page/',
            ),
            'demo27' => array(
                'title' => __('Home 12 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot12.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home12-one-page/',
            ),
            'demo28' => array(
                'title' => __('Home 13 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot13.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home13-one-page/',
            ),
            'demo29' => array(
                'title' => __('Home 14 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot14.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home14-one-page/',
            ),
            'demo30' => array(
                'title' => __('Home 15 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot15.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home15-one-page/',
            ),
            'demo31' => array(
                'title' => __('Home 16 ( One Page )', 'digeco-core'),
                'screenshot' => plugins_url('screenshots/screenshot16.jpg', __FILE__),
                'preview_link' => 'https://radiustheme.com/demo/wordpress/themes/digeco/home16-one-page/',
            ),
 
        );

        $download_url = 'http://demo.radiustheme.com/wordpress/demo-content/digeco/';

        foreach ($demos_array as $id => $data) {
            $demo = new FW_Ext_Backups_Demo($id, 'piecemeal', array(
                'url' => $download_url,
                'file_id' => $id,
            ));

            $demo->set_title($data['title']);
            $demo->set_screenshot($data['screenshot']);
            $demo->set_preview_link($data['preview_link']);

            $demos[ $demo->get_id() ] = $demo;

            unset($demo);
        }

        return $demos;
    }

    public function after_demo_install($collection)
    {
        // Update front page id
        $demos = array(
            'demo1'  => 126,
            'demo2'  => 128,
            'demo3'  => 130,
            'demo4'  => 132,
            'demo5'  => 134,
            'demo6'  => 2862,
            'demo7'  => 2958,
            'demo8'  => 3019,
            'demo9'  => 3045,
            'demo10'  => 3054,
            'demo11'  => 3174,
            'demo12'  => 3250,
            'demo13'  => 3412,
            'demo14'  => 3948,
            'demo15'  => 3964,
            'demo16'  => 3979,
            'demo17'  => 2771,
            'demo18'  => 2787,
            'demo19'  => 2805,
            'demo20'  => 2821,
            'demo21'  => 2873,
            'demo22'  => 2960,
            'demo23'  => 3112,
            'demo24'  => 3113,
            'demo25'  => 3116,
            'demo26'  => 3177,
            'demo27'  => 3289,
            'demo28'  => 3735,
            'demo29'  => 4064,
            'demo30'  => 4065,
            'demo31'  => 4066,
        );

        $data = $collection->to_array();

        foreach ($data['tasks'] as $task) {
            if ($task['id'] == 'demo:demo-download') {
                $demo_id = $task['args']['demo_id'];
                $page_id = $demos[$demo_id];
                update_option('page_on_front', $page_id);
                flush_rewrite_rules();
                break;
            }
        }

        // Update contact form 7 email
        $cf7ids = array( 1680, 1711 );
        foreach ($cf7ids as $cf7id) {
            $mail = get_post_meta($cf7id, '_mail', true);
            $mail['recipient'] = get_option('admin_email');
            if ( empty( $mail ) ) {
               $mail = [];
            }

            if (class_exists('WPCF7_ContactFormTemplate')) {
                $pattern = "/<[^@\s]*@[^@\s]*\.[^@\s]*>/"; // <email@email.com>
                $replacement = '<'. WPCF7_ContactFormTemplate::from_email().'>';
                $mail['sender'] = preg_replace($pattern, $replacement, $mail['sender']);
            }
            
            update_post_meta($cf7id, '_mail', $mail);
        }

        // Update WooCommerce emails
        $admin_email = get_option('admin_email');
        update_option('woocommerce_email_from_address', $admin_email);
        update_option('woocommerce_stock_email_recipient', $admin_email);
    }
}

new Demo_Importer;