Version Description
Download this release
Release Info
Developer | vrundakansara |
Plugin | |
Version | 1.3.9 |
Comparing to | |
See all releases |
Code changes from version 1.3.8 to 1.3.9
- astra-sites.php +2 -2
- inc/assets/js/admin-page.js +1 -1
- inc/assets/js/astra-sites-api.js +25 -29
- inc/classes/class-astra-sites-importer.php +6 -1
- inc/classes/class-astra-sites-page.php +434 -434
- inc/classes/class-astra-sites.php +600 -600
- inc/classes/compatibility/class-astra-sites-compatibility.php +66 -66
- inc/importers/batch-processing/class-astra-sites-batch-processing-beaver-builder.php +261 -261
- inc/importers/batch-processing/class-astra-sites-batch-processing-brizy.php +125 -125
- inc/importers/batch-processing/class-astra-sites-batch-processing-elementor.php +109 -109
- inc/importers/batch-processing/class-astra-sites-batch-processing-gutenberg.php +165 -165
- inc/importers/batch-processing/class-astra-sites-batch-processing.php +227 -227
- inc/importers/batch-processing/helpers/class-astra-sites-image-importer.php +243 -243
- inc/importers/wxr-importer/class-astra-wxr-importer.php +446 -446
- inc/includes/admin-page.php +420 -420
- languages/astra-sites.pot +10 -10
- readme.txt +4 -1
astra-sites.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Astra Starter Sites – Elementor, Beaver Builder & Gutenberg Templates
|
4 |
* Plugin URI: http://www.wpastra.com/pro/
|
5 |
* Description: Import free sites build with Astra theme.
|
6 |
-
* Version: 1.3.
|
7 |
* Author: Brainstorm Force
|
8 |
* Author URI: http://www.brainstormforce.com
|
9 |
* Text Domain: astra-sites
|
@@ -19,7 +19,7 @@ if ( ! defined( 'ASTRA_SITES_NAME' ) ) {
|
|
19 |
}
|
20 |
|
21 |
if ( ! defined( 'ASTRA_SITES_VER' ) ) {
|
22 |
-
define( 'ASTRA_SITES_VER', '1.3.
|
23 |
}
|
24 |
|
25 |
if ( ! defined( 'ASTRA_SITES_FILE' ) ) {
|
3 |
* Plugin Name: Astra Starter Sites – Elementor, Beaver Builder & Gutenberg Templates
|
4 |
* Plugin URI: http://www.wpastra.com/pro/
|
5 |
* Description: Import free sites build with Astra theme.
|
6 |
+
* Version: 1.3.9
|
7 |
* Author: Brainstorm Force
|
8 |
* Author URI: http://www.brainstormforce.com
|
9 |
* Text Domain: astra-sites
|
19 |
}
|
20 |
|
21 |
if ( ! defined( 'ASTRA_SITES_VER' ) ) {
|
22 |
+
define( 'ASTRA_SITES_VER', '1.3.9' );
|
23 |
}
|
24 |
|
25 |
if ( ! defined( 'ASTRA_SITES_FILE' ) ) {
|
inc/assets/js/admin-page.js
CHANGED
@@ -1317,7 +1317,7 @@ var AstraSitesAjaxQueue = (function() {
|
|
1317 |
}
|
1318 |
},
|
1319 |
|
1320 |
-
_process_import() {
|
1321 |
|
1322 |
var $theme = $('.astra-sites-preview').find('.wp-full-overlay-header'),
|
1323 |
apiURL = $theme.data('demo-api') || '';
|
1317 |
}
|
1318 |
},
|
1319 |
|
1320 |
+
_process_import: function() {
|
1321 |
|
1322 |
var $theme = $('.astra-sites-preview').find('.wp-full-overlay-header'),
|
1323 |
apiURL = $theme.data('demo-api') || '';
|
inc/assets/js/astra-sites-api.js
CHANGED
@@ -14,46 +14,42 @@
|
|
14 |
*/
|
15 |
_api_request: function( args, callback ) {
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
|
22 |
if( astraRenderGrid.headers ) {
|
23 |
-
|
24 |
}
|
25 |
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
if( 'success' === status && XHR.getResponseHeader('x-wp-total') ) {
|
30 |
-
|
31 |
-
if( args.id ) {
|
32 |
-
AstraSitesAPI._stored_data[ args.id ] = $.merge( AstraSitesAPI._stored_data[ args.id ], items );
|
33 |
-
}
|
34 |
-
|
35 |
-
var data = {
|
36 |
-
args : args,
|
37 |
items : items,
|
38 |
-
items_count :
|
39 |
-
item_pages :
|
40 |
-
|
41 |
-
|
42 |
-
if( 'undefined' !== typeof args.trigger && '' !== args.trigger ) {
|
43 |
-
$(document).trigger( args.trigger, [data] );
|
44 |
-
}
|
45 |
} else {
|
46 |
$(document).trigger( 'astra-sites-api-request-error' );
|
|
|
47 |
}
|
48 |
-
|
49 |
})
|
50 |
-
.
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
-
|
|
|
|
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
|
|
57 |
});
|
58 |
|
59 |
},
|
14 |
*/
|
15 |
_api_request: function( args, callback ) {
|
16 |
|
17 |
+
var params = {
|
18 |
+
method: 'GET',
|
19 |
+
cache: 'default',
|
20 |
+
};
|
21 |
|
22 |
if( astraRenderGrid.headers ) {
|
23 |
+
params['headers'] = astraRenderGrid.headers;
|
24 |
}
|
25 |
|
26 |
+
fetch( AstraSitesAPI._api_url + args.slug, params).then(response => {
|
27 |
+
if ( response.status === 200 ) {
|
28 |
+
return response.json().then(items => ({
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
items : items,
|
30 |
+
items_count : response.headers.get( 'x-wp-total' ),
|
31 |
+
item_pages : response.headers.get( 'x-wp-totalpages' ),
|
32 |
+
}))
|
|
|
|
|
|
|
|
|
33 |
} else {
|
34 |
$(document).trigger( 'astra-sites-api-request-error' );
|
35 |
+
return response.json();
|
36 |
}
|
|
|
37 |
})
|
38 |
+
.then(data => {
|
39 |
+
if( 'object' === typeof data ) {
|
40 |
+
data['args'] = args;
|
41 |
+
if( data.args.id ) {
|
42 |
+
AstraSitesAPI._stored_data[ args.id ] = $.merge( AstraSitesAPI._stored_data[ data.args.id ], data.items );
|
43 |
+
}
|
44 |
|
45 |
+
if( 'undefined' !== typeof args.trigger && '' !== args.trigger ) {
|
46 |
+
$(document).trigger( args.trigger, [data] );
|
47 |
+
}
|
48 |
|
49 |
+
if( callback && typeof callback == "function"){
|
50 |
+
callback( data );
|
51 |
+
}
|
52 |
+
}
|
53 |
});
|
54 |
|
55 |
},
|
inc/classes/class-astra-sites-importer.php
CHANGED
@@ -77,7 +77,10 @@ if ( ! class_exists( 'Astra_Sites_Importer' ) ) :
|
|
77 |
add_action( 'wp_ajax_astra-sites-delete-posts', array( $this, 'delete_imported_posts' ) );
|
78 |
add_action( 'wp_ajax_astra-sites-delete-wp-forms', array( $this, 'delete_imported_wp_forms' ) );
|
79 |
add_action( 'wp_ajax_astra-sites-delete-terms', array( $this, 'delete_imported_terms' ) );
|
80 |
-
|
|
|
|
|
|
|
81 |
}
|
82 |
|
83 |
/**
|
@@ -595,3 +598,5 @@ if ( ! class_exists( 'Astra_Sites_Importer' ) ) :
|
|
595 |
Astra_Sites_Importer::get_instance();
|
596 |
|
597 |
endif;
|
|
|
|
77 |
add_action( 'wp_ajax_astra-sites-delete-posts', array( $this, 'delete_imported_posts' ) );
|
78 |
add_action( 'wp_ajax_astra-sites-delete-wp-forms', array( $this, 'delete_imported_wp_forms' ) );
|
79 |
add_action( 'wp_ajax_astra-sites-delete-terms', array( $this, 'delete_imported_terms' ) );
|
80 |
+
|
81 |
+
if ( version_compare( get_bloginfo( 'version' ), '5.1.0', '>=' ) ) {
|
82 |
+
add_filter( 'http_request_timeout', array( $this, 'set_timeout_for_images' ), 10, 2 );
|
83 |
+
}
|
84 |
}
|
85 |
|
86 |
/**
|
598 |
Astra_Sites_Importer::get_instance();
|
599 |
|
600 |
endif;
|
601 |
+
|
602 |
+
|
inc/classes/class-astra-sites-page.php
CHANGED
@@ -1,434 +1,434 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Astra Sites Page
|
4 |
-
*
|
5 |
-
* @since 1.0.6
|
6 |
-
* @package Astra Sites
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
exit;
|
11 |
-
}
|
12 |
-
|
13 |
-
if ( ! class_exists( 'Astra_Sites_Page' ) ) {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Astra Admin Settings
|
17 |
-
*/
|
18 |
-
class Astra_Sites_Page {
|
19 |
-
|
20 |
-
/**
|
21 |
-
* View all actions
|
22 |
-
*
|
23 |
-
* @since 1.0.6
|
24 |
-
* @var array $view_actions
|
25 |
-
*/
|
26 |
-
public $view_actions = array();
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Member Variable
|
30 |
-
*
|
31 |
-
* @var instance
|
32 |
-
*/
|
33 |
-
private static $instance;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Initiator
|
37 |
-
*
|
38 |
-
* @since 1.3.0
|
39 |
-
*/
|
40 |
-
public static function get_instance() {
|
41 |
-
if ( ! isset( self::$instance ) ) {
|
42 |
-
self::$instance = new self;
|
43 |
-
}
|
44 |
-
return self::$instance;
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Constructor
|
49 |
-
*
|
50 |
-
* @since 1.3.0
|
51 |
-
*/
|
52 |
-
public function __construct() {
|
53 |
-
|
54 |
-
if ( ! is_admin() ) {
|
55 |
-
return;
|
56 |
-
}
|
57 |
-
|
58 |
-
add_action( 'after_setup_theme', array( $this, 'init_admin_settings' ), 99 );
|
59 |
-
add_action( 'admin_init', array( $this, 'save_page_builder' ) );
|
60 |
-
add_action( 'admin_notices', array( $this, 'getting_started' ) );
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Admin notice
|
65 |
-
*
|
66 |
-
* @since 1.3.5
|
67 |
-
*
|
68 |
-
* @return void
|
69 |
-
*/
|
70 |
-
function getting_started() {
|
71 |
-
if ( 'plugins' !== get_current_screen()->base ) {
|
72 |
-
return;
|
73 |
-
}
|
74 |
-
|
75 |
-
$processed = get_user_meta( get_current_user_id(), '_astra_sites_gettings_started', true );
|
76 |
-
$product_name = Astra_Sites_White_Label::get_instance()->page_title( 'Astra' );
|
77 |
-
|
78 |
-
if ( $processed ) {
|
79 |
-
return;
|
80 |
-
}
|
81 |
-
|
82 |
-
?>
|
83 |
-
<div class="notice notice-info is-dismissible astra-sites-getting-started-notice">
|
84 |
-
<?php /* translators: %1$s is the admin page URL, %2$s is product name. */ ?>
|
85 |
-
<p><?php printf( __( 'Thank you for choosing %1$s! Check the library of <a class="astra-sites-getting-started-btn" href="%2$s">ready starter sites here »</a>', 'astra-sites' ), $product_name, admin_url( 'themes.php?page=astra-sites' ) ); ?></p>
|
86 |
-
</div>
|
87 |
-
<?php
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Save Page Builder
|
92 |
-
*
|
93 |
-
* @return void
|
94 |
-
*/
|
95 |
-
function save_page_builder() {
|
96 |
-
|
97 |
-
// Only admins can save settings.
|
98 |
-
if ( ! current_user_can( 'manage_options' ) ) {
|
99 |
-
return;
|
100 |
-
}
|
101 |
-
|
102 |
-
// Make sure we have a valid nonce.
|
103 |
-
if ( isset( $_REQUEST['astra-sites-page-builder'] ) && wp_verify_nonce( $_REQUEST['astra-sites-page-builder'], 'astra-sites-welcome-screen' ) ) {
|
104 |
-
|
105 |
-
// Stored Settings.
|
106 |
-
$stored_data = $this->get_settings();
|
107 |
-
|
108 |
-
// New settings.
|
109 |
-
$new_data = array(
|
110 |
-
'page_builder' => ( isset( $_REQUEST['page_builder'] ) ) ? sanitize_key( $_REQUEST['page_builder'] ) : '',
|
111 |
-
);
|
112 |
-
|
113 |
-
// Merge settings.
|
114 |
-
$data = wp_parse_args( $new_data, $stored_data );
|
115 |
-
|
116 |
-
// Update settings.
|
117 |
-
update_option( 'astra_sites_settings', $data );
|
118 |
-
|
119 |
-
wp_redirect( admin_url( '/themes.php?page=astra-sites' ) );
|
120 |
-
}
|
121 |
-
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* Get single setting value
|
125 |
-
*
|
126 |
-
* @param string $key Setting key.
|
127 |
-
* @param mixed $defaults Setting value.
|
128 |
-
* @return mixed Stored setting value.
|
129 |
-
*/
|
130 |
-
function get_setting( $key = '', $defaults = '' ) {
|
131 |
-
|
132 |
-
$settings = $this->get_settings();
|
133 |
-
|
134 |
-
if ( empty( $settings ) ) {
|
135 |
-
return $defaults;
|
136 |
-
}
|
137 |
-
|
138 |
-
if ( array_key_exists( $key, $settings ) ) {
|
139 |
-
return $settings[ $key ];
|
140 |
-
}
|
141 |
-
|
142 |
-
return $defaults;
|
143 |
-
}
|
144 |
-
|
145 |
-
/**
|
146 |
-
* Get Settings
|
147 |
-
*
|
148 |
-
* @return array Stored settings.
|
149 |
-
*/
|
150 |
-
function get_settings() {
|
151 |
-
|
152 |
-
$defaults = array(
|
153 |
-
'page_builder' => '',
|
154 |
-
);
|
155 |
-
|
156 |
-
$stored_data = get_option( 'astra_sites_settings', $defaults );
|
157 |
-
|
158 |
-
return wp_parse_args( $stored_data, $defaults );
|
159 |
-
}
|
160 |
-
|
161 |
-
/**
|
162 |
-
* Admin settings init
|
163 |
-
*/
|
164 |
-
public function init_admin_settings() {
|
165 |
-
add_action( 'admin_menu', array( $this, 'add_admin_menu' ), 100 );
|
166 |
-
add_action( 'admin_notices', array( $this, 'notices' ) );
|
167 |
-
add_action( 'astra_sites_menu_general_action', array( $this, 'general_page' ) );
|
168 |
-
}
|
169 |
-
|
170 |
-
/**
|
171 |
-
* Admin notice
|
172 |
-
*
|
173 |
-
* @since 1.2.8
|
174 |
-
*/
|
175 |
-
public function notices() {
|
176 |
-
|
177 |
-
if ( 'appearance_page_astra-sites' !== get_current_screen()->id ) {
|
178 |
-
return;
|
179 |
-
}
|
180 |
-
|
181 |
-
if ( ! class_exists( 'XMLReader' ) ) {
|
182 |
-
?>
|
183 |
-
<div class="notice astra-sites-xml-notice notice-error">
|
184 |
-
<p><b><?php _e( 'Required XMLReader PHP extension is missing on your server!', 'astra-sites' ); ?></b></p>
|
185 |
-
<?php /* translators: %s is the white label name. */ ?>
|
186 |
-
<p><?php printf( __( '%s import requires XMLReader extension to be installed. Please contact your web hosting provider and ask them to install and activate the XMLReader PHP extension.', 'astra-sites' ), ASTRA_SITES_NAME ); ?></p>
|
187 |
-
</div>
|
188 |
-
<?php
|
189 |
-
}
|
190 |
-
}
|
191 |
-
|
192 |
-
/**
|
193 |
-
* Init Nav Menu
|
194 |
-
*
|
195 |
-
* @param mixed $action Action name.
|
196 |
-
* @since 1.0.6
|
197 |
-
*/
|
198 |
-
public function init_nav_menu( $action = '' ) {
|
199 |
-
|
200 |
-
if ( '' !== $action ) {
|
201 |
-
$this->render_tab_menu( $action );
|
202 |
-
}
|
203 |
-
}
|
204 |
-
|
205 |
-
/**
|
206 |
-
* Render tab menu
|
207 |
-
*
|
208 |
-
* @param mixed $action Action name.
|
209 |
-
* @since 1.0.6
|
210 |
-
*/
|
211 |
-
public function render_tab_menu( $action = '' ) {
|
212 |
-
?>
|
213 |
-
<div id="astra-sites-menu-page">
|
214 |
-
<?php $this->render( $action ); ?>
|
215 |
-
</div>
|
216 |
-
<?php
|
217 |
-
}
|
218 |
-
|
219 |
-
/**
|
220 |
-
* View actions
|
221 |
-
*
|
222 |
-
* @since 1.0.11
|
223 |
-
*/
|
224 |
-
public function get_view_actions() {
|
225 |
-
|
226 |
-
if ( empty( $this->view_actions ) ) {
|
227 |
-
|
228 |
-
$this->view_actions = apply_filters(
|
229 |
-
'astra_sites_menu_item',
|
230 |
-
array()
|
231 |
-
);
|
232 |
-
}
|
233 |
-
|
234 |
-
return $this->view_actions;
|
235 |
-
}
|
236 |
-
|
237 |
-
/**
|
238 |
-
* Prints HTML content for tabs
|
239 |
-
*
|
240 |
-
* @param mixed $action Action name.
|
241 |
-
* @since 1.0.6
|
242 |
-
*/
|
243 |
-
public function render( $action ) {
|
244 |
-
|
245 |
-
// Settings update message.
|
246 |
-
if ( isset( $_REQUEST['message'] ) && ( 'saved' === $_REQUEST['message'] || 'saved_ext' === $_REQUEST['message'] ) ) {
|
247 |
-
?>
|
248 |
-
<span id="message" class="notice notice-success is-dismissive"><p> <?php esc_html_e( 'Settings saved successfully.', 'astra-sites' ); ?> </p></span>
|
249 |
-
<?php
|
250 |
-
}
|
251 |
-
|
252 |
-
$default_page_builder = $this->get_setting( 'page_builder' );
|
253 |
-
|
254 |
-
if ( empty( $default_page_builder ) || isset( $_GET['change-page-builder'] ) ) {
|
255 |
-
|
256 |
-
$plugins = get_option( 'active_plugins', array() );
|
257 |
-
$page_builders = array();
|
258 |
-
if ( $plugins ) {
|
259 |
-
foreach ( $plugins as $key => $plugin_init ) {
|
260 |
-
if ( false !== strpos( $plugin_init, 'elementor' ) ) {
|
261 |
-
$page_builders[] = 'elementor';
|
262 |
-
}
|
263 |
-
if ( false !== strpos( $plugin_init, 'beaver-builder' ) ) {
|
264 |
-
$page_builders[] = 'beaver-builder';
|
265 |
-
}
|
266 |
-
if ( false !== strpos( $plugin_init, 'brizy' ) ) {
|
267 |
-
$page_builders[] = 'brizy';
|
268 |
-
}
|
269 |
-
}
|
270 |
-
}
|
271 |
-
$page_builders = array_unique( $page_builders );
|
272 |
-
$page_builders[] = 'gutenberg';
|
273 |
-
$page_builders = implode( ',', $page_builders );
|
274 |
-
?>
|
275 |
-
<div class="astra-sites-welcome" data-plugins="<?php echo esc_attr( $page_builders ); ?>">
|
276 |
-
<div class="inner">
|
277 |
-
<form id="astra-sites-welcome-form" enctype="multipart/form-data" method="post">
|
278 |
-
<h1><?php _e( 'Select Page Builder', 'astra-sites' ); ?></h1>
|
279 |
-
<p><?php _e( 'Astra offers starter sites that can be imported in one click. These templates are available in few different page builders. Please choose your preferred page builder from the list below.', 'astra-sites' ); ?></p>
|
280 |
-
<div class="fields">
|
281 |
-
<ul class="page-builders">
|
282 |
-
<li>
|
283 |
-
<label>
|
284 |
-
<input type="radio" name="page_builder" value="gutenberg">
|
285 |
-
<img src="<?php echo esc_url( ASTRA_SITES_URI . 'inc/assets/images/gutenberg.jpg' ); ?>" />
|
286 |
-
<div class="title"><?php _e( 'Gutenberg', 'astra-sites' ); ?></div>
|
287 |
-
</label>
|
288 |
-
</li>
|
289 |
-
<li>
|
290 |
-
<label>
|
291 |
-
<input type="radio" name="page_builder" value="elementor">
|
292 |
-
<img src="<?php echo esc_url( ASTRA_SITES_URI . 'inc/assets/images/elementor.jpg' ); ?>" />
|
293 |
-
<div class="title"><?php _e( 'Elementor', 'astra-sites' ); ?></div>
|
294 |
-
</label>
|
295 |
-
</li>
|
296 |
-
<li>
|
297 |
-
<label>
|
298 |
-
<input type="radio" name="page_builder" value="beaver-builder">
|
299 |
-
<img src="<?php echo esc_url( ASTRA_SITES_URI . 'inc/assets/images/beaver-builder.png' ); ?>" />
|
300 |
-
<div class="title"><?php _e( 'Beaver Builder', 'astra-sites' ); ?></div>
|
301 |
-
</li>
|
302 |
-
<li>
|
303 |
-
<label>
|
304 |
-
<input type="radio" name="page_builder" value="brizy">
|
305 |
-
<img src="<?php echo esc_url( ASTRA_SITES_URI . 'inc/assets/images/brizy.jpg' ); ?>" />
|
306 |
-
<div class="title"><?php _e( 'Brizy', 'astra-sites' ); ?></div>
|
307 |
-
</label>
|
308 |
-
</li>
|
309 |
-
</ul>
|
310 |
-
<div class="astra-sites-page-builder-notice" style="display: none;">
|
311 |
-
<p class="description"><?php _e( 'Please select your favorite page builder to continue..', 'astra-sites' ); ?></p>
|
312 |
-
</div>
|
313 |
-
<?php submit_button( __( 'Next', 'astra-sites' ), 'primary button-hero disabled' ); ?>
|
314 |
-
</div>
|
315 |
-
|
316 |
-
<input type="hidden" name="message" value="saved" />
|
317 |
-
<?php wp_nonce_field( 'astra-sites-welcome-screen', 'astra-sites-page-builder' ); ?>
|
318 |
-
</form>
|
319 |
-
</div>
|
320 |
-
</div>
|
321 |
-
<?php } else { ?>
|
322 |
-
<?php
|
323 |
-
$page_title = apply_filters( 'astra_sites_page_title', __( 'Astra Starter Sites - Your Library of 100+ Ready Templates!', 'astra-sites' ) );
|
324 |
-
?>
|
325 |
-
<div class="nav-tab-wrapper">
|
326 |
-
<h1 class='astra-sites-title'> <?php echo esc_html( $page_title ); ?> </h1>
|
327 |
-
<form id="astra-sites-welcome-form-inline" enctype="multipart/form-data" method="post">
|
328 |
-
<div class="fields">
|
329 |
-
<select name="page_builder" required="required">
|
330 |
-
<option value="gutenberg" <?php selected( $default_page_builder, 'gutenberg' ); ?>><?php _e( 'Block Editor (Gutenberg)', 'astra-sites' ); ?></option>
|
331 |
-
<option value="elementor" <?php selected( $default_page_builder, 'elementor' ); ?>><?php _e( 'Elementor', 'astra-sites' ); ?></option>
|
332 |
-
<option value="beaver-builder" <?php selected( $default_page_builder, 'beaver-builder' ); ?>><?php _e( 'Beaver Builder', 'astra-sites' ); ?></option>
|
333 |
-
<option value="brizy" <?php selected( $default_page_builder, 'brizy' ); ?>><?php _e( 'Brizy', 'astra-sites' ); ?></option>
|
334 |
-
</select>
|
335 |
-
</div>
|
336 |
-
<input type="hidden" name="message" value="saved" />
|
337 |
-
<?php wp_nonce_field( 'astra-sites-welcome-screen', 'astra-sites-page-builder' ); ?>
|
338 |
-
</form>
|
339 |
-
<?php
|
340 |
-
$view_actions = $this->get_view_actions();
|
341 |
-
|
342 |
-
foreach ( $view_actions as $slug => $data ) {
|
343 |
-
|
344 |
-
if ( ! $data['show'] ) {
|
345 |
-
continue;
|
346 |
-
}
|
347 |
-
|
348 |
-
$url = $this->get_page_url( $slug );
|
349 |
-
|
350 |
-
if ( 'general' === $slug ) {
|
351 |
-
update_option( 'astra_parent_page_url', $url );
|
352 |
-
}
|
353 |
-
|
354 |
-
$active = ( $slug === $action ) ? 'nav-tab-active' : '';
|
355 |
-
?>
|
356 |
-
<a class='nav-tab <?php echo esc_attr( $active ); ?>' href='<?php echo esc_url( $url ); ?>'> <?php echo esc_html( $data['label'] ); ?> </a>
|
357 |
-
<?php } ?>
|
358 |
-
</div><!-- .nav-tab-wrapper -->
|
359 |
-
<?php
|
360 |
-
}
|
361 |
-
}
|
362 |
-
|
363 |
-
/**
|
364 |
-
* Get and return page URL
|
365 |
-
*
|
366 |
-
* @param string $menu_slug Menu name.
|
367 |
-
* @since 1.0.6
|
368 |
-
* @return string page url
|
369 |
-
*/
|
370 |
-
public function get_page_url( $menu_slug ) {
|
371 |
-
|
372 |
-
$parent_page = 'themes.php';
|
373 |
-
|
374 |
-
if ( strpos( $parent_page, '?' ) !== false ) {
|
375 |
-
$query_var = '&page=astra-sites';
|
376 |
-
} else {
|
377 |
-
$query_var = '?page=astra-sites';
|
378 |
-
}
|
379 |
-
|
380 |
-
$parent_page_url = admin_url( $parent_page . $query_var );
|
381 |
-
|
382 |
-
$url = $parent_page_url . '&action=' . $menu_slug;
|
383 |
-
|
384 |
-
return esc_url( $url );
|
385 |
-
}
|
386 |
-
|
387 |
-
/**
|
388 |
-
* Add main menu
|
389 |
-
*
|
390 |
-
* @since 1.0.6
|
391 |
-
*/
|
392 |
-
public function add_admin_menu() {
|
393 |
-
$page_title = apply_filters( 'astra_sites_menu_page_title', __( 'Astra Starter Sites', 'astra-sites' ) );
|
394 |
-
|
395 |
-
$page = add_theme_page( $page_title, $page_title, 'manage_options', 'astra-sites', array( $this, 'menu_callback' ) );
|
396 |
-
}
|
397 |
-
|
398 |
-
/**
|
399 |
-
* Menu callback
|
400 |
-
*
|
401 |
-
* @since 1.0.6
|
402 |
-
*/
|
403 |
-
public function menu_callback() {
|
404 |
-
|
405 |
-
$current_slug = isset( $_GET['action'] ) ? esc_attr( $_GET['action'] ) : 'general';
|
406 |
-
|
407 |
-
$active_tab = str_replace( '_', '-', $current_slug );
|
408 |
-
$current_slug = str_replace( '-', '_', $current_slug );
|
409 |
-
|
410 |
-
?>
|
411 |
-
<div class="astra-sites-menu-page-wrapper">
|
412 |
-
<?php $this->init_nav_menu( $active_tab ); ?>
|
413 |
-
<?php do_action( 'astra_sites_menu_' . esc_attr( $current_slug ) . '_action' ); ?>
|
414 |
-
</div>
|
415 |
-
<?php
|
416 |
-
}
|
417 |
-
|
418 |
-
/**
|
419 |
-
* Include general page
|
420 |
-
*
|
421 |
-
* @since 1.0.6
|
422 |
-
*/
|
423 |
-
public function general_page() {
|
424 |
-
$default_page_builder = $this->get_setting( 'page_builder' );
|
425 |
-
if ( empty( $default_page_builder ) || isset( $_GET['change-page-builder'] ) ) {
|
426 |
-
return;
|
427 |
-
}
|
428 |
-
require_once ASTRA_SITES_DIR . 'inc/includes/admin-page.php';
|
429 |
-
}
|
430 |
-
}
|
431 |
-
|
432 |
-
Astra_Sites_Page::get_instance();
|
433 |
-
|
434 |
-
}// End if.
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Astra Sites Page
|
4 |
+
*
|
5 |
+
* @since 1.0.6
|
6 |
+
* @package Astra Sites
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
if ( ! class_exists( 'Astra_Sites_Page' ) ) {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Astra Admin Settings
|
17 |
+
*/
|
18 |
+
class Astra_Sites_Page {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* View all actions
|
22 |
+
*
|
23 |
+
* @since 1.0.6
|
24 |
+
* @var array $view_actions
|
25 |
+
*/
|
26 |
+
public $view_actions = array();
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Member Variable
|
30 |
+
*
|
31 |
+
* @var instance
|
32 |
+
*/
|
33 |
+
private static $instance;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Initiator
|
37 |
+
*
|
38 |
+
* @since 1.3.0
|
39 |
+
*/
|
40 |
+
public static function get_instance() {
|
41 |
+
if ( ! isset( self::$instance ) ) {
|
42 |
+
self::$instance = new self;
|
43 |
+
}
|
44 |
+
return self::$instance;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Constructor
|
49 |
+
*
|
50 |
+
* @since 1.3.0
|
51 |
+
*/
|
52 |
+
public function __construct() {
|
53 |
+
|
54 |
+
if ( ! is_admin() ) {
|
55 |
+
return;
|
56 |
+
}
|
57 |
+
|
58 |
+
add_action( 'after_setup_theme', array( $this, 'init_admin_settings' ), 99 );
|
59 |
+
add_action( 'admin_init', array( $this, 'save_page_builder' ) );
|
60 |
+
add_action( 'admin_notices', array( $this, 'getting_started' ) );
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Admin notice
|
65 |
+
*
|
66 |
+
* @since 1.3.5
|
67 |
+
*
|
68 |
+
* @return void
|
69 |
+
*/
|
70 |
+
function getting_started() {
|
71 |
+
if ( 'plugins' !== get_current_screen()->base ) {
|
72 |
+
return;
|
73 |
+
}
|
74 |
+
|
75 |
+
$processed = get_user_meta( get_current_user_id(), '_astra_sites_gettings_started', true );
|
76 |
+
$product_name = Astra_Sites_White_Label::get_instance()->page_title( 'Astra' );
|
77 |
+
|
78 |
+
if ( $processed ) {
|
79 |
+
return;
|
80 |
+
}
|
81 |
+
|
82 |
+
?>
|
83 |
+
<div class="notice notice-info is-dismissible astra-sites-getting-started-notice">
|
84 |
+
<?php /* translators: %1$s is the admin page URL, %2$s is product name. */ ?>
|
85 |
+
<p><?php printf( __( 'Thank you for choosing %1$s! Check the library of <a class="astra-sites-getting-started-btn" href="%2$s">ready starter sites here »</a>', 'astra-sites' ), $product_name, admin_url( 'themes.php?page=astra-sites' ) ); ?></p>
|
86 |
+
</div>
|
87 |
+
<?php
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Save Page Builder
|
92 |
+
*
|
93 |
+
* @return void
|
94 |
+
*/
|
95 |
+
function save_page_builder() {
|
96 |
+
|
97 |
+
// Only admins can save settings.
|
98 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
99 |
+
return;
|
100 |
+
}
|
101 |
+
|
102 |
+
// Make sure we have a valid nonce.
|
103 |
+
if ( isset( $_REQUEST['astra-sites-page-builder'] ) && wp_verify_nonce( $_REQUEST['astra-sites-page-builder'], 'astra-sites-welcome-screen' ) ) {
|
104 |
+
|
105 |
+
// Stored Settings.
|
106 |
+
$stored_data = $this->get_settings();
|
107 |
+
|
108 |
+
// New settings.
|
109 |
+
$new_data = array(
|
110 |
+
'page_builder' => ( isset( $_REQUEST['page_builder'] ) ) ? sanitize_key( $_REQUEST['page_builder'] ) : '',
|
111 |
+
);
|
112 |
+
|
113 |
+
// Merge settings.
|
114 |
+
$data = wp_parse_args( $new_data, $stored_data );
|
115 |
+
|
116 |
+
// Update settings.
|
117 |
+
update_option( 'astra_sites_settings', $data );
|
118 |
+
|
119 |
+
wp_redirect( admin_url( '/themes.php?page=astra-sites' ) );
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
* Get single setting value
|
125 |
+
*
|
126 |
+
* @param string $key Setting key.
|
127 |
+
* @param mixed $defaults Setting value.
|
128 |
+
* @return mixed Stored setting value.
|
129 |
+
*/
|
130 |
+
function get_setting( $key = '', $defaults = '' ) {
|
131 |
+
|
132 |
+
$settings = $this->get_settings();
|
133 |
+
|
134 |
+
if ( empty( $settings ) ) {
|
135 |
+
return $defaults;
|
136 |
+
}
|
137 |
+
|
138 |
+
if ( array_key_exists( $key, $settings ) ) {
|
139 |
+
return $settings[ $key ];
|
140 |
+
}
|
141 |
+
|
142 |
+
return $defaults;
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Get Settings
|
147 |
+
*
|
148 |
+
* @return array Stored settings.
|
149 |
+
*/
|
150 |
+
function get_settings() {
|
151 |
+
|
152 |
+
$defaults = array(
|
153 |
+
'page_builder' => '',
|
154 |
+
);
|
155 |
+
|
156 |
+
$stored_data = get_option( 'astra_sites_settings', $defaults );
|
157 |
+
|
158 |
+
return wp_parse_args( $stored_data, $defaults );
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* Admin settings init
|
163 |
+
*/
|
164 |
+
public function init_admin_settings() {
|
165 |
+
add_action( 'admin_menu', array( $this, 'add_admin_menu' ), 100 );
|
166 |
+
add_action( 'admin_notices', array( $this, 'notices' ) );
|
167 |
+
add_action( 'astra_sites_menu_general_action', array( $this, 'general_page' ) );
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* Admin notice
|
172 |
+
*
|
173 |
+
* @since 1.2.8
|
174 |
+
*/
|
175 |
+
public function notices() {
|
176 |
+
|
177 |
+
if ( 'appearance_page_astra-sites' !== get_current_screen()->id ) {
|
178 |
+
return;
|
179 |
+
}
|
180 |
+
|
181 |
+
if ( ! class_exists( 'XMLReader' ) ) {
|
182 |
+
?>
|
183 |
+
<div class="notice astra-sites-xml-notice notice-error">
|
184 |
+
<p><b><?php _e( 'Required XMLReader PHP extension is missing on your server!', 'astra-sites' ); ?></b></p>
|
185 |
+
<?php /* translators: %s is the white label name. */ ?>
|
186 |
+
<p><?php printf( __( '%s import requires XMLReader extension to be installed. Please contact your web hosting provider and ask them to install and activate the XMLReader PHP extension.', 'astra-sites' ), ASTRA_SITES_NAME ); ?></p>
|
187 |
+
</div>
|
188 |
+
<?php
|
189 |
+
}
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Init Nav Menu
|
194 |
+
*
|
195 |
+
* @param mixed $action Action name.
|
196 |
+
* @since 1.0.6
|
197 |
+
*/
|
198 |
+
public function init_nav_menu( $action = '' ) {
|
199 |
+
|
200 |
+
if ( '' !== $action ) {
|
201 |
+
$this->render_tab_menu( $action );
|
202 |
+
}
|
203 |
+
}
|
204 |
+
|
205 |
+
/**
|
206 |
+
* Render tab menu
|
207 |
+
*
|
208 |
+
* @param mixed $action Action name.
|
209 |
+
* @since 1.0.6
|
210 |
+
*/
|
211 |
+
public function render_tab_menu( $action = '' ) {
|
212 |
+
?>
|
213 |
+
<div id="astra-sites-menu-page">
|
214 |
+
<?php $this->render( $action ); ?>
|
215 |
+
</div>
|
216 |
+
<?php
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
* View actions
|
221 |
+
*
|
222 |
+
* @since 1.0.11
|
223 |
+
*/
|
224 |
+
public function get_view_actions() {
|
225 |
+
|
226 |
+
if ( empty( $this->view_actions ) ) {
|
227 |
+
|
228 |
+
$this->view_actions = apply_filters(
|
229 |
+
'astra_sites_menu_item',
|
230 |
+
array()
|
231 |
+
);
|
232 |
+
}
|
233 |
+
|
234 |
+
return $this->view_actions;
|
235 |
+
}
|
236 |
+
|
237 |
+
/**
|
238 |
+
* Prints HTML content for tabs
|
239 |
+
*
|
240 |
+
* @param mixed $action Action name.
|
241 |
+
* @since 1.0.6
|
242 |
+
*/
|
243 |
+
public function render( $action ) {
|
244 |
+
|
245 |
+
// Settings update message.
|
246 |
+
if ( isset( $_REQUEST['message'] ) && ( 'saved' === $_REQUEST['message'] || 'saved_ext' === $_REQUEST['message'] ) ) {
|
247 |
+
?>
|
248 |
+
<span id="message" class="notice notice-success is-dismissive"><p> <?php esc_html_e( 'Settings saved successfully.', 'astra-sites' ); ?> </p></span>
|
249 |
+
<?php
|
250 |
+
}
|
251 |
+
|
252 |
+
$default_page_builder = $this->get_setting( 'page_builder' );
|
253 |
+
|
254 |
+
if ( empty( $default_page_builder ) || isset( $_GET['change-page-builder'] ) ) {
|
255 |
+
|
256 |
+
$plugins = get_option( 'active_plugins', array() );
|
257 |
+
$page_builders = array();
|
258 |
+
if ( $plugins ) {
|
259 |
+
foreach ( $plugins as $key => $plugin_init ) {
|
260 |
+
if ( false !== strpos( $plugin_init, 'elementor' ) ) {
|
261 |
+
$page_builders[] = 'elementor';
|
262 |
+
}
|
263 |
+
if ( false !== strpos( $plugin_init, 'beaver-builder' ) ) {
|
264 |
+
$page_builders[] = 'beaver-builder';
|
265 |
+
}
|
266 |
+
if ( false !== strpos( $plugin_init, 'brizy' ) ) {
|
267 |
+
$page_builders[] = 'brizy';
|
268 |
+
}
|
269 |
+
}
|
270 |
+
}
|
271 |
+
$page_builders = array_unique( $page_builders );
|
272 |
+
$page_builders[] = 'gutenberg';
|
273 |
+
$page_builders = implode( ',', $page_builders );
|
274 |
+
?>
|
275 |
+
<div class="astra-sites-welcome" data-plugins="<?php echo esc_attr( $page_builders ); ?>">
|
276 |
+
<div class="inner">
|
277 |
+
<form id="astra-sites-welcome-form" enctype="multipart/form-data" method="post">
|
278 |
+
<h1><?php _e( 'Select Page Builder', 'astra-sites' ); ?></h1>
|
279 |
+
<p><?php _e( 'Astra offers starter sites that can be imported in one click. These templates are available in few different page builders. Please choose your preferred page builder from the list below.', 'astra-sites' ); ?></p>
|
280 |
+
<div class="fields">
|
281 |
+
<ul class="page-builders">
|
282 |
+
<li>
|
283 |
+
<label>
|
284 |
+
<input type="radio" name="page_builder" value="gutenberg">
|
285 |
+
<img src="<?php echo esc_url( ASTRA_SITES_URI . 'inc/assets/images/gutenberg.jpg' ); ?>" />
|
286 |
+
<div class="title"><?php _e( 'Gutenberg', 'astra-sites' ); ?></div>
|
287 |
+
</label>
|
288 |
+
</li>
|
289 |
+
<li>
|
290 |
+
<label>
|
291 |
+
<input type="radio" name="page_builder" value="elementor">
|
292 |
+
<img src="<?php echo esc_url( ASTRA_SITES_URI . 'inc/assets/images/elementor.jpg' ); ?>" />
|
293 |
+
<div class="title"><?php _e( 'Elementor', 'astra-sites' ); ?></div>
|
294 |
+
</label>
|
295 |
+
</li>
|
296 |
+
<li>
|
297 |
+
<label>
|
298 |
+
<input type="radio" name="page_builder" value="beaver-builder">
|
299 |
+
<img src="<?php echo esc_url( ASTRA_SITES_URI . 'inc/assets/images/beaver-builder.png' ); ?>" />
|
300 |
+
<div class="title"><?php _e( 'Beaver Builder', 'astra-sites' ); ?></div>
|
301 |
+
</li>
|
302 |
+
<li>
|
303 |
+
<label>
|
304 |
+
<input type="radio" name="page_builder" value="brizy">
|
305 |
+
<img src="<?php echo esc_url( ASTRA_SITES_URI . 'inc/assets/images/brizy.jpg' ); ?>" />
|
306 |
+
<div class="title"><?php _e( 'Brizy', 'astra-sites' ); ?></div>
|
307 |
+
</label>
|
308 |
+
</li>
|
309 |
+
</ul>
|
310 |
+
<div class="astra-sites-page-builder-notice" style="display: none;">
|
311 |
+
<p class="description"><?php _e( 'Please select your favorite page builder to continue..', 'astra-sites' ); ?></p>
|
312 |
+
</div>
|
313 |
+
<?php submit_button( __( 'Next', 'astra-sites' ), 'primary button-hero disabled' ); ?>
|
314 |
+
</div>
|
315 |
+
|
316 |
+
<input type="hidden" name="message" value="saved" />
|
317 |
+
<?php wp_nonce_field( 'astra-sites-welcome-screen', 'astra-sites-page-builder' ); ?>
|
318 |
+
</form>
|
319 |
+
</div>
|
320 |
+
</div>
|
321 |
+
<?php } else { ?>
|
322 |
+
<?php
|
323 |
+
$page_title = apply_filters( 'astra_sites_page_title', __( 'Astra Starter Sites - Your Library of 100+ Ready Templates!', 'astra-sites' ) );
|
324 |
+
?>
|
325 |
+
<div class="nav-tab-wrapper">
|
326 |
+
<h1 class='astra-sites-title'> <?php echo esc_html( $page_title ); ?> </h1>
|
327 |
+
<form id="astra-sites-welcome-form-inline" enctype="multipart/form-data" method="post">
|
328 |
+
<div class="fields">
|
329 |
+
<select name="page_builder" required="required">
|
330 |
+
<option value="gutenberg" <?php selected( $default_page_builder, 'gutenberg' ); ?>><?php _e( 'Block Editor (Gutenberg)', 'astra-sites' ); ?></option>
|
331 |
+
<option value="elementor" <?php selected( $default_page_builder, 'elementor' ); ?>><?php _e( 'Elementor', 'astra-sites' ); ?></option>
|
332 |
+
<option value="beaver-builder" <?php selected( $default_page_builder, 'beaver-builder' ); ?>><?php _e( 'Beaver Builder', 'astra-sites' ); ?></option>
|
333 |
+
<option value="brizy" <?php selected( $default_page_builder, 'brizy' ); ?>><?php _e( 'Brizy', 'astra-sites' ); ?></option>
|
334 |
+
</select>
|
335 |
+
</div>
|
336 |
+
<input type="hidden" name="message" value="saved" />
|
337 |
+
<?php wp_nonce_field( 'astra-sites-welcome-screen', 'astra-sites-page-builder' ); ?>
|
338 |
+
</form>
|
339 |
+
<?php
|
340 |
+
$view_actions = $this->get_view_actions();
|
341 |
+
|
342 |
+
foreach ( $view_actions as $slug => $data ) {
|
343 |
+
|
344 |
+
if ( ! $data['show'] ) {
|
345 |
+
continue;
|
346 |
+
}
|
347 |
+
|
348 |
+
$url = $this->get_page_url( $slug );
|
349 |
+
|
350 |
+
if ( 'general' === $slug ) {
|
351 |
+
update_option( 'astra_parent_page_url', $url );
|
352 |
+
}
|
353 |
+
|
354 |
+
$active = ( $slug === $action ) ? 'nav-tab-active' : '';
|
355 |
+
?>
|
356 |
+
<a class='nav-tab <?php echo esc_attr( $active ); ?>' href='<?php echo esc_url( $url ); ?>'> <?php echo esc_html( $data['label'] ); ?> </a>
|
357 |
+
<?php } ?>
|
358 |
+
</div><!-- .nav-tab-wrapper -->
|
359 |
+
<?php
|
360 |
+
}
|
361 |
+
}
|
362 |
+
|
363 |
+
/**
|
364 |
+
* Get and return page URL
|
365 |
+
*
|
366 |
+
* @param string $menu_slug Menu name.
|
367 |
+
* @since 1.0.6
|
368 |
+
* @return string page url
|
369 |
+
*/
|
370 |
+
public function get_page_url( $menu_slug ) {
|
371 |
+
|
372 |
+
$parent_page = 'themes.php';
|
373 |
+
|
374 |
+
if ( strpos( $parent_page, '?' ) !== false ) {
|
375 |
+
$query_var = '&page=astra-sites';
|
376 |
+
} else {
|
377 |
+
$query_var = '?page=astra-sites';
|
378 |
+
}
|
379 |
+
|
380 |
+
$parent_page_url = admin_url( $parent_page . $query_var );
|
381 |
+
|
382 |
+
$url = $parent_page_url . '&action=' . $menu_slug;
|
383 |
+
|
384 |
+
return esc_url( $url );
|
385 |
+
}
|
386 |
+
|
387 |
+
/**
|
388 |
+
* Add main menu
|
389 |
+
*
|
390 |
+
* @since 1.0.6
|
391 |
+
*/
|
392 |
+
public function add_admin_menu() {
|
393 |
+
$page_title = apply_filters( 'astra_sites_menu_page_title', __( 'Astra Starter Sites', 'astra-sites' ) );
|
394 |
+
|
395 |
+
$page = add_theme_page( $page_title, $page_title, 'manage_options', 'astra-sites', array( $this, 'menu_callback' ) );
|
396 |
+
}
|
397 |
+
|
398 |
+
/**
|
399 |
+
* Menu callback
|
400 |
+
*
|
401 |
+
* @since 1.0.6
|
402 |
+
*/
|
403 |
+
public function menu_callback() {
|
404 |
+
|
405 |
+
$current_slug = isset( $_GET['action'] ) ? esc_attr( $_GET['action'] ) : 'general';
|
406 |
+
|
407 |
+
$active_tab = str_replace( '_', '-', $current_slug );
|
408 |
+
$current_slug = str_replace( '-', '_', $current_slug );
|
409 |
+
|
410 |
+
?>
|
411 |
+
<div class="astra-sites-menu-page-wrapper">
|
412 |
+
<?php $this->init_nav_menu( $active_tab ); ?>
|
413 |
+
<?php do_action( 'astra_sites_menu_' . esc_attr( $current_slug ) . '_action' ); ?>
|
414 |
+
</div>
|
415 |
+
<?php
|
416 |
+
}
|
417 |
+
|
418 |
+
/**
|
419 |
+
* Include general page
|
420 |
+
*
|
421 |
+
* @since 1.0.6
|
422 |
+
*/
|
423 |
+
public function general_page() {
|
424 |
+
$default_page_builder = $this->get_setting( 'page_builder' );
|
425 |
+
if ( empty( $default_page_builder ) || isset( $_GET['change-page-builder'] ) ) {
|
426 |
+
return;
|
427 |
+
}
|
428 |
+
require_once ASTRA_SITES_DIR . 'inc/includes/admin-page.php';
|
429 |
+
}
|
430 |
+
}
|
431 |
+
|
432 |
+
Astra_Sites_Page::get_instance();
|
433 |
+
|
434 |
+
}// End if.
|
inc/classes/class-astra-sites.php
CHANGED
@@ -1,600 +1,600 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Astra Sites
|
4 |
-
*
|
5 |
-
* @since 1.0.0
|
6 |
-
* @package Astra Sites
|
7 |
-
*/
|
8 |
-
|
9 |
-
defined( 'ABSPATH' ) or exit;
|
10 |
-
|
11 |
-
if ( ! class_exists( 'Astra_Sites' ) ) :
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Astra_Sites
|
15 |
-
*/
|
16 |
-
class Astra_Sites {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* API URL which is used to get the response from.
|
20 |
-
*
|
21 |
-
* @since 1.0.0
|
22 |
-
* @var (String) URL
|
23 |
-
*/
|
24 |
-
public static $api_url;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Instance of Astra_Sites
|
28 |
-
*
|
29 |
-
* @since 1.0.0
|
30 |
-
* @var (Object) Astra_Sites
|
31 |
-
*/
|
32 |
-
private static $_instance = null;
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Instance of Astra_Sites.
|
36 |
-
*
|
37 |
-
* @since 1.0.0
|
38 |
-
*
|
39 |
-
* @return object Class object.
|
40 |
-
*/
|
41 |
-
public static function get_instance() {
|
42 |
-
if ( ! isset( self::$_instance ) ) {
|
43 |
-
self::$_instance = new self;
|
44 |
-
}
|
45 |
-
|
46 |
-
return self::$_instance;
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Constructor.
|
51 |
-
*
|
52 |
-
* @since 1.0.0
|
53 |
-
*/
|
54 |
-
private function __construct() {
|
55 |
-
|
56 |
-
self::set_api_url();
|
57 |
-
|
58 |
-
$this->includes();
|
59 |
-
|
60 |
-
add_action( 'admin_notices', array( $this, 'add_notice' ), 1 );
|
61 |
-
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
|
62 |
-
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
|
63 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue' ) );
|
64 |
-
|
65 |
-
// AJAX.
|
66 |
-
add_action( 'wp_ajax_astra-required-plugins', array( $this, 'required_plugin' ) );
|
67 |
-
add_action( 'wp_ajax_astra-required-plugin-activate', array( $this, 'required_plugin_activate' ) );
|
68 |
-
add_action( 'wp_ajax_astra-sites-backup-settings', array( $this, 'backup_settings' ) );
|
69 |
-
add_action( 'wp_ajax_astra-sites-set-reset-data', array( $this, 'set_reset_data' ) );
|
70 |
-
add_action( 'wp_ajax_astra-sites-activate-theme', array( $this, 'activate_theme' ) );
|
71 |
-
add_action( 'wp_ajax_astra-sites-getting-started-notice', array( $this, 'getting_started_notice' ) );
|
72 |
-
}
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Close getting started notice for current user
|
76 |
-
*
|
77 |
-
* @since 1.3.5
|
78 |
-
* @return void
|
79 |
-
*/
|
80 |
-
function getting_started_notice() {
|
81 |
-
update_user_meta( get_current_user_id(), '_astra_sites_gettings_started', true );
|
82 |
-
wp_send_json_success();
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Activate theme
|
87 |
-
*
|
88 |
-
* @since 1.3.2
|
89 |
-
* @return void
|
90 |
-
*/
|
91 |
-
function activate_theme() {
|
92 |
-
|
93 |
-
switch_theme( 'astra' );
|
94 |
-
|
95 |
-
wp_send_json_success(
|
96 |
-
array(
|
97 |
-
'success' => true,
|
98 |
-
'message' => __( 'Theme Activated', 'astra-sites' ),
|
99 |
-
)
|
100 |
-
);
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Set reset data
|
105 |
-
*/
|
106 |
-
function set_reset_data() {
|
107 |
-
if ( ! current_user_can( 'manage_options' ) ) {
|
108 |
-
return;
|
109 |
-
}
|
110 |
-
|
111 |
-
global $wpdb;
|
112 |
-
|
113 |
-
$post_ids = $wpdb->get_col( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_astra_sites_imported_post'" );
|
114 |
-
$form_ids = $wpdb->get_col( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_astra_sites_imported_wp_forms'" );
|
115 |
-
$term_ids = $wpdb->get_col( "SELECT term_id FROM {$wpdb->termmeta} WHERE meta_key='_astra_sites_imported_term'" );
|
116 |
-
|
117 |
-
wp_send_json_success(
|
118 |
-
array(
|
119 |
-
'reset_posts' => $post_ids,
|
120 |
-
'reset_wp_forms' => $form_ids,
|
121 |
-
'reset_terms' => $term_ids,
|
122 |
-
)
|
123 |
-
);
|
124 |
-
}
|
125 |
-
|
126 |
-
/**
|
127 |
-
* Backup our existing settings.
|
128 |
-
*/
|
129 |
-
function backup_settings() {
|
130 |
-
if ( ! current_user_can( 'manage_options' ) ) {
|
131 |
-
return;
|
132 |
-
}
|
133 |
-
|
134 |
-
$file_name = 'astra-sites-backup-' . date( 'd-M-Y-h-i-s' ) . '.json';
|
135 |
-
$old_settings = get_option( 'astra-settings', array() );
|
136 |
-
$upload_dir = Astra_Sites_Importer_Log::get_instance()->log_dir();
|
137 |
-
$upload_path = trailingslashit( $upload_dir['path'] );
|
138 |
-
$log_file = $upload_path . $file_name;
|
139 |
-
$file_system = Astra_Sites_Importer_Log::get_instance()->get_filesystem();
|
140 |
-
|
141 |
-
// If file system fails? Then take a backup in site option.
|
142 |
-
if ( false === $file_system->put_contents( $log_file, json_encode( $old_settings ), FS_CHMOD_FILE ) ) {
|
143 |
-
update_option( 'astra_sites_' . $file_name, $old_settings );
|
144 |
-
}
|
145 |
-
|
146 |
-
wp_send_json_success();
|
147 |
-
}
|
148 |
-
|
149 |
-
/**
|
150 |
-
* Add Admin Notice.
|
151 |
-
*/
|
152 |
-
function add_notice() {
|
153 |
-
|
154 |
-
$theme_status = 'astra-sites-theme-' . $this->get_theme_status();
|
155 |
-
|
156 |
-
Astra_Notices::add_notice(
|
157 |
-
array(
|
158 |
-
'id' => 'astra-theme-activation-nag',
|
159 |
-
'type' => 'error',
|
160 |
-
'show_if' => ( ! defined( 'ASTRA_THEME_SETTINGS' ) ) ? true : false,
|
161 |
-
/* translators: 1: theme.php file*/
|
162 |
-
'message' => sprintf( __( '<p>Astra Theme needs to be active for you to use currently installed "%1$s" plugin. <a href="#" class="%3$s" data-theme-slug="astra">Install & Activate Now</a></p>', 'astra-sites' ), ASTRA_SITES_NAME, esc_url( admin_url( 'themes.php?theme=astra' ) ), $theme_status ),
|
163 |
-
'dismissible' => true,
|
164 |
-
'dismissible-time' => WEEK_IN_SECONDS,
|
165 |
-
)
|
166 |
-
);
|
167 |
-
}
|
168 |
-
|
169 |
-
/**
|
170 |
-
* Get theme install, active or inactive status.
|
171 |
-
*
|
172 |
-
* @since 1.3.2
|
173 |
-
*
|
174 |
-
* @return string Theme status
|
175 |
-
*/
|
176 |
-
function get_theme_status() {
|
177 |
-
|
178 |
-
$theme = wp_get_theme();
|
179 |
-
|
180 |
-
// Theme installed and activate.
|
181 |
-
if ( 'Astra' === $theme->name || 'Astra' === $theme->parent_theme ) {
|
182 |
-
return 'installed-and-active';
|
183 |
-
}
|
184 |
-
|
185 |
-
// Theme installed but not activate.
|
186 |
-
foreach ( (array) wp_get_themes() as $theme_dir => $theme ) {
|
187 |
-
if ( 'Astra' === $theme->name || 'Astra' === $theme->parent_theme ) {
|
188 |
-
return 'installed-but-inactive';
|
189 |
-
}
|
190 |
-
}
|
191 |
-
|
192 |
-
return 'not-installed';
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* Loads textdomain for the plugin.
|
197 |
-
*
|
198 |
-
* @since 1.0.1
|
199 |
-
*/
|
200 |
-
function load_textdomain() {
|
201 |
-
load_plugin_textdomain( 'astra-sites' );
|
202 |
-
}
|
203 |
-
|
204 |
-
/**
|
205 |
-
* Admin Notices
|
206 |
-
*
|
207 |
-
* @since 1.0.5
|
208 |
-
* @return void
|
209 |
-
*/
|
210 |
-
function admin_notices() {
|
211 |
-
|
212 |
-
if ( ! defined( 'ASTRA_THEME_SETTINGS' ) ) {
|
213 |
-
return;
|
214 |
-
}
|
215 |
-
|
216 |
-
add_action( 'plugin_action_links_' . ASTRA_SITES_BASE, array( $this, 'action_links' ) );
|
217 |
-
}
|
218 |
-
|
219 |
-
/**
|
220 |
-
* Show action links on the plugin screen.
|
221 |
-
*
|
222 |
-
* @param mixed $links Plugin Action links.
|
223 |
-
* @return array
|
224 |
-
*/
|
225 |
-
function action_links( $links ) {
|
226 |
-
$action_links = array(
|
227 |
-
'settings' => '<a href="' . admin_url( 'themes.php?page=astra-sites' ) . '" aria-label="' . esc_attr__( 'See Library', 'astra-sites' ) . '">' . esc_html__( 'See Library', 'astra-sites' ) . '</a>',
|
228 |
-
);
|
229 |
-
|
230 |
-
return array_merge( $action_links, $links );
|
231 |
-
}
|
232 |
-
|
233 |
-
/**
|
234 |
-
* Setter for $api_url
|
235 |
-
*
|
236 |
-
* @since 1.0.0
|
237 |
-
*/
|
238 |
-
public static function set_api_url() {
|
239 |
-
self::$api_url = apply_filters( 'astra_sites_api_url', 'https://websitedemos.net/wp-json/wp/v2/' );
|
240 |
-
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* Enqueue admin scripts.
|
245 |
-
*
|
246 |
-
* @since 1.3.2 Added 'install-theme.js' to install and activate theme.
|
247 |
-
* @since 1.0.5 Added 'getUpgradeText' and 'getUpgradeURL' localize variables.
|
248 |
-
*
|
249 |
-
* @since 1.0.0
|
250 |
-
*
|
251 |
-
* @param string $hook Current hook name.
|
252 |
-
* @return void
|
253 |
-
*/
|
254 |
-
public function admin_enqueue( $hook = '' ) {
|
255 |
-
|
256 |
-
wp_enqueue_script( 'astra-sites-install-theme', ASTRA_SITES_URI . 'inc/assets/js/install-theme.js', array( 'jquery', 'updates' ), ASTRA_SITES_VER, true );
|
257 |
-
wp_enqueue_style( 'astra-sites-install-theme', ASTRA_SITES_URI . 'inc/assets/css/install-theme.css', null, ASTRA_SITES_VER, 'all' );
|
258 |
-
|
259 |
-
$data = apply_filters(
|
260 |
-
'astra_sites_install_theme_localize_vars',
|
261 |
-
array(
|
262 |
-
'installed' => __( 'Installed! Activating..', 'astra-sites' ),
|
263 |
-
'activating' => __( 'Activating..', 'astra-sites' ),
|
264 |
-
'activated' => __( 'Activated! Reloading..', 'astra-sites' ),
|
265 |
-
'installing' => __( 'Installing..', 'astra-sites' ),
|
266 |
-
'ajaxurl' => esc_url( admin_url( 'admin-ajax.php' ) ),
|
267 |
-
)
|
268 |
-
);
|
269 |
-
wp_localize_script( 'astra-sites-install-theme', 'AstraSitesInstallThemeVars', $data );
|
270 |
-
|
271 |
-
if ( 'appearance_page_astra-sites' !== $hook ) {
|
272 |
-
return;
|
273 |
-
}
|
274 |
-
|
275 |
-
global $is_IE, $is_edge;
|
276 |
-
|
277 |
-
if ( $is_IE || $is_edge ) {
|
278 |
-
wp_enqueue_script( 'astra-sites-eventsource', ASTRA_SITES_URI . 'inc/assets/js/eventsource.min.js', array( 'jquery', 'wp-util', 'updates' ), ASTRA_SITES_VER, true );
|
279 |
-
}
|
280 |
-
|
281 |
-
// Fetch.
|
282 |
-
wp_register_script( 'astra-sites-fetch', ASTRA_SITES_URI . 'inc/assets/js/fetch.umd.js', array( 'jquery' ), ASTRA_SITES_VER, true );
|
283 |
-
|
284 |
-
// API.
|
285 |
-
wp_register_script( 'astra-sites-api', ASTRA_SITES_URI . 'inc/assets/js/astra-sites-api.js', array( 'jquery', 'astra-sites-fetch' ), ASTRA_SITES_VER, true );
|
286 |
-
|
287 |
-
// Admin Page.
|
288 |
-
wp_enqueue_style( 'astra-sites-admin', ASTRA_SITES_URI . 'inc/assets/css/admin.css', ASTRA_SITES_VER, true );
|
289 |
-
wp_enqueue_script( 'astra-sites-admin-page', ASTRA_SITES_URI . 'inc/assets/js/admin-page.js', array( 'jquery', 'wp-util', 'updates' ), ASTRA_SITES_VER, true );
|
290 |
-
wp_enqueue_script( 'astra-sites-render-grid', ASTRA_SITES_URI . 'inc/assets/js/render-grid.js', array( 'wp-util', 'astra-sites-api', 'imagesloaded', 'jquery' ), ASTRA_SITES_VER, true );
|
291 |
-
|
292 |
-
$data = apply_filters(
|
293 |
-
'astra_sites_localize_vars',
|
294 |
-
array(
|
295 |
-
'ApiURL' => self::$api_url,
|
296 |
-
'filters' => array(
|
297 |
-
'page_builder' => array(
|
298 |
-
'title' => __( 'Page Builder', 'astra-sites' ),
|
299 |
-
'slug' => 'astra-site-page-builder',
|
300 |
-
'trigger' => 'astra-api-category-loaded',
|
301 |
-
),
|
302 |
-
'categories' => array(
|
303 |
-
'title' => __( 'Categories', 'astra-sites' ),
|
304 |
-
'slug' => 'astra-site-category',
|
305 |
-
'trigger' => 'astra-api-category-loaded',
|
306 |
-
),
|
307 |
-
),
|
308 |
-
)
|
309 |
-
);
|
310 |
-
wp_localize_script( 'astra-sites-api', 'astraSitesApi', $data );
|
311 |
-
|
312 |
-
// Use this for premium demos.
|
313 |
-
$request_params = apply_filters(
|
314 |
-
'astra_sites_api_params',
|
315 |
-
array(
|
316 |
-
'purchase_key' => '',
|
317 |
-
'site_url' => '',
|
318 |
-
'par-page' => 30,
|
319 |
-
)
|
320 |
-
);
|
321 |
-
|
322 |
-
$data = apply_filters(
|
323 |
-
'astra_sites_render_localize_vars',
|
324 |
-
array(
|
325 |
-
'sites' => $request_params,
|
326 |
-
'page-builders' => array(),
|
327 |
-
'categories' => array(),
|
328 |
-
'settings' => array(),
|
329 |
-
'default_page_builder' => Astra_Sites_Page::get_instance()->get_setting( 'page_builder' ),
|
330 |
-
)
|
331 |
-
);
|
332 |
-
|
333 |
-
wp_localize_script( 'astra-sites-render-grid', 'astraRenderGrid', $data );
|
334 |
-
|
335 |
-
$data = apply_filters(
|
336 |
-
'astra_sites_localize_vars',
|
337 |
-
array(
|
338 |
-
'debug' => ( ( defined( 'WP_DEBUG' ) && WP_DEBUG ) || isset( $_GET['debug'] ) ) ? true : false,
|
339 |
-
'isPro' => defined( 'ASTRA_PRO_SITES_NAME' ) ? true : false,
|
340 |
-
'isWhiteLabeled' => Astra_Sites_White_Label::get_instance()->is_white_labeled(),
|
341 |
-
'ajaxurl' => esc_url( admin_url( 'admin-ajax.php' ) ),
|
342 |
-
'siteURL' => site_url(),
|
343 |
-
'docUrl' => 'https://wpastra.com/',
|
344 |
-
'getProText' => __( 'Get Agency Bundle', 'astra-sites' ),
|
345 |
-
'getProURL' => esc_url( 'https://wpastra.com/agency/?utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=wp-dashboard' ),
|
346 |
-
'getUpgradeText' => __( 'Upgrade', 'astra-sites' ),
|
347 |
-
'getUpgradeURL' => esc_url( 'https://wpastra.com/agency/?utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=wp-dashboard' ),
|
348 |
-
'_ajax_nonce' => wp_create_nonce( 'astra-sites' ),
|
349 |
-
'requiredPlugins' => array(),
|
350 |
-
'XMLReaderDisabled' => ! class_exists( 'XMLReader' ) ? true : false,
|
351 |
-
'strings' => array(
|
352 |
-
/* translators: %s are HTML tags. */
|
353 |
-
'warningXMLReader' => sprintf( __( '%1$sRequired XMLReader PHP extension is missing on your server!%2$sAstra Sites import requires XMLReader extension to be installed. Please contact your web hosting provider and ask them to install and activate the XMLReader PHP extension.', 'astra-sites' ), '<div class="notice astra-sites-xml-notice notice-error"><p><b>', '</b></p><p>', '</p></div>' ),
|
354 |
-
'warningBeforeCloseWindow' => __( 'Warning! Astra Site Import process is not complete. Don\'t close the window until import process complete. Do you still want to leave the window?', 'astra-sites' ),
|
355 |
-
'importFailedBtnSmall' => __( 'Error!', 'astra-sites' ),
|
356 |
-
'importFailedBtnLarge' => __( 'Error! Read Possibilities.', 'astra-sites' ),
|
357 |
-
'importFailedURL' => esc_url( 'https://wpastra.com/docs/?p=1314&utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=import-failed' ),
|
358 |
-
'viewSite' => __( 'Done! View Site', 'astra-sites' ),
|
359 |
-
'btnActivating' => __( 'Activating', 'astra-sites' ) . '…',
|
360 |
-
'btnActive' => __( 'Active', 'astra-sites' ),
|
361 |
-
'importFailBtn' => __( 'Import failed.', 'astra-sites' ),
|
362 |
-
'importFailBtnLarge' => __( 'Import failed. See error log.', 'astra-sites' ),
|
363 |
-
'importDemo' => __( 'Import This Site', 'astra-sites' ),
|
364 |
-
'importingDemo' => __( 'Importing..', 'astra-sites' ),
|
365 |
-
'DescExpand' => __( 'Read more', 'astra-sites' ) . '…',
|
366 |
-
'DescCollapse' => __( 'Hide', 'astra-sites' ),
|
367 |
-
'responseError' => __( 'There was a problem receiving a response from server.', 'astra-sites' ),
|
368 |
-
'searchNoFound' => __( 'No Demos found, Try a different search.', 'astra-sites' ),
|
369 |
-
),
|
370 |
-
'log' => array(
|
371 |
-
'installingPlugin' => __( 'Installing plugin ', 'astra-sites' ),
|
372 |
-
'installed' => __( 'Plugin installed!', 'astra-sites' ),
|
373 |
-
'activating' => __( 'Activating plugin ', 'astra-sites' ),
|
374 |
-
'activated' => __( 'Plugin activated ', 'astra-sites' ),
|
375 |
-
'bulkActivation' => __( 'Bulk plugin activation...', 'astra-sites' ),
|
376 |
-
'activate' => __( 'Plugin activate - ', 'astra-sites' ),
|
377 |
-
'activationError' => __( 'Error! While activating plugin - ', 'astra-sites' ),
|
378 |
-
'bulkInstall' => __( 'Bulk plugin installation...', 'astra-sites' ),
|
379 |
-
'api' => __( 'Site API ', 'astra-sites' ),
|
380 |
-
'importing' => __( 'Importing..', 'astra-sites' ),
|
381 |
-
'processingRequest' => __( 'Processing requests...', 'astra-sites' ),
|
382 |
-
'importCustomizer' => __( 'Importing "Customizer Settings"...', 'astra-sites' ),
|
383 |
-
'importCustomizerSuccess' => __( 'Imported customizer settings!', 'astra-sites' ),
|
384 |
-
'importWPForms' => __( 'Importing "Contact Forms"...', 'astra-sites' ),
|
385 |
-
'importWPFormsSuccess' => __( 'Imported Contact Forms!', 'astra-sites' ),
|
386 |
-
'importXMLPrepare' => __( 'Preparing "XML" Data...', 'astra-sites' ),
|
387 |
-
'importXMLPrepareSuccess' => __( 'Set XML data!', 'astra-sites' ),
|
388 |
-
'importXML' => __( 'Importing "XML"...', 'astra-sites' ),
|
389 |
-
'importXMLSuccess' => __( 'Imported XML!', 'astra-sites' ),
|
390 |
-
'importOptions' => __( 'Importing "Options"...', 'astra-sites' ),
|
391 |
-
'importOptionsSuccess' => __( 'Imported Options!', 'astra-sites' ),
|
392 |
-
'importWidgets' => __( 'Importing "Widgets"...', 'astra-sites' ),
|
393 |
-
'importWidgetsSuccess' => __( 'Imported Widgets!', 'astra-sites' ),
|
394 |
-
'serverConfiguration' => esc_url( 'https://wpastra.com/docs/?p=1314&utm_source=demo-import-panel&utm_campaign=import-error&utm_medium=wp-dashboard' ),
|
395 |
-
'success' => __( 'View site: ', 'astra-sites' ),
|
396 |
-
'gettingData' => __( 'Getting Site Information..', 'astra-sites' ),
|
397 |
-
'importingCustomizer' => __( 'Importing Customizer Settings..', 'astra-sites' ),
|
398 |
-
'importingWPForms' => __( 'Importing Contact Forms..', 'astra-sites' ),
|
399 |
-
'importXMLPreparing' => __( 'Setting up import data..', 'astra-sites' ),
|
400 |
-
'importingXML' => __( 'Importing Content..', 'astra-sites' ),
|
401 |
-
'importingOptions' => __( 'Importing Site Options..', 'astra-sites' ),
|
402 |
-
'importingWidgets' => __( 'Importing Widgets..', 'astra-sites' ),
|
403 |
-
'importComplete' => __( 'Import Complete..', 'astra-sites' ),
|
404 |
-
'preview' => __( 'Previewing ', 'astra-sites' ),
|
405 |
-
'importLogText' => __( 'See Error Log →', 'astra-sites' ),
|
406 |
-
),
|
407 |
-
)
|
408 |
-
);
|
409 |
-
|
410 |
-
wp_localize_script( 'astra-sites-admin-page', 'astraSitesAdmin', $data );
|
411 |
-
|
412 |
-
}
|
413 |
-
|
414 |
-
/**
|
415 |
-
* Load all the required files in the importer.
|
416 |
-
*
|
417 |
-
* @since 1.0.0
|
418 |
-
*/
|
419 |
-
private function includes() {
|
420 |
-
|
421 |
-
require_once ASTRA_SITES_DIR . 'inc/lib/astra-notices/class-astra-notices.php';
|
422 |
-
require_once ASTRA_SITES_DIR . 'inc/classes/class-astra-sites-white-label.php';
|
423 |
-
require_once ASTRA_SITES_DIR . 'inc/classes/class-astra-sites-page.php';
|
424 |
-
require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/class-astra-sites-compatibility.php';
|
425 |
-
require_once ASTRA_SITES_DIR . 'inc/classes/class-astra-sites-importer.php';
|
426 |
-
}
|
427 |
-
|
428 |
-
/**
|
429 |
-
* Required Plugin Activate
|
430 |
-
*
|
431 |
-
* @since 1.0.0
|
432 |
-
*/
|
433 |
-
public function required_plugin_activate() {
|
434 |
-
|
435 |
-
if ( ! current_user_can( 'install_plugins' ) || ! isset( $_POST['init'] ) || ! $_POST['init'] ) {
|
436 |
-
wp_send_json_error(
|
437 |
-
array(
|
438 |
-
'success' => false,
|
439 |
-
'message' => __( 'No plugin specified', 'astra-sites' ),
|
440 |
-
)
|
441 |
-
);
|
442 |
-
}
|
443 |
-
|
444 |
-
$data = array();
|
445 |
-
$plugin_init = ( isset( $_POST['init'] ) ) ? esc_attr( $_POST['init'] ) : '';
|
446 |
-
$astra_site_options = ( isset( $_POST['options'] ) ) ? json_decode( stripslashes( $_POST['options'] ) ) : '';
|
447 |
-
$enabled_extensions = ( isset( $_POST['enabledExtensions'] ) ) ? json_decode( stripslashes( $_POST['enabledExtensions'] ) ) : '';
|
448 |
-
|
449 |
-
$data['astra_site_options'] = $astra_site_options;
|
450 |
-
$data['enabled_extensions'] = $enabled_extensions;
|
451 |
-
|
452 |
-
$activate = activate_plugin( $plugin_init, '', false, true );
|
453 |
-
|
454 |
-
if ( is_wp_error( $activate ) ) {
|
455 |
-
wp_send_json_error(
|
456 |
-
array(
|
457 |
-
'success' => false,
|
458 |
-
'message' => $activate->get_error_message(),
|
459 |
-
)
|
460 |
-
);
|
461 |
-
}
|
462 |
-
|
463 |
-
do_action( 'astra_sites_after_plugin_activation', $plugin_init, $data );
|
464 |
-
|
465 |
-
wp_send_json_success(
|
466 |
-
array(
|
467 |
-
'success' => true,
|
468 |
-
'message' => __( 'Plugin Activated', 'astra-sites' ),
|
469 |
-
)
|
470 |
-
);
|
471 |
-
|
472 |
-
}
|
473 |
-
|
474 |
-
/**
|
475 |
-
* Required Plugin
|
476 |
-
*
|
477 |
-
* @since 1.0.0
|
478 |
-
* @return void
|
479 |
-
*/
|
480 |
-
public function required_plugin() {
|
481 |
-
|
482 |
-
// Verify Nonce.
|
483 |
-
check_ajax_referer( 'astra-sites', '_ajax_nonce' );
|
484 |
-
|
485 |
-
$response = array(
|
486 |
-
'active' => array(),
|
487 |
-
'inactive' => array(),
|
488 |
-
'notinstalled' => array(),
|
489 |
-
);
|
490 |
-
|
491 |
-
if ( ! current_user_can( 'customize' ) ) {
|
492 |
-
wp_send_json_error( $response );
|
493 |
-
}
|
494 |
-
|
495 |
-
$required_plugins = ( isset( $_POST['required_plugins'] ) ) ? $_POST['required_plugins'] : array();
|
496 |
-
|
497 |
-
if ( count( $required_plugins ) > 0 ) {
|
498 |
-
foreach ( $required_plugins as $key => $plugin ) {
|
499 |
-
|
500 |
-
/**
|
501 |
-
* Has Pro Version Support?
|
502 |
-
* And
|
503 |
-
* Is Pro Version Installed?
|
504 |
-
*/
|
505 |
-
$plugin_pro = self::pro_plugin_exist( $plugin['init'] );
|
506 |
-
if ( $plugin_pro ) {
|
507 |
-
|
508 |
-
// Pro - Active.
|
509 |
-
if ( is_plugin_active( $plugin_pro['init'] ) ) {
|
510 |
-
$response['active'][] = $plugin_pro;
|
511 |
-
|
512 |
-
// Pro - Inactive.
|
513 |
-
} else {
|
514 |
-
$response['inactive'][] = $plugin_pro;
|
515 |
-
}
|
516 |
-
} else {
|
517 |
-
|
518 |
-
// Lite - Installed but Inactive.
|
519 |
-
if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin['init'] ) && is_plugin_inactive( $plugin['init'] ) ) {
|
520 |
-
|
521 |
-
$response['inactive'][] = $plugin;
|
522 |
-
|
523 |
-
// Lite - Not Installed.
|
524 |
-
} elseif ( ! file_exists( WP_PLUGIN_DIR . '/' . $plugin['init'] ) ) {
|
525 |
-
|
526 |
-
$response['notinstalled'][] = $plugin;
|
527 |
-
|
528 |
-
// Lite - Active.
|
529 |
-
} else {
|
530 |
-
$response['active'][] = $plugin;
|
531 |
-
}
|
532 |
-
}
|
533 |
-
}
|
534 |
-
}
|
535 |
-
|
536 |
-
// Send response.
|
537 |
-
wp_send_json_success( $response );
|
538 |
-
}
|
539 |
-
|
540 |
-
/**
|
541 |
-
* Has Pro Version Support?
|
542 |
-
* And
|
543 |
-
* Is Pro Version Installed?
|
544 |
-
*
|
545 |
-
* Check Pro plugin version exist of requested plugin lite version.
|
546 |
-
*
|
547 |
-
* Eg. If plugin 'BB Lite Version' required to import demo. Then we check the 'BB Agency Version' is exist?
|
548 |
-
* If yes then we only 'Activate' Agency Version. [We couldn't install agency version.]
|
549 |
-
* Else we 'Activate' or 'Install' Lite Version.
|
550 |
-
*
|
551 |
-
* @since 1.0.1
|
552 |
-
*
|
553 |
-
* @param string $lite_version Lite version init file.
|
554 |
-
* @return mixed Return false if not installed or not supported by us
|
555 |
-
* else return 'Pro' version details.
|
556 |
-
*/
|
557 |
-
public static function pro_plugin_exist( $lite_version = '' ) {
|
558 |
-
|
559 |
-
// Lite init => Pro init.
|
560 |
-
$plugins = apply_filters(
|
561 |
-
'astra_sites_pro_plugin_exist',
|
562 |
-
array(
|
563 |
-
'beaver-builder-lite-version/fl-builder.php' => array(
|
564 |
-
'slug' => 'bb-plugin',
|
565 |
-
'init' => 'bb-plugin/fl-builder.php',
|
566 |
-
'name' => 'Beaver Builder Plugin',
|
567 |
-
),
|
568 |
-
'ultimate-addons-for-beaver-builder-lite/bb-ultimate-addon.php' => array(
|
569 |
-
'slug' => 'bb-ultimate-addon',
|
570 |
-
'init' => 'bb-ultimate-addon/bb-ultimate-addon.php',
|
571 |
-
'name' => 'Ultimate Addon for Beaver Builder',
|
572 |
-
),
|
573 |
-
'wpforms-lite/wpforms.php' => array(
|
574 |
-
'slug' => 'wpforms',
|
575 |
-
'init' => 'wpforms/wpforms.php',
|
576 |
-
'name' => 'WPForms',
|
577 |
-
),
|
578 |
-
),
|
579 |
-
$lite_version
|
580 |
-
);
|
581 |
-
|
582 |
-
if ( isset( $plugins[ $lite_version ] ) ) {
|
583 |
-
|
584 |
-
// Pro plugin directory exist?
|
585 |
-
if ( file_exists( WP_PLUGIN_DIR . '/' . $plugins[ $lite_version ]['init'] ) ) {
|
586 |
-
return $plugins[ $lite_version ];
|
587 |
-
}
|
588 |
-
}
|
589 |
-
|
590 |
-
return false;
|
591 |
-
}
|
592 |
-
|
593 |
-
}
|
594 |
-
|
595 |
-
/**
|
596 |
-
* Kicking this off by calling 'get_instance()' method
|
597 |
-
*/
|
598 |
-
Astra_Sites::get_instance();
|
599 |
-
|
600 |
-
endif;
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Astra Sites
|
4 |
+
*
|
5 |
+
* @since 1.0.0
|
6 |
+
* @package Astra Sites
|
7 |
+
*/
|
8 |
+
|
9 |
+
defined( 'ABSPATH' ) or exit;
|
10 |
+
|
11 |
+
if ( ! class_exists( 'Astra_Sites' ) ) :
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Astra_Sites
|
15 |
+
*/
|
16 |
+
class Astra_Sites {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* API URL which is used to get the response from.
|
20 |
+
*
|
21 |
+
* @since 1.0.0
|
22 |
+
* @var (String) URL
|
23 |
+
*/
|
24 |
+
public static $api_url;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Instance of Astra_Sites
|
28 |
+
*
|
29 |
+
* @since 1.0.0
|
30 |
+
* @var (Object) Astra_Sites
|
31 |
+
*/
|
32 |
+
private static $_instance = null;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Instance of Astra_Sites.
|
36 |
+
*
|
37 |
+
* @since 1.0.0
|
38 |
+
*
|
39 |
+
* @return object Class object.
|
40 |
+
*/
|
41 |
+
public static function get_instance() {
|
42 |
+
if ( ! isset( self::$_instance ) ) {
|
43 |
+
self::$_instance = new self;
|
44 |
+
}
|
45 |
+
|
46 |
+
return self::$_instance;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Constructor.
|
51 |
+
*
|
52 |
+
* @since 1.0.0
|
53 |
+
*/
|
54 |
+
private function __construct() {
|
55 |
+
|
56 |
+
self::set_api_url();
|
57 |
+
|
58 |
+
$this->includes();
|
59 |
+
|
60 |
+
add_action( 'admin_notices', array( $this, 'add_notice' ), 1 );
|
61 |
+
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
|
62 |
+
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
|
63 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue' ) );
|
64 |
+
|
65 |
+
// AJAX.
|
66 |
+
add_action( 'wp_ajax_astra-required-plugins', array( $this, 'required_plugin' ) );
|
67 |
+
add_action( 'wp_ajax_astra-required-plugin-activate', array( $this, 'required_plugin_activate' ) );
|
68 |
+
add_action( 'wp_ajax_astra-sites-backup-settings', array( $this, 'backup_settings' ) );
|
69 |
+
add_action( 'wp_ajax_astra-sites-set-reset-data', array( $this, 'set_reset_data' ) );
|
70 |
+
add_action( 'wp_ajax_astra-sites-activate-theme', array( $this, 'activate_theme' ) );
|
71 |
+
add_action( 'wp_ajax_astra-sites-getting-started-notice', array( $this, 'getting_started_notice' ) );
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Close getting started notice for current user
|
76 |
+
*
|
77 |
+
* @since 1.3.5
|
78 |
+
* @return void
|
79 |
+
*/
|
80 |
+
function getting_started_notice() {
|
81 |
+
update_user_meta( get_current_user_id(), '_astra_sites_gettings_started', true );
|
82 |
+
wp_send_json_success();
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Activate theme
|
87 |
+
*
|
88 |
+
* @since 1.3.2
|
89 |
+
* @return void
|
90 |
+
*/
|
91 |
+
function activate_theme() {
|
92 |
+
|
93 |
+
switch_theme( 'astra' );
|
94 |
+
|
95 |
+
wp_send_json_success(
|
96 |
+
array(
|
97 |
+
'success' => true,
|
98 |
+
'message' => __( 'Theme Activated', 'astra-sites' ),
|
99 |
+
)
|
100 |
+
);
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Set reset data
|
105 |
+
*/
|
106 |
+
function set_reset_data() {
|
107 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
108 |
+
return;
|
109 |
+
}
|
110 |
+
|
111 |
+
global $wpdb;
|
112 |
+
|
113 |
+
$post_ids = $wpdb->get_col( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_astra_sites_imported_post'" );
|
114 |
+
$form_ids = $wpdb->get_col( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_astra_sites_imported_wp_forms'" );
|
115 |
+
$term_ids = $wpdb->get_col( "SELECT term_id FROM {$wpdb->termmeta} WHERE meta_key='_astra_sites_imported_term'" );
|
116 |
+
|
117 |
+
wp_send_json_success(
|
118 |
+
array(
|
119 |
+
'reset_posts' => $post_ids,
|
120 |
+
'reset_wp_forms' => $form_ids,
|
121 |
+
'reset_terms' => $term_ids,
|
122 |
+
)
|
123 |
+
);
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Backup our existing settings.
|
128 |
+
*/
|
129 |
+
function backup_settings() {
|
130 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
131 |
+
return;
|
132 |
+
}
|
133 |
+
|
134 |
+
$file_name = 'astra-sites-backup-' . date( 'd-M-Y-h-i-s' ) . '.json';
|
135 |
+
$old_settings = get_option( 'astra-settings', array() );
|
136 |
+
$upload_dir = Astra_Sites_Importer_Log::get_instance()->log_dir();
|
137 |
+
$upload_path = trailingslashit( $upload_dir['path'] );
|
138 |
+
$log_file = $upload_path . $file_name;
|
139 |
+
$file_system = Astra_Sites_Importer_Log::get_instance()->get_filesystem();
|
140 |
+
|
141 |
+
// If file system fails? Then take a backup in site option.
|
142 |
+
if ( false === $file_system->put_contents( $log_file, json_encode( $old_settings ), FS_CHMOD_FILE ) ) {
|
143 |
+
update_option( 'astra_sites_' . $file_name, $old_settings );
|
144 |
+
}
|
145 |
+
|
146 |
+
wp_send_json_success();
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Add Admin Notice.
|
151 |
+
*/
|
152 |
+
function add_notice() {
|
153 |
+
|
154 |
+
$theme_status = 'astra-sites-theme-' . $this->get_theme_status();
|
155 |
+
|
156 |
+
Astra_Notices::add_notice(
|
157 |
+
array(
|
158 |
+
'id' => 'astra-theme-activation-nag',
|
159 |
+
'type' => 'error',
|
160 |
+
'show_if' => ( ! defined( 'ASTRA_THEME_SETTINGS' ) ) ? true : false,
|
161 |
+
/* translators: 1: theme.php file*/
|
162 |
+
'message' => sprintf( __( '<p>Astra Theme needs to be active for you to use currently installed "%1$s" plugin. <a href="#" class="%3$s" data-theme-slug="astra">Install & Activate Now</a></p>', 'astra-sites' ), ASTRA_SITES_NAME, esc_url( admin_url( 'themes.php?theme=astra' ) ), $theme_status ),
|
163 |
+
'dismissible' => true,
|
164 |
+
'dismissible-time' => WEEK_IN_SECONDS,
|
165 |
+
)
|
166 |
+
);
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Get theme install, active or inactive status.
|
171 |
+
*
|
172 |
+
* @since 1.3.2
|
173 |
+
*
|
174 |
+
* @return string Theme status
|
175 |
+
*/
|
176 |
+
function get_theme_status() {
|
177 |
+
|
178 |
+
$theme = wp_get_theme();
|
179 |
+
|
180 |
+
// Theme installed and activate.
|
181 |
+
if ( 'Astra' === $theme->name || 'Astra' === $theme->parent_theme ) {
|
182 |
+
return 'installed-and-active';
|
183 |
+
}
|
184 |
+
|
185 |
+
// Theme installed but not activate.
|
186 |
+
foreach ( (array) wp_get_themes() as $theme_dir => $theme ) {
|
187 |
+
if ( 'Astra' === $theme->name || 'Astra' === $theme->parent_theme ) {
|
188 |
+
return 'installed-but-inactive';
|
189 |
+
}
|
190 |
+
}
|
191 |
+
|
192 |
+
return 'not-installed';
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Loads textdomain for the plugin.
|
197 |
+
*
|
198 |
+
* @since 1.0.1
|
199 |
+
*/
|
200 |
+
function load_textdomain() {
|
201 |
+
load_plugin_textdomain( 'astra-sites' );
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* Admin Notices
|
206 |
+
*
|
207 |
+
* @since 1.0.5
|
208 |
+
* @return void
|
209 |
+
*/
|
210 |
+
function admin_notices() {
|
211 |
+
|
212 |
+
if ( ! defined( 'ASTRA_THEME_SETTINGS' ) ) {
|
213 |
+
return;
|
214 |
+
}
|
215 |
+
|
216 |
+
add_action( 'plugin_action_links_' . ASTRA_SITES_BASE, array( $this, 'action_links' ) );
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
* Show action links on the plugin screen.
|
221 |
+
*
|
222 |
+
* @param mixed $links Plugin Action links.
|
223 |
+
* @return array
|
224 |
+
*/
|
225 |
+
function action_links( $links ) {
|
226 |
+
$action_links = array(
|
227 |
+
'settings' => '<a href="' . admin_url( 'themes.php?page=astra-sites' ) . '" aria-label="' . esc_attr__( 'See Library', 'astra-sites' ) . '">' . esc_html__( 'See Library', 'astra-sites' ) . '</a>',
|
228 |
+
);
|
229 |
+
|
230 |
+
return array_merge( $action_links, $links );
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
* Setter for $api_url
|
235 |
+
*
|
236 |
+
* @since 1.0.0
|
237 |
+
*/
|
238 |
+
public static function set_api_url() {
|
239 |
+
self::$api_url = apply_filters( 'astra_sites_api_url', 'https://websitedemos.net/wp-json/wp/v2/' );
|
240 |
+
|
241 |
+
}
|
242 |
+
|
243 |
+
/**
|
244 |
+
* Enqueue admin scripts.
|
245 |
+
*
|
246 |
+
* @since 1.3.2 Added 'install-theme.js' to install and activate theme.
|
247 |
+
* @since 1.0.5 Added 'getUpgradeText' and 'getUpgradeURL' localize variables.
|
248 |
+
*
|
249 |
+
* @since 1.0.0
|
250 |
+
*
|
251 |
+
* @param string $hook Current hook name.
|
252 |
+
* @return void
|
253 |
+
*/
|
254 |
+
public function admin_enqueue( $hook = '' ) {
|
255 |
+
|
256 |
+
wp_enqueue_script( 'astra-sites-install-theme', ASTRA_SITES_URI . 'inc/assets/js/install-theme.js', array( 'jquery', 'updates' ), ASTRA_SITES_VER, true );
|
257 |
+
wp_enqueue_style( 'astra-sites-install-theme', ASTRA_SITES_URI . 'inc/assets/css/install-theme.css', null, ASTRA_SITES_VER, 'all' );
|
258 |
+
|
259 |
+
$data = apply_filters(
|
260 |
+
'astra_sites_install_theme_localize_vars',
|
261 |
+
array(
|
262 |
+
'installed' => __( 'Installed! Activating..', 'astra-sites' ),
|
263 |
+
'activating' => __( 'Activating..', 'astra-sites' ),
|
264 |
+
'activated' => __( 'Activated! Reloading..', 'astra-sites' ),
|
265 |
+
'installing' => __( 'Installing..', 'astra-sites' ),
|
266 |
+
'ajaxurl' => esc_url( admin_url( 'admin-ajax.php' ) ),
|
267 |
+
)
|
268 |
+
);
|
269 |
+
wp_localize_script( 'astra-sites-install-theme', 'AstraSitesInstallThemeVars', $data );
|
270 |
+
|
271 |
+
if ( 'appearance_page_astra-sites' !== $hook ) {
|
272 |
+
return;
|
273 |
+
}
|
274 |
+
|
275 |
+
global $is_IE, $is_edge;
|
276 |
+
|
277 |
+
if ( $is_IE || $is_edge ) {
|
278 |
+
wp_enqueue_script( 'astra-sites-eventsource', ASTRA_SITES_URI . 'inc/assets/js/eventsource.min.js', array( 'jquery', 'wp-util', 'updates' ), ASTRA_SITES_VER, true );
|
279 |
+
}
|
280 |
+
|
281 |
+
// Fetch.
|
282 |
+
wp_register_script( 'astra-sites-fetch', ASTRA_SITES_URI . 'inc/assets/js/fetch.umd.js', array( 'jquery' ), ASTRA_SITES_VER, true );
|
283 |
+
|
284 |
+
// API.
|
285 |
+
wp_register_script( 'astra-sites-api', ASTRA_SITES_URI . 'inc/assets/js/astra-sites-api.js', array( 'jquery', 'astra-sites-fetch' ), ASTRA_SITES_VER, true );
|
286 |
+
|
287 |
+
// Admin Page.
|
288 |
+
wp_enqueue_style( 'astra-sites-admin', ASTRA_SITES_URI . 'inc/assets/css/admin.css', ASTRA_SITES_VER, true );
|
289 |
+
wp_enqueue_script( 'astra-sites-admin-page', ASTRA_SITES_URI . 'inc/assets/js/admin-page.js', array( 'jquery', 'wp-util', 'updates' ), ASTRA_SITES_VER, true );
|
290 |
+
wp_enqueue_script( 'astra-sites-render-grid', ASTRA_SITES_URI . 'inc/assets/js/render-grid.js', array( 'wp-util', 'astra-sites-api', 'imagesloaded', 'jquery' ), ASTRA_SITES_VER, true );
|
291 |
+
|
292 |
+
$data = apply_filters(
|
293 |
+
'astra_sites_localize_vars',
|
294 |
+
array(
|
295 |
+
'ApiURL' => self::$api_url,
|
296 |
+
'filters' => array(
|
297 |
+
'page_builder' => array(
|
298 |
+
'title' => __( 'Page Builder', 'astra-sites' ),
|
299 |
+
'slug' => 'astra-site-page-builder',
|
300 |
+
'trigger' => 'astra-api-category-loaded',
|
301 |
+
),
|
302 |
+
'categories' => array(
|
303 |
+
'title' => __( 'Categories', 'astra-sites' ),
|
304 |
+
'slug' => 'astra-site-category',
|
305 |
+
'trigger' => 'astra-api-category-loaded',
|
306 |
+
),
|
307 |
+
),
|
308 |
+
)
|
309 |
+
);
|
310 |
+
wp_localize_script( 'astra-sites-api', 'astraSitesApi', $data );
|
311 |
+
|
312 |
+
// Use this for premium demos.
|
313 |
+
$request_params = apply_filters(
|
314 |
+
'astra_sites_api_params',
|
315 |
+
array(
|
316 |
+
'purchase_key' => '',
|
317 |
+
'site_url' => '',
|
318 |
+
'par-page' => 30,
|
319 |
+
)
|
320 |
+
);
|
321 |
+
|
322 |
+
$data = apply_filters(
|
323 |
+
'astra_sites_render_localize_vars',
|
324 |
+
array(
|
325 |
+
'sites' => $request_params,
|
326 |
+
'page-builders' => array(),
|
327 |
+
'categories' => array(),
|
328 |
+
'settings' => array(),
|
329 |
+
'default_page_builder' => Astra_Sites_Page::get_instance()->get_setting( 'page_builder' ),
|
330 |
+
)
|
331 |
+
);
|
332 |
+
|
333 |
+
wp_localize_script( 'astra-sites-render-grid', 'astraRenderGrid', $data );
|
334 |
+
|
335 |
+
$data = apply_filters(
|
336 |
+
'astra_sites_localize_vars',
|
337 |
+
array(
|
338 |
+
'debug' => ( ( defined( 'WP_DEBUG' ) && WP_DEBUG ) || isset( $_GET['debug'] ) ) ? true : false,
|
339 |
+
'isPro' => defined( 'ASTRA_PRO_SITES_NAME' ) ? true : false,
|
340 |
+
'isWhiteLabeled' => Astra_Sites_White_Label::get_instance()->is_white_labeled(),
|
341 |
+
'ajaxurl' => esc_url( admin_url( 'admin-ajax.php' ) ),
|
342 |
+
'siteURL' => site_url(),
|
343 |
+
'docUrl' => 'https://wpastra.com/',
|
344 |
+
'getProText' => __( 'Get Agency Bundle', 'astra-sites' ),
|
345 |
+
'getProURL' => esc_url( 'https://wpastra.com/agency/?utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=wp-dashboard' ),
|
346 |
+
'getUpgradeText' => __( 'Upgrade', 'astra-sites' ),
|
347 |
+
'getUpgradeURL' => esc_url( 'https://wpastra.com/agency/?utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=wp-dashboard' ),
|
348 |
+
'_ajax_nonce' => wp_create_nonce( 'astra-sites' ),
|
349 |
+
'requiredPlugins' => array(),
|
350 |
+
'XMLReaderDisabled' => ! class_exists( 'XMLReader' ) ? true : false,
|
351 |
+
'strings' => array(
|
352 |
+
/* translators: %s are HTML tags. */
|
353 |
+
'warningXMLReader' => sprintf( __( '%1$sRequired XMLReader PHP extension is missing on your server!%2$sAstra Sites import requires XMLReader extension to be installed. Please contact your web hosting provider and ask them to install and activate the XMLReader PHP extension.', 'astra-sites' ), '<div class="notice astra-sites-xml-notice notice-error"><p><b>', '</b></p><p>', '</p></div>' ),
|
354 |
+
'warningBeforeCloseWindow' => __( 'Warning! Astra Site Import process is not complete. Don\'t close the window until import process complete. Do you still want to leave the window?', 'astra-sites' ),
|
355 |
+
'importFailedBtnSmall' => __( 'Error!', 'astra-sites' ),
|
356 |
+
'importFailedBtnLarge' => __( 'Error! Read Possibilities.', 'astra-sites' ),
|
357 |
+
'importFailedURL' => esc_url( 'https://wpastra.com/docs/?p=1314&utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=import-failed' ),
|
358 |
+
'viewSite' => __( 'Done! View Site', 'astra-sites' ),
|
359 |
+
'btnActivating' => __( 'Activating', 'astra-sites' ) . '…',
|
360 |
+
'btnActive' => __( 'Active', 'astra-sites' ),
|
361 |
+
'importFailBtn' => __( 'Import failed.', 'astra-sites' ),
|
362 |
+
'importFailBtnLarge' => __( 'Import failed. See error log.', 'astra-sites' ),
|
363 |
+
'importDemo' => __( 'Import This Site', 'astra-sites' ),
|
364 |
+
'importingDemo' => __( 'Importing..', 'astra-sites' ),
|
365 |
+
'DescExpand' => __( 'Read more', 'astra-sites' ) . '…',
|
366 |
+
'DescCollapse' => __( 'Hide', 'astra-sites' ),
|
367 |
+
'responseError' => __( 'There was a problem receiving a response from server.', 'astra-sites' ),
|
368 |
+
'searchNoFound' => __( 'No Demos found, Try a different search.', 'astra-sites' ),
|
369 |
+
),
|
370 |
+
'log' => array(
|
371 |
+
'installingPlugin' => __( 'Installing plugin ', 'astra-sites' ),
|
372 |
+
'installed' => __( 'Plugin installed!', 'astra-sites' ),
|
373 |
+
'activating' => __( 'Activating plugin ', 'astra-sites' ),
|
374 |
+
'activated' => __( 'Plugin activated ', 'astra-sites' ),
|
375 |
+
'bulkActivation' => __( 'Bulk plugin activation...', 'astra-sites' ),
|
376 |
+
'activate' => __( 'Plugin activate - ', 'astra-sites' ),
|
377 |
+
'activationError' => __( 'Error! While activating plugin - ', 'astra-sites' ),
|
378 |
+
'bulkInstall' => __( 'Bulk plugin installation...', 'astra-sites' ),
|
379 |
+
'api' => __( 'Site API ', 'astra-sites' ),
|
380 |
+
'importing' => __( 'Importing..', 'astra-sites' ),
|
381 |
+
'processingRequest' => __( 'Processing requests...', 'astra-sites' ),
|
382 |
+
'importCustomizer' => __( 'Importing "Customizer Settings"...', 'astra-sites' ),
|
383 |
+
'importCustomizerSuccess' => __( 'Imported customizer settings!', 'astra-sites' ),
|
384 |
+
'importWPForms' => __( 'Importing "Contact Forms"...', 'astra-sites' ),
|
385 |
+
'importWPFormsSuccess' => __( 'Imported Contact Forms!', 'astra-sites' ),
|
386 |
+
'importXMLPrepare' => __( 'Preparing "XML" Data...', 'astra-sites' ),
|
387 |
+
'importXMLPrepareSuccess' => __( 'Set XML data!', 'astra-sites' ),
|
388 |
+
'importXML' => __( 'Importing "XML"...', 'astra-sites' ),
|
389 |
+
'importXMLSuccess' => __( 'Imported XML!', 'astra-sites' ),
|
390 |
+
'importOptions' => __( 'Importing "Options"...', 'astra-sites' ),
|
391 |
+
'importOptionsSuccess' => __( 'Imported Options!', 'astra-sites' ),
|
392 |
+
'importWidgets' => __( 'Importing "Widgets"...', 'astra-sites' ),
|
393 |
+
'importWidgetsSuccess' => __( 'Imported Widgets!', 'astra-sites' ),
|
394 |
+
'serverConfiguration' => esc_url( 'https://wpastra.com/docs/?p=1314&utm_source=demo-import-panel&utm_campaign=import-error&utm_medium=wp-dashboard' ),
|
395 |
+
'success' => __( 'View site: ', 'astra-sites' ),
|
396 |
+
'gettingData' => __( 'Getting Site Information..', 'astra-sites' ),
|
397 |
+
'importingCustomizer' => __( 'Importing Customizer Settings..', 'astra-sites' ),
|
398 |
+
'importingWPForms' => __( 'Importing Contact Forms..', 'astra-sites' ),
|
399 |
+
'importXMLPreparing' => __( 'Setting up import data..', 'astra-sites' ),
|
400 |
+
'importingXML' => __( 'Importing Content..', 'astra-sites' ),
|
401 |
+
'importingOptions' => __( 'Importing Site Options..', 'astra-sites' ),
|
402 |
+
'importingWidgets' => __( 'Importing Widgets..', 'astra-sites' ),
|
403 |
+
'importComplete' => __( 'Import Complete..', 'astra-sites' ),
|
404 |
+
'preview' => __( 'Previewing ', 'astra-sites' ),
|
405 |
+
'importLogText' => __( 'See Error Log →', 'astra-sites' ),
|
406 |
+
),
|
407 |
+
)
|
408 |
+
);
|
409 |
+
|
410 |
+
wp_localize_script( 'astra-sites-admin-page', 'astraSitesAdmin', $data );
|
411 |
+
|
412 |
+
}
|
413 |
+
|
414 |
+
/**
|
415 |
+
* Load all the required files in the importer.
|
416 |
+
*
|
417 |
+
* @since 1.0.0
|
418 |
+
*/
|
419 |
+
private function includes() {
|
420 |
+
|
421 |
+
require_once ASTRA_SITES_DIR . 'inc/lib/astra-notices/class-astra-notices.php';
|
422 |
+
require_once ASTRA_SITES_DIR . 'inc/classes/class-astra-sites-white-label.php';
|
423 |
+
require_once ASTRA_SITES_DIR . 'inc/classes/class-astra-sites-page.php';
|
424 |
+
require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/class-astra-sites-compatibility.php';
|
425 |
+
require_once ASTRA_SITES_DIR . 'inc/classes/class-astra-sites-importer.php';
|
426 |
+
}
|
427 |
+
|
428 |
+
/**
|
429 |
+
* Required Plugin Activate
|
430 |
+
*
|
431 |
+
* @since 1.0.0
|
432 |
+
*/
|
433 |
+
public function required_plugin_activate() {
|
434 |
+
|
435 |
+
if ( ! current_user_can( 'install_plugins' ) || ! isset( $_POST['init'] ) || ! $_POST['init'] ) {
|
436 |
+
wp_send_json_error(
|
437 |
+
array(
|
438 |
+
'success' => false,
|
439 |
+
'message' => __( 'No plugin specified', 'astra-sites' ),
|
440 |
+
)
|
441 |
+
);
|
442 |
+
}
|
443 |
+
|
444 |
+
$data = array();
|
445 |
+
$plugin_init = ( isset( $_POST['init'] ) ) ? esc_attr( $_POST['init'] ) : '';
|
446 |
+
$astra_site_options = ( isset( $_POST['options'] ) ) ? json_decode( stripslashes( $_POST['options'] ) ) : '';
|
447 |
+
$enabled_extensions = ( isset( $_POST['enabledExtensions'] ) ) ? json_decode( stripslashes( $_POST['enabledExtensions'] ) ) : '';
|
448 |
+
|
449 |
+
$data['astra_site_options'] = $astra_site_options;
|
450 |
+
$data['enabled_extensions'] = $enabled_extensions;
|
451 |
+
|
452 |
+
$activate = activate_plugin( $plugin_init, '', false, true );
|
453 |
+
|
454 |
+
if ( is_wp_error( $activate ) ) {
|
455 |
+
wp_send_json_error(
|
456 |
+
array(
|
457 |
+
'success' => false,
|
458 |
+
'message' => $activate->get_error_message(),
|
459 |
+
)
|
460 |
+
);
|
461 |
+
}
|
462 |
+
|
463 |
+
do_action( 'astra_sites_after_plugin_activation', $plugin_init, $data );
|
464 |
+
|
465 |
+
wp_send_json_success(
|
466 |
+
array(
|
467 |
+
'success' => true,
|
468 |
+
'message' => __( 'Plugin Activated', 'astra-sites' ),
|
469 |
+
)
|
470 |
+
);
|
471 |
+
|
472 |
+
}
|
473 |
+
|
474 |
+
/**
|
475 |
+
* Required Plugin
|
476 |
+
*
|
477 |
+
* @since 1.0.0
|
478 |
+
* @return void
|
479 |
+
*/
|
480 |
+
public function required_plugin() {
|
481 |
+
|
482 |
+
// Verify Nonce.
|
483 |
+
check_ajax_referer( 'astra-sites', '_ajax_nonce' );
|
484 |
+
|
485 |
+
$response = array(
|
486 |
+
'active' => array(),
|
487 |
+
'inactive' => array(),
|
488 |
+
'notinstalled' => array(),
|
489 |
+
);
|
490 |
+
|
491 |
+
if ( ! current_user_can( 'customize' ) ) {
|
492 |
+
wp_send_json_error( $response );
|
493 |
+
}
|
494 |
+
|
495 |
+
$required_plugins = ( isset( $_POST['required_plugins'] ) ) ? $_POST['required_plugins'] : array();
|
496 |
+
|
497 |
+
if ( count( $required_plugins ) > 0 ) {
|
498 |
+
foreach ( $required_plugins as $key => $plugin ) {
|
499 |
+
|
500 |
+
/**
|
501 |
+
* Has Pro Version Support?
|
502 |
+
* And
|
503 |
+
* Is Pro Version Installed?
|
504 |
+
*/
|
505 |
+
$plugin_pro = self::pro_plugin_exist( $plugin['init'] );
|
506 |
+
if ( $plugin_pro ) {
|
507 |
+
|
508 |
+
// Pro - Active.
|
509 |
+
if ( is_plugin_active( $plugin_pro['init'] ) ) {
|
510 |
+
$response['active'][] = $plugin_pro;
|
511 |
+
|
512 |
+
// Pro - Inactive.
|
513 |
+
} else {
|
514 |
+
$response['inactive'][] = $plugin_pro;
|
515 |
+
}
|
516 |
+
} else {
|
517 |
+
|
518 |
+
// Lite - Installed but Inactive.
|
519 |
+
if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin['init'] ) && is_plugin_inactive( $plugin['init'] ) ) {
|
520 |
+
|
521 |
+
$response['inactive'][] = $plugin;
|
522 |
+
|
523 |
+
// Lite - Not Installed.
|
524 |
+
} elseif ( ! file_exists( WP_PLUGIN_DIR . '/' . $plugin['init'] ) ) {
|
525 |
+
|
526 |
+
$response['notinstalled'][] = $plugin;
|
527 |
+
|
528 |
+
// Lite - Active.
|
529 |
+
} else {
|
530 |
+
$response['active'][] = $plugin;
|
531 |
+
}
|
532 |
+
}
|
533 |
+
}
|
534 |
+
}
|
535 |
+
|
536 |
+
// Send response.
|
537 |
+
wp_send_json_success( $response );
|
538 |
+
}
|
539 |
+
|
540 |
+
/**
|
541 |
+
* Has Pro Version Support?
|
542 |
+
* And
|
543 |
+
* Is Pro Version Installed?
|
544 |
+
*
|
545 |
+
* Check Pro plugin version exist of requested plugin lite version.
|
546 |
+
*
|
547 |
+
* Eg. If plugin 'BB Lite Version' required to import demo. Then we check the 'BB Agency Version' is exist?
|
548 |
+
* If yes then we only 'Activate' Agency Version. [We couldn't install agency version.]
|
549 |
+
* Else we 'Activate' or 'Install' Lite Version.
|
550 |
+
*
|
551 |
+
* @since 1.0.1
|
552 |
+
*
|
553 |
+
* @param string $lite_version Lite version init file.
|
554 |
+
* @return mixed Return false if not installed or not supported by us
|
555 |
+
* else return 'Pro' version details.
|
556 |
+
*/
|
557 |
+
public static function pro_plugin_exist( $lite_version = '' ) {
|
558 |
+
|
559 |
+
// Lite init => Pro init.
|
560 |
+
$plugins = apply_filters(
|
561 |
+
'astra_sites_pro_plugin_exist',
|
562 |
+
array(
|
563 |
+
'beaver-builder-lite-version/fl-builder.php' => array(
|
564 |
+
'slug' => 'bb-plugin',
|
565 |
+
'init' => 'bb-plugin/fl-builder.php',
|
566 |
+
'name' => 'Beaver Builder Plugin',
|
567 |
+
),
|
568 |
+
'ultimate-addons-for-beaver-builder-lite/bb-ultimate-addon.php' => array(
|
569 |
+
'slug' => 'bb-ultimate-addon',
|
570 |
+
'init' => 'bb-ultimate-addon/bb-ultimate-addon.php',
|
571 |
+
'name' => 'Ultimate Addon for Beaver Builder',
|
572 |
+
),
|
573 |
+
'wpforms-lite/wpforms.php' => array(
|
574 |
+
'slug' => 'wpforms',
|
575 |
+
'init' => 'wpforms/wpforms.php',
|
576 |
+
'name' => 'WPForms',
|
577 |
+
),
|
578 |
+
),
|
579 |
+
$lite_version
|
580 |
+
);
|
581 |
+
|
582 |
+
if ( isset( $plugins[ $lite_version ] ) ) {
|
583 |
+
|
584 |
+
// Pro plugin directory exist?
|
585 |
+
if ( file_exists( WP_PLUGIN_DIR . '/' . $plugins[ $lite_version ]['init'] ) ) {
|
586 |
+
return $plugins[ $lite_version ];
|
587 |
+
}
|
588 |
+
}
|
589 |
+
|
590 |
+
return false;
|
591 |
+
}
|
592 |
+
|
593 |
+
}
|
594 |
+
|
595 |
+
/**
|
596 |
+
* Kicking this off by calling 'get_instance()' method
|
597 |
+
*/
|
598 |
+
Astra_Sites::get_instance();
|
599 |
+
|
600 |
+
endif;
|
inc/classes/compatibility/class-astra-sites-compatibility.php
CHANGED
@@ -1,66 +1,66 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Astra Sites Compatibility for 3rd party plugins.
|
4 |
-
*
|
5 |
-
* @package Astra Sites
|
6 |
-
* @since 1.0.11
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! class_exists( 'Astra_Sites_Compatibility' ) ) :
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Astra Sites Compatibility
|
13 |
-
*
|
14 |
-
* @since 1.0.11
|
15 |
-
*/
|
16 |
-
class Astra_Sites_Compatibility {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Instance
|
20 |
-
*
|
21 |
-
* @access private
|
22 |
-
* @var object Class object.
|
23 |
-
* @since 1.0.11
|
24 |
-
*/
|
25 |
-
private static $instance;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Initiator
|
29 |
-
*
|
30 |
-
* @since 1.0.11
|
31 |
-
* @return object initialized object of class.
|
32 |
-
*/
|
33 |
-
public static function instance() {
|
34 |
-
if ( ! isset( self::$instance ) ) {
|
35 |
-
self::$instance = new self;
|
36 |
-
}
|
37 |
-
return self::$instance;
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Constructor
|
42 |
-
*
|
43 |
-
* @since 1.0.11
|
44 |
-
*/
|
45 |
-
public function __construct() {
|
46 |
-
|
47 |
-
// Plugin - Astra Pro.
|
48 |
-
require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/astra-pro/class-astra-sites-compatibility-astra-pro.php';
|
49 |
-
|
50 |
-
// Plugin - Site Origin Widgets.
|
51 |
-
require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/so-widgets-bundle/class-astra-sites-compatibility-so-widgets.php';
|
52 |
-
|
53 |
-
// Plugin - WooCommerce.
|
54 |
-
require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/woocommerce/class-astra-sites-compatibility-woocommerce.php';
|
55 |
-
}
|
56 |
-
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* Kicking this off by calling 'instance()' method
|
61 |
-
*/
|
62 |
-
Astra_Sites_Compatibility::instance();
|
63 |
-
|
64 |
-
endif;
|
65 |
-
|
66 |
-
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Astra Sites Compatibility for 3rd party plugins.
|
4 |
+
*
|
5 |
+
* @package Astra Sites
|
6 |
+
* @since 1.0.11
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'Astra_Sites_Compatibility' ) ) :
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Astra Sites Compatibility
|
13 |
+
*
|
14 |
+
* @since 1.0.11
|
15 |
+
*/
|
16 |
+
class Astra_Sites_Compatibility {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Instance
|
20 |
+
*
|
21 |
+
* @access private
|
22 |
+
* @var object Class object.
|
23 |
+
* @since 1.0.11
|
24 |
+
*/
|
25 |
+
private static $instance;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Initiator
|
29 |
+
*
|
30 |
+
* @since 1.0.11
|
31 |
+
* @return object initialized object of class.
|
32 |
+
*/
|
33 |
+
public static function instance() {
|
34 |
+
if ( ! isset( self::$instance ) ) {
|
35 |
+
self::$instance = new self;
|
36 |
+
}
|
37 |
+
return self::$instance;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Constructor
|
42 |
+
*
|
43 |
+
* @since 1.0.11
|
44 |
+
*/
|
45 |
+
public function __construct() {
|
46 |
+
|
47 |
+
// Plugin - Astra Pro.
|
48 |
+
require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/astra-pro/class-astra-sites-compatibility-astra-pro.php';
|
49 |
+
|
50 |
+
// Plugin - Site Origin Widgets.
|
51 |
+
require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/so-widgets-bundle/class-astra-sites-compatibility-so-widgets.php';
|
52 |
+
|
53 |
+
// Plugin - WooCommerce.
|
54 |
+
require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/woocommerce/class-astra-sites-compatibility-woocommerce.php';
|
55 |
+
}
|
56 |
+
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Kicking this off by calling 'instance()' method
|
61 |
+
*/
|
62 |
+
Astra_Sites_Compatibility::instance();
|
63 |
+
|
64 |
+
endif;
|
65 |
+
|
66 |
+
|
inc/importers/batch-processing/class-astra-sites-batch-processing-beaver-builder.php
CHANGED
@@ -1,261 +1,261 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Batch Processing
|
4 |
-
*
|
5 |
-
* @package Astra Sites
|
6 |
-
* @since 1.0.14
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! class_exists( 'Astra_Sites_Batch_Processing_Beaver_Builder' ) ) :
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Astra_Sites_Batch_Processing_Beaver_Builder
|
13 |
-
*
|
14 |
-
* @since 1.0.14
|
15 |
-
*/
|
16 |
-
class Astra_Sites_Batch_Processing_Beaver_Builder {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Instance
|
20 |
-
*
|
21 |
-
* @since 1.0.14
|
22 |
-
* @access private
|
23 |
-
* @var object Class object.
|
24 |
-
*/
|
25 |
-
private static $instance;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Initiator
|
29 |
-
*
|
30 |
-
* @since 1.0.14
|
31 |
-
* @return object initialized object of class.
|
32 |
-
*/
|
33 |
-
public static function get_instance() {
|
34 |
-
|
35 |
-
if ( ! isset( self::$instance ) ) {
|
36 |
-
self::$instance = new self;
|
37 |
-
}
|
38 |
-
return self::$instance;
|
39 |
-
}
|
40 |
-
|
41 |
-
/**
|
42 |
-
* Constructor
|
43 |
-
*
|
44 |
-
* @since 1.0.14
|
45 |
-
*/
|
46 |
-
public function __construct() {
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Import
|
51 |
-
*
|
52 |
-
* @since 1.0.14
|
53 |
-
* @return void
|
54 |
-
*/
|
55 |
-
public function import() {
|
56 |
-
|
57 |
-
Astra_Sites_Importer_Log::add( '---- Processing WordPress Posts / Pages - for Beaver Builder ----' );
|
58 |
-
if ( ! is_callable( 'FLBuilderModel::get_post_types' ) ) {
|
59 |
-
return;
|
60 |
-
}
|
61 |
-
|
62 |
-
$post_types = FLBuilderModel::get_post_types( 'post-types' );
|
63 |
-
if ( empty( $post_types ) && ! is_array( $post_types ) ) {
|
64 |
-
return;
|
65 |
-
}
|
66 |
-
|
67 |
-
$post_ids = Astra_Sites_Batch_Processing::get_pages( $post_types );
|
68 |
-
if ( empty( $post_ids ) && ! is_array( $post_ids ) ) {
|
69 |
-
return;
|
70 |
-
}
|
71 |
-
|
72 |
-
foreach ( $post_ids as $post_id ) {
|
73 |
-
$is_bb_post = get_post_meta( $post_id, '_fl_builder_enabled', true );
|
74 |
-
if ( $is_bb_post ) {
|
75 |
-
$this->import_single_post( $post_id );
|
76 |
-
}
|
77 |
-
}
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* Update post meta.
|
82 |
-
*
|
83 |
-
* @param integer $post_id Post ID.
|
84 |
-
* @return void
|
85 |
-
*/
|
86 |
-
public function import_single_post( $post_id = 0 ) {
|
87 |
-
|
88 |
-
Astra_Sites_Importer_Log::add( 'Post ID: ' . $post_id );
|
89 |
-
if ( ! empty( $post_id ) ) {
|
90 |
-
|
91 |
-
// Get page builder data.
|
92 |
-
$data = get_post_meta( $post_id, '_fl_builder_data', true );
|
93 |
-
|
94 |
-
if ( ! empty( $data ) ) {
|
95 |
-
foreach ( $data as $key => $el ) {
|
96 |
-
|
97 |
-
// Update 'row' images.
|
98 |
-
if ( 'row' === $el->type ) {
|
99 |
-
$data[ $key ]->settings = self::update_row( $el->settings );
|
100 |
-
}
|
101 |
-
|
102 |
-
// Update 'module' images.
|
103 |
-
if ( 'module' === $el->type ) {
|
104 |
-
$data[ $key ]->settings = self::update_module( $el->settings );
|
105 |
-
}
|
106 |
-
|
107 |
-
// Update 'column' images.
|
108 |
-
if ( 'column' === $el->type ) {
|
109 |
-
$data[ $key ]->settings = self::update_column( $el->settings );
|
110 |
-
}
|
111 |
-
}
|
112 |
-
|
113 |
-
// Update page builder data.
|
114 |
-
update_post_meta( $post_id, '_fl_builder_data', $data );
|
115 |
-
update_post_meta( $post_id, '_fl_builder_draft', $data );
|
116 |
-
|
117 |
-
// Clear all cache.
|
118 |
-
FLBuilderModel::delete_asset_cache_for_all_posts();
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
}
|
123 |
-
|
124 |
-
/**
|
125 |
-
* Import Module Images.
|
126 |
-
*
|
127 |
-
* @param object $settings Module settings object.
|
128 |
-
* @return object
|
129 |
-
*/
|
130 |
-
public static function update_module( $settings ) {
|
131 |
-
|
132 |
-
// 1) Set photos.
|
133 |
-
$settings = self::import_photo( $settings );
|
134 |
-
|
135 |
-
/**
|
136 |
-
* 2) Set `$settings->data` for Only type 'image-icon'
|
137 |
-
*
|
138 |
-
* @todo Remove the condition `'image-icon' === $settings->type` if `$settings->data` is used only for the Image Icon.
|
139 |
-
*/
|
140 |
-
if (
|
141 |
-
isset( $settings->data ) &&
|
142 |
-
isset( $settings->photo ) && ! empty( $settings->photo ) &&
|
143 |
-
'image-icon' === $settings->type
|
144 |
-
) {
|
145 |
-
$settings->data = FLBuilderPhoto::get_attachment_data( $settings->photo );
|
146 |
-
}
|
147 |
-
|
148 |
-
// 3) Set `list item` module images.
|
149 |
-
if ( isset( $settings->add_list_item ) ) {
|
150 |
-
foreach ( $settings->add_list_item as $key => $value ) {
|
151 |
-
$settings->add_list_item[ $key ] = self::import_photo( $value );
|
152 |
-
}
|
153 |
-
}
|
154 |
-
|
155 |
-
// 4) Set `list item` module images.
|
156 |
-
if ( isset( $settings->text ) ) {
|
157 |
-
$ids_mapping = get_option( 'astra_sites_wpforms_ids_mapping', array() );
|
158 |
-
if ( $ids_mapping ) {
|
159 |
-
|
160 |
-
// Keep old data in temp.
|
161 |
-
$updated_data = $settings->text;
|
162 |
-
|
163 |
-
// Update WP form IDs.
|
164 |
-
foreach ( $ids_mapping as $old_id => $new_id ) {
|
165 |
-
$updated_data = str_replace( '[wpforms id="' . $old_id, '[wpforms id="' . $new_id, $updated_data );
|
166 |
-
}
|
167 |
-
|
168 |
-
// Update modified data.
|
169 |
-
$settings->text = $updated_data;
|
170 |
-
}
|
171 |
-
}
|
172 |
-
|
173 |
-
return $settings;
|
174 |
-
}
|
175 |
-
|
176 |
-
/**
|
177 |
-
* Import Column Images.
|
178 |
-
*
|
179 |
-
* @param object $settings Column settings object.
|
180 |
-
* @return object
|
181 |
-
*/
|
182 |
-
public static function update_column( $settings ) {
|
183 |
-
|
184 |
-
// 1) Set BG Images.
|
185 |
-
$settings = self::import_bg_image( $settings );
|
186 |
-
|
187 |
-
return $settings;
|
188 |
-
}
|
189 |
-
|
190 |
-
/**
|
191 |
-
* Import Row Images.
|
192 |
-
*
|
193 |
-
* @param object $settings Row settings object.
|
194 |
-
* @return object
|
195 |
-
*/
|
196 |
-
public static function update_row( $settings ) {
|
197 |
-
|
198 |
-
// 1) Set BG Images.
|
199 |
-
$settings = self::import_bg_image( $settings );
|
200 |
-
|
201 |
-
return $settings;
|
202 |
-
}
|
203 |
-
|
204 |
-
/**
|
205 |
-
* Helper: Import BG Images.
|
206 |
-
*
|
207 |
-
* @param object $settings Row settings object.
|
208 |
-
* @return object
|
209 |
-
*/
|
210 |
-
public static function import_bg_image( $settings ) {
|
211 |
-
|
212 |
-
if (
|
213 |
-
( ! empty( $settings->bg_image ) && ! empty( $settings->bg_image_src ) )
|
214 |
-
) {
|
215 |
-
$image = array(
|
216 |
-
'url' => $settings->bg_image_src,
|
217 |
-
'id' => $settings->bg_image,
|
218 |
-
);
|
219 |
-
|
220 |
-
$downloaded_image = Astra_Sites_Image_Importer::get_instance()->import( $image );
|
221 |
-
|
222 |
-
$settings->bg_image_src = $downloaded_image['url'];
|
223 |
-
$settings->bg_image = $downloaded_image['id'];
|
224 |
-
}
|
225 |
-
|
226 |
-
return $settings;
|
227 |
-
}
|
228 |
-
|
229 |
-
/**
|
230 |
-
* Helper: Import Photo.
|
231 |
-
*
|
232 |
-
* @param object $settings Row settings object.
|
233 |
-
* @return object
|
234 |
-
*/
|
235 |
-
public static function import_photo( $settings ) {
|
236 |
-
|
237 |
-
if ( ! empty( $settings->photo ) && ! empty( $settings->photo_src ) ) {
|
238 |
-
|
239 |
-
$image = array(
|
240 |
-
'url' => $settings->photo_src,
|
241 |
-
'id' => $settings->photo,
|
242 |
-
);
|
243 |
-
|
244 |
-
$downloaded_image = Astra_Sites_Image_Importer::get_instance()->import( $image );
|
245 |
-
|
246 |
-
$settings->photo_src = $downloaded_image['url'];
|
247 |
-
$settings->photo = $downloaded_image['id'];
|
248 |
-
}
|
249 |
-
|
250 |
-
return $settings;
|
251 |
-
}
|
252 |
-
|
253 |
-
|
254 |
-
}
|
255 |
-
|
256 |
-
/**
|
257 |
-
* Kicking this off by calling 'get_instance()' method
|
258 |
-
*/
|
259 |
-
Astra_Sites_Batch_Processing_Beaver_Builder::get_instance();
|
260 |
-
|
261 |
-
endif;
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Batch Processing
|
4 |
+
*
|
5 |
+
* @package Astra Sites
|
6 |
+
* @since 1.0.14
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'Astra_Sites_Batch_Processing_Beaver_Builder' ) ) :
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Astra_Sites_Batch_Processing_Beaver_Builder
|
13 |
+
*
|
14 |
+
* @since 1.0.14
|
15 |
+
*/
|
16 |
+
class Astra_Sites_Batch_Processing_Beaver_Builder {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Instance
|
20 |
+
*
|
21 |
+
* @since 1.0.14
|
22 |
+
* @access private
|
23 |
+
* @var object Class object.
|
24 |
+
*/
|
25 |
+
private static $instance;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Initiator
|
29 |
+
*
|
30 |
+
* @since 1.0.14
|
31 |
+
* @return object initialized object of class.
|
32 |
+
*/
|
33 |
+
public static function get_instance() {
|
34 |
+
|
35 |
+
if ( ! isset( self::$instance ) ) {
|
36 |
+
self::$instance = new self;
|
37 |
+
}
|
38 |
+
return self::$instance;
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Constructor
|
43 |
+
*
|
44 |
+
* @since 1.0.14
|
45 |
+
*/
|
46 |
+
public function __construct() {
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Import
|
51 |
+
*
|
52 |
+
* @since 1.0.14
|
53 |
+
* @return void
|
54 |
+
*/
|
55 |
+
public function import() {
|
56 |
+
|
57 |
+
Astra_Sites_Importer_Log::add( '---- Processing WordPress Posts / Pages - for Beaver Builder ----' );
|
58 |
+
if ( ! is_callable( 'FLBuilderModel::get_post_types' ) ) {
|
59 |
+
return;
|
60 |
+
}
|
61 |
+
|
62 |
+
$post_types = FLBuilderModel::get_post_types( 'post-types' );
|
63 |
+
if ( empty( $post_types ) && ! is_array( $post_types ) ) {
|
64 |
+
return;
|
65 |
+
}
|
66 |
+
|
67 |
+
$post_ids = Astra_Sites_Batch_Processing::get_pages( $post_types );
|
68 |
+
if ( empty( $post_ids ) && ! is_array( $post_ids ) ) {
|
69 |
+
return;
|
70 |
+
}
|
71 |
+
|
72 |
+
foreach ( $post_ids as $post_id ) {
|
73 |
+
$is_bb_post = get_post_meta( $post_id, '_fl_builder_enabled', true );
|
74 |
+
if ( $is_bb_post ) {
|
75 |
+
$this->import_single_post( $post_id );
|
76 |
+
}
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Update post meta.
|
82 |
+
*
|
83 |
+
* @param integer $post_id Post ID.
|
84 |
+
* @return void
|
85 |
+
*/
|
86 |
+
public function import_single_post( $post_id = 0 ) {
|
87 |
+
|
88 |
+
Astra_Sites_Importer_Log::add( 'Post ID: ' . $post_id );
|
89 |
+
if ( ! empty( $post_id ) ) {
|
90 |
+
|
91 |
+
// Get page builder data.
|
92 |
+
$data = get_post_meta( $post_id, '_fl_builder_data', true );
|
93 |
+
|
94 |
+
if ( ! empty( $data ) ) {
|
95 |
+
foreach ( $data as $key => $el ) {
|
96 |
+
|
97 |
+
// Update 'row' images.
|
98 |
+
if ( 'row' === $el->type ) {
|
99 |
+
$data[ $key ]->settings = self::update_row( $el->settings );
|
100 |
+
}
|
101 |
+
|
102 |
+
// Update 'module' images.
|
103 |
+
if ( 'module' === $el->type ) {
|
104 |
+
$data[ $key ]->settings = self::update_module( $el->settings );
|
105 |
+
}
|
106 |
+
|
107 |
+
// Update 'column' images.
|
108 |
+
if ( 'column' === $el->type ) {
|
109 |
+
$data[ $key ]->settings = self::update_column( $el->settings );
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
// Update page builder data.
|
114 |
+
update_post_meta( $post_id, '_fl_builder_data', $data );
|
115 |
+
update_post_meta( $post_id, '_fl_builder_draft', $data );
|
116 |
+
|
117 |
+
// Clear all cache.
|
118 |
+
FLBuilderModel::delete_asset_cache_for_all_posts();
|
119 |
+
}
|
120 |
+
}
|
121 |
+
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* Import Module Images.
|
126 |
+
*
|
127 |
+
* @param object $settings Module settings object.
|
128 |
+
* @return object
|
129 |
+
*/
|
130 |
+
public static function update_module( $settings ) {
|
131 |
+
|
132 |
+
// 1) Set photos.
|
133 |
+
$settings = self::import_photo( $settings );
|
134 |
+
|
135 |
+
/**
|
136 |
+
* 2) Set `$settings->data` for Only type 'image-icon'
|
137 |
+
*
|
138 |
+
* @todo Remove the condition `'image-icon' === $settings->type` if `$settings->data` is used only for the Image Icon.
|
139 |
+
*/
|
140 |
+
if (
|
141 |
+
isset( $settings->data ) &&
|
142 |
+
isset( $settings->photo ) && ! empty( $settings->photo ) &&
|
143 |
+
'image-icon' === $settings->type
|
144 |
+
) {
|
145 |
+
$settings->data = FLBuilderPhoto::get_attachment_data( $settings->photo );
|
146 |
+
}
|
147 |
+
|
148 |
+
// 3) Set `list item` module images.
|
149 |
+
if ( isset( $settings->add_list_item ) ) {
|
150 |
+
foreach ( $settings->add_list_item as $key => $value ) {
|
151 |
+
$settings->add_list_item[ $key ] = self::import_photo( $value );
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
// 4) Set `list item` module images.
|
156 |
+
if ( isset( $settings->text ) ) {
|
157 |
+
$ids_mapping = get_option( 'astra_sites_wpforms_ids_mapping', array() );
|
158 |
+
if ( $ids_mapping ) {
|
159 |
+
|
160 |
+
// Keep old data in temp.
|
161 |
+
$updated_data = $settings->text;
|
162 |
+
|
163 |
+
// Update WP form IDs.
|
164 |
+
foreach ( $ids_mapping as $old_id => $new_id ) {
|
165 |
+
$updated_data = str_replace( '[wpforms id="' . $old_id, '[wpforms id="' . $new_id, $updated_data );
|
166 |
+
}
|
167 |
+
|
168 |
+
// Update modified data.
|
169 |
+
$settings->text = $updated_data;
|
170 |
+
}
|
171 |
+
}
|
172 |
+
|
173 |
+
return $settings;
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Import Column Images.
|
178 |
+
*
|
179 |
+
* @param object $settings Column settings object.
|
180 |
+
* @return object
|
181 |
+
*/
|
182 |
+
public static function update_column( $settings ) {
|
183 |
+
|
184 |
+
// 1) Set BG Images.
|
185 |
+
$settings = self::import_bg_image( $settings );
|
186 |
+
|
187 |
+
return $settings;
|
188 |
+
}
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Import Row Images.
|
192 |
+
*
|
193 |
+
* @param object $settings Row settings object.
|
194 |
+
* @return object
|
195 |
+
*/
|
196 |
+
public static function update_row( $settings ) {
|
197 |
+
|
198 |
+
// 1) Set BG Images.
|
199 |
+
$settings = self::import_bg_image( $settings );
|
200 |
+
|
201 |
+
return $settings;
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* Helper: Import BG Images.
|
206 |
+
*
|
207 |
+
* @param object $settings Row settings object.
|
208 |
+
* @return object
|
209 |
+
*/
|
210 |
+
public static function import_bg_image( $settings ) {
|
211 |
+
|
212 |
+
if (
|
213 |
+
( ! empty( $settings->bg_image ) && ! empty( $settings->bg_image_src ) )
|
214 |
+
) {
|
215 |
+
$image = array(
|
216 |
+
'url' => $settings->bg_image_src,
|
217 |
+
'id' => $settings->bg_image,
|
218 |
+
);
|
219 |
+
|
220 |
+
$downloaded_image = Astra_Sites_Image_Importer::get_instance()->import( $image );
|
221 |
+
|
222 |
+
$settings->bg_image_src = $downloaded_image['url'];
|
223 |
+
$settings->bg_image = $downloaded_image['id'];
|
224 |
+
}
|
225 |
+
|
226 |
+
return $settings;
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Helper: Import Photo.
|
231 |
+
*
|
232 |
+
* @param object $settings Row settings object.
|
233 |
+
* @return object
|
234 |
+
*/
|
235 |
+
public static function import_photo( $settings ) {
|
236 |
+
|
237 |
+
if ( ! empty( $settings->photo ) && ! empty( $settings->photo_src ) ) {
|
238 |
+
|
239 |
+
$image = array(
|
240 |
+
'url' => $settings->photo_src,
|
241 |
+
'id' => $settings->photo,
|
242 |
+
);
|
243 |
+
|
244 |
+
$downloaded_image = Astra_Sites_Image_Importer::get_instance()->import( $image );
|
245 |
+
|
246 |
+
$settings->photo_src = $downloaded_image['url'];
|
247 |
+
$settings->photo = $downloaded_image['id'];
|
248 |
+
}
|
249 |
+
|
250 |
+
return $settings;
|
251 |
+
}
|
252 |
+
|
253 |
+
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Kicking this off by calling 'get_instance()' method
|
258 |
+
*/
|
259 |
+
Astra_Sites_Batch_Processing_Beaver_Builder::get_instance();
|
260 |
+
|
261 |
+
endif;
|
inc/importers/batch-processing/class-astra-sites-batch-processing-brizy.php
CHANGED
@@ -1,125 +1,125 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Batch Processing
|
4 |
-
*
|
5 |
-
* @package Astra Sites
|
6 |
-
* @since 1.2.14
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! class_exists( 'Astra_Sites_Batch_Processing_Brizy' ) ) :
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Astra Sites Batch Processing Brizy
|
13 |
-
*
|
14 |
-
* @since 1.2.14
|
15 |
-
*/
|
16 |
-
class Astra_Sites_Batch_Processing_Brizy {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Instance
|
20 |
-
*
|
21 |
-
* @since 1.2.14
|
22 |
-
* @access private
|
23 |
-
* @var object Class object.
|
24 |
-
*/
|
25 |
-
private static $instance;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Initiator
|
29 |
-
*
|
30 |
-
* @since 1.2.14
|
31 |
-
* @return object initialized object of class.
|
32 |
-
*/
|
33 |
-
public static function get_instance() {
|
34 |
-
|
35 |
-
if ( ! isset( self::$instance ) ) {
|
36 |
-
self::$instance = new self;
|
37 |
-
}
|
38 |
-
return self::$instance;
|
39 |
-
}
|
40 |
-
|
41 |
-
/**
|
42 |
-
* Constructor
|
43 |
-
*
|
44 |
-
* @since 1.2.14
|
45 |
-
*/
|
46 |
-
public function __construct() {}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Import
|
50 |
-
*
|
51 |
-
* @since 1.2.14
|
52 |
-
* @return void
|
53 |
-
*/
|
54 |
-
public function import() {
|
55 |
-
|
56 |
-
Astra_Sites_Importer_Log::add( '---- Processing WordPress Posts / Pages - for "Brizy" ----' );
|
57 |
-
if ( ! is_callable( 'Brizy_Editor_Storage_Common::instance' ) ) {
|
58 |
-
return;
|
59 |
-
}
|
60 |
-
|
61 |
-
$post_types = Brizy_Editor_Storage_Common::instance()->get( 'post-types' );
|
62 |
-
if ( empty( $post_types ) && ! is_array( $post_types ) ) {
|
63 |
-
return;
|
64 |
-
}
|
65 |
-
|
66 |
-
$post_ids = Astra_Sites_Batch_Processing::get_pages( $post_types );
|
67 |
-
if ( empty( $post_ids ) && ! is_array( $post_ids ) ) {
|
68 |
-
return;
|
69 |
-
}
|
70 |
-
|
71 |
-
foreach ( $post_ids as $post_id ) {
|
72 |
-
$is_brizy_post = get_post_meta( $post_id, 'brizy_post_uid', true );
|
73 |
-
if ( $is_brizy_post ) {
|
74 |
-
$this->import_single_post( $post_id );
|
75 |
-
}
|
76 |
-
}
|
77 |
-
}
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Update post meta.
|
81 |
-
*
|
82 |
-
* @param integer $post_id Post ID.
|
83 |
-
* @return void
|
84 |
-
*/
|
85 |
-
public function import_single_post( $post_id = 0 ) {
|
86 |
-
|
87 |
-
$ids_mapping = get_option( 'astra_sites_wpforms_ids_mapping', array() );
|
88 |
-
|
89 |
-
// Empty mapping? Then return.
|
90 |
-
if ( empty( $ids_mapping ) ) {
|
91 |
-
return;
|
92 |
-
}
|
93 |
-
|
94 |
-
$json_value = null;
|
95 |
-
|
96 |
-
$post = Brizy_Editor_Post::get( (int) $post_id );
|
97 |
-
$data = $post->storage()->get( Brizy_Editor_Post::BRIZY_POST, false );
|
98 |
-
|
99 |
-
// Decode current data.
|
100 |
-
$json_value = base64_decode( $data['editor_data'] );
|
101 |
-
|
102 |
-
// Update WPForm IDs.
|
103 |
-
foreach ( $ids_mapping as $old_id => $new_id ) {
|
104 |
-
$json_value = str_replace( '[wpforms id=\"' . $old_id, '[wpforms id=\"' . $new_id, $json_value );
|
105 |
-
}
|
106 |
-
|
107 |
-
// Encode modified data.
|
108 |
-
$data['editor_data'] = base64_encode( $json_value );
|
109 |
-
|
110 |
-
$post->set_editor_data( $json_value );
|
111 |
-
|
112 |
-
$post->storage()->set( Brizy_Editor_Post::BRIZY_POST, $data );
|
113 |
-
|
114 |
-
$post->compile_page();
|
115 |
-
$post->save();
|
116 |
-
}
|
117 |
-
|
118 |
-
}
|
119 |
-
|
120 |
-
/**
|
121 |
-
* Kicking this off by calling 'get_instance()' method
|
122 |
-
*/
|
123 |
-
Astra_Sites_Batch_Processing_Brizy::get_instance();
|
124 |
-
|
125 |
-
endif;
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Batch Processing
|
4 |
+
*
|
5 |
+
* @package Astra Sites
|
6 |
+
* @since 1.2.14
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'Astra_Sites_Batch_Processing_Brizy' ) ) :
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Astra Sites Batch Processing Brizy
|
13 |
+
*
|
14 |
+
* @since 1.2.14
|
15 |
+
*/
|
16 |
+
class Astra_Sites_Batch_Processing_Brizy {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Instance
|
20 |
+
*
|
21 |
+
* @since 1.2.14
|
22 |
+
* @access private
|
23 |
+
* @var object Class object.
|
24 |
+
*/
|
25 |
+
private static $instance;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Initiator
|
29 |
+
*
|
30 |
+
* @since 1.2.14
|
31 |
+
* @return object initialized object of class.
|
32 |
+
*/
|
33 |
+
public static function get_instance() {
|
34 |
+
|
35 |
+
if ( ! isset( self::$instance ) ) {
|
36 |
+
self::$instance = new self;
|
37 |
+
}
|
38 |
+
return self::$instance;
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Constructor
|
43 |
+
*
|
44 |
+
* @since 1.2.14
|
45 |
+
*/
|
46 |
+
public function __construct() {}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Import
|
50 |
+
*
|
51 |
+
* @since 1.2.14
|
52 |
+
* @return void
|
53 |
+
*/
|
54 |
+
public function import() {
|
55 |
+
|
56 |
+
Astra_Sites_Importer_Log::add( '---- Processing WordPress Posts / Pages - for "Brizy" ----' );
|
57 |
+
if ( ! is_callable( 'Brizy_Editor_Storage_Common::instance' ) ) {
|
58 |
+
return;
|
59 |
+
}
|
60 |
+
|
61 |
+
$post_types = Brizy_Editor_Storage_Common::instance()->get( 'post- |