Astra Starter Sites - Version 1.0.8

Version Description

Download this release

Release Info

Developer Nikschavan
Plugin Icon Astra Starter Sites
Version 1.0.8
Comparing to
See all releases

Code changes from version 1.0.7 to 1.0.8

admin/class-astra-sites-admin.php DELETED
@@ -1,82 +0,0 @@
1
- <?php
2
- /**
3
- * Astra Demo Importer Admin
4
- *
5
- * @package Astra Addon
6
- */
7
-
8
- defined( 'ABSPATH' ) or exit;
9
-
10
- /**
11
- * Astra Demo Importer Admin
12
- *
13
- * @since 1.0.0
14
- */
15
- class Astra_Sites_Admin {
16
-
17
- /**
18
- * Instance of Astra_Sites_Admin
19
- *
20
- * @since 1.0.0
21
- * @var Astra_Sites_Admin
22
- */
23
- private static $_instance = null;
24
-
25
- /**
26
- * Instanciate Astra_Sites_Admin
27
- *
28
- * @since 1.0.0
29
- * @return (Object) Astra_Sites_Admin
30
- */
31
- public static function instance() {
32
- if ( ! isset( self::$_instance ) ) {
33
- self::$_instance = new self;
34
- }
35
-
36
- return self::$_instance;
37
- }
38
-
39
- /**
40
- * Constructor
41
- *
42
- * @since 1.0.0
43
- */
44
- private function __construct() {
45
-
46
- add_filter( 'astra_menu_options', array( $this, 'menu' ) );
47
- add_action( 'astra_menu_astra_sites_action', array( $this, 'view_demos' ) );
48
-
49
- }
50
-
51
- /**
52
- * Register admin menu for demo importer
53
- *
54
- * @since 1.0.0
55
- *
56
- * @param (Array) $actions Previously registered tabs menus.
57
- *
58
- * @return (Array) registered tabs menus in Astra menu.
59
- */
60
- public function menu( $actions ) {
61
-
62
- $actions['astra-sites'] = array(
63
- 'label' => __( 'Astra Sites', 'astra-sites' ),
64
- 'show' => ! is_network_admin(),
65
- );
66
-
67
- return $actions;
68
- }
69
-
70
- /**
71
- * View Astra Sites
72
- *
73
- * @since 1.0.0
74
- */
75
- public function view_demos() {
76
-
77
- include ASTRA_SITES_DIR . 'admin/view-astra-sites.php';
78
- }
79
-
80
- }
81
-
82
- Astra_Sites_Admin::instance();
astra-sites.php CHANGED
@@ -3,7 +3,7 @@
3
* Plugin Name: Astra Free Sites
4
* Plugin URI: http://www.wpastra.com/pro/
5
* Description: Import free sites build with Astra theme.
6
- * Version: 1.0.7
7
* Author: Brainstorm Force
8
* Author URI: http://www.brainstormforce.com
9
* Text Domain: astra-sites
@@ -15,7 +15,7 @@
15
* Set constants.
16
*/
17
if ( ! defined( 'ASTRA_SITES_VER' ) ) {
18
- define( 'ASTRA_SITES_VER', '1.0.7' );
19
}
20
21
if ( ! defined( 'ASTRA_SITES_FILE' ) ) {
@@ -42,7 +42,7 @@ if ( ! function_exists( 'astra_sites_setup' ) ) :
42
* @since 1.0.5
43
*/
44
function astra_sites_setup() {
45
- require_once ASTRA_SITES_DIR . 'classes/class-astra-sites.php';
46
}
47
48
add_action( 'plugins_loaded', 'astra_sites_setup' );
3
* Plugin Name: Astra Free Sites
4
* Plugin URI: http://www.wpastra.com/pro/
5
* Description: Import free sites build with Astra theme.
6
+ * Version: 1.0.8
7
* Author: Brainstorm Force
8
* Author URI: http://www.brainstormforce.com
9
* Text Domain: astra-sites
15
* Set constants.
16
*/
17
if ( ! defined( 'ASTRA_SITES_VER' ) ) {
18
+ define( 'ASTRA_SITES_VER', '1.0.8' );
19
}
20
21
if ( ! defined( 'ASTRA_SITES_FILE' ) ) {
42
* @since 1.0.5
43
*/
44
function astra_sites_setup() {
45
+ require_once ASTRA_SITES_DIR . 'inc/classes/class-astra-sites.php';
46
}
47
48
add_action( 'plugins_loaded', 'astra_sites_setup' );
{admin → inc/admin}/class-astra-sites-page.php RENAMED
@@ -227,7 +227,7 @@ if ( ! class_exists( 'Astra_Sites_Page' ) ) {
227
* @since 1.0.6
228
*/
229
static public function general_page() {
230
- require_once ASTRA_SITES_DIR . 'admin/view-astra-sites.php';
231
}
232
}
233
227
* @since 1.0.6
228
*/
229
static public function general_page() {
230
+ require_once ASTRA_SITES_DIR . 'inc/admin/view-astra-sites.php';
231
}
232
}
233
{admin → inc/admin}/view-astra-sites.php RENAMED
@@ -11,8 +11,6 @@ defined( 'ABSPATH' ) or exit;
11
wp_enqueue_script( 'astra-sites-admin' );
12
wp_enqueue_style( 'astra-sites-admin' );
13
14
- do_action( 'astra_sites_before_site_grid' );
15
-
16
/**
17
* Initial Demo List
18
*
@@ -21,6 +19,7 @@ do_action( 'astra_sites_before_site_grid' );
21
?>
22
<div class="wrap">
23
24
<div class="wp-filter hide-if-no-js">
25
26
<ul class="filter-links">
@@ -45,12 +44,16 @@ do_action( 'astra_sites_before_site_grid' );
45
46
</div>
47
48
<span class="spinner"></span>
49
50
<div class="theme-browser rendered">
51
<div class="themes wp-clearfix"></div>
52
</div>
53
54
</div>
55
56
<?php
@@ -72,6 +75,7 @@ do_action( 'astra_sites_before_site_grid' );
72
data-content="{{{data.content}}}"
73
data-required-plugins="{{data.required_plugins}}">
74
<input type="hidden" class="astra-site-options" value="{{data.astra_site_options}}" >
75
76
<span class="status {{data.status}}">{{data.status}}</span>
77
@@ -116,6 +120,7 @@ do_action( 'astra_sites_before_site_grid' );
116
data-content="{{{data.content}}}"
117
data-required-plugins="{{data.required_plugins}}">
118
<input type="hidden" class="astra-site-options" value="{{data.astra_site_options}}" >
119
<button class="close-full-overlay"><span class="screen-reader-text"><?php esc_html_e( 'Close', 'astra-sites' ); ?></span></button>
120
<button class="previous-theme"><span class="screen-reader-text"><?php esc_html_e( 'Previous', 'astra-sites' ); ?></span></button>
121
<button class="next-theme"><span class="screen-reader-text"><?php esc_html_e( 'Next', 'astra-sites' ); ?></span></button>
@@ -179,7 +184,3 @@ do_action( 'astra_sites_before_site_grid' );
179
?>
180
</div>
181
</script>
182
-
183
- <?php
184
-
185
- do_action( 'astra_sites_after_site_grid' );
11
wp_enqueue_script( 'astra-sites-admin' );
12
wp_enqueue_style( 'astra-sites-admin' );
13
14
/**
15
* Initial Demo List
16
*
19
?>
20
<div class="wrap">
21
22
+
23
<div class="wp-filter hide-if-no-js">
24
25
<ul class="filter-links">
44
45
</div>
46
47
+ <?php do_action( 'astra_sites_before_site_grid' ); ?>
48
+
49
<span class="spinner"></span>
50
51
<div class="theme-browser rendered">
52
<div class="themes wp-clearfix"></div>
53
</div>
54
55
+ <?php do_action( 'astra_sites_after_site_grid' ); ?>
56
+
57
</div>
58
59
<?php
75
data-content="{{{data.content}}}"
76
data-required-plugins="{{data.required_plugins}}">
77
<input type="hidden" class="astra-site-options" value="{{data.astra_site_options}}" >
78
+ <input type="hidden" class="astra-enabled-extensions" value="{{data.astra_enabled_extensions}}" >
79
80
<span class="status {{data.status}}">{{data.status}}</span>
81
120
data-content="{{{data.content}}}"
121
data-required-plugins="{{data.required_plugins}}">
122
<input type="hidden" class="astra-site-options" value="{{data.astra_site_options}}" >
123
+ <input type="hidden" class="astra-enabled-extensions" value="{{data.astra_enabled_extensions}}" >
124
<button class="close-full-overlay"><span class="screen-reader-text"><?php esc_html_e( 'Close', 'astra-sites' ); ?></span></button>
125
<button class="previous-theme"><span class="screen-reader-text"><?php esc_html_e( 'Previous', 'astra-sites' ); ?></span></button>
126
<button class="next-theme"><span class="screen-reader-text"><?php esc_html_e( 'Next', 'astra-sites' ); ?></span></button>
184
?>
185
</div>
186
</script>
{assets → inc/assets}/css/admin.css RENAMED
@@ -60,6 +60,10 @@
60
width: 100%;
61
}
62
63
/**
64
* Required Plugins
65
*/
@@ -190,4 +194,11 @@
190
191
#astra-sites-menu-page {
192
margin-top: 10px;
193
}
60
width: 100%;
61
}
62
63
+ .install-theme-info .demo-type.premium {
64
+ display: none;
65
+ }
66
+
67
/**
68
* Required Plugins
69
*/
194
195
#astra-sites-menu-page {
196
margin-top: 10px;
197
+ }
198
+
199
+ /**
200
+ * API Error
201
+ */
202
+ .astra-api-error {
203
+ margin: 0 0 0.5em 0;
204
}
{assets → inc/assets}/js/admin.js RENAMED
@@ -45,31 +45,47 @@ function initial_load_demos() {
45
*/
46
function enable_demo_import_button( type = 'free' ) {
47
48
- if( 'free' === type ) {
49
-
50
- // Get initial required plugins count.
51
- var remaining = parseInt( astraDemo.requiredPluginsCount ) || 0;
52
-
53
- // Enable demo import button.
54
- if( 0 >= remaining ) {
55
-
56
- jQuery('.astra-demo-import')
57
- .removeAttr('data-import')
58
- .addClass('button-primary')
59
- .text( astraDemo.strings.importDemo );
60
- }
61
- } else {
62
-
63
- var demo_slug = jQuery('.wp-full-overlay-header').attr('data-demo-slug');
64
-
65
- jQuery('.astra-demo-import')
66
- .addClass('go-pro button-primary')
67
- .removeClass('astra-demo-import')
68
- .attr('target', '_blank')
69
- .attr('href', astraDemo.getProURL + demo_slug )
70
- .text( astraDemo.getProText )
71
- .append('<i class="dashicons dashicons-external"></i>');
72
}
73
}
74
75
function resetPagedCount() {
@@ -232,6 +248,7 @@ jQuery(document).on( 'wp-plugin-install-success', function( event, response ) {
232
233
var $message = jQuery( '.plugin-card-' + response.slug ).find( '.install-now' );
234
var $siteOptions = jQuery( '.wp-full-overlay-header').find('.astra-site-options').val();
235
236
// Transform the 'Install' button into an 'Activate' button.
237
var $init = $message.data('init');
@@ -250,6 +267,7 @@ jQuery(document).on( 'wp-plugin-install-success', function( event, response ) {
250
'action' : 'astra-required-plugin-activate',
251
'init' : $init,
252
'options' : $siteOptions,
253
},
254
})
255
.done(function (result) {
@@ -260,13 +278,18 @@ jQuery(document).on( 'wp-plugin-install-success', function( event, response ) {
260
.addClass('disabled')
261
.text( astraDemo.strings.btnActive );
262
263
- // Enable Demo Import Button
264
- astraDemo.requiredPluginsCount--;
265
- enable_demo_import_button();
266
- }
267
- });
268
269
- }, 1000 );
270
271
});
272
@@ -291,7 +314,8 @@ jQuery(document).on('click', '.activate-now', function (event) {
291
$button.addClass('updating-message button-primary')
292
.html( astraDemo.strings.btnActivating );
293
294
- var siteOptions = jQuery( '.wp-full-overlay-header').find('.astra-site-options').val();
295
296
jQuery.ajax({
297
url: astraDemo.ajaxurl,
@@ -299,7 +323,8 @@ jQuery(document).on('click', '.activate-now', function (event) {
299
data: {
300
'action' : 'astra-required-plugin-activate',
301
'init' : $init,
302
- 'options' : siteOptions,
303
},
304
})
305
.done(function (result) {
@@ -333,20 +358,22 @@ function renderDemoPreview(anchor) {
333
content = anchor.data('content') || '',
334
requiredPlugins = anchor.data('required-plugins') || '',
335
astraSiteOptions = anchor.find('.astra-site-options').val() || '';
336
337
var template = wp.template('astra-demo-preview');
338
339
templateData = [{
340
- id : demoId,
341
- astra_demo_type : demoType,
342
- astra_demo_url : demoURL,
343
- demo_api : apiURL,
344
- screenshot : screenshot,
345
- demo_name : demo_name,
346
- slug : demo_slug,
347
- content : content,
348
- requiredPlugins : requiredPlugins,
349
- astra_site_options : astraSiteOptions,
350
}];
351
352
// Initial set count.
@@ -363,35 +390,35 @@ function renderDemoPreview(anchor) {
363
var descHeight = parseInt( desc.outerHeight() );
364
var descBtn = jQuery('.theme-details-read-more');
365
366
- if( 'free' === demoType && descHeight >= 55 ) {
367
368
- // Show button.
369
- descBtn.css( 'display', 'inline-block' );
370
371
- // Set height upto 3 line.
372
- desc.css( 'height', 57 );
373
374
- // Button Click.
375
- descBtn.click(function(event) {
376
377
- if( descBtn.hasClass('open') ) {
378
- desc.animate({ height: 57 },
379
- 300, function() {
380
- descBtn.removeClass('open');
381
- descBtn.html( astraDemo.strings.DescExpand );
382
- });
383
- } else {
384
- desc.animate({ height: descHeight },
385
- 300, function() {
386
- descBtn.addClass('open');
387
- descBtn.html( astraDemo.strings.DescCollapse );
388
- });
389
- }
390
391
- });
392
- }
393
394
- if( 'free' === demoType ) {
395
396
// or
397
var $pluginsFilter = jQuery( '#plugin-filter' ),
@@ -507,6 +534,7 @@ function renderDemoPreview(anchor) {
507
} else {
508
509
// Enable Demo Import Button
510
enable_demo_import_button( demoType );
511
jQuery('.required-plugins-wrap').remove();
512
}
@@ -643,6 +671,7 @@ function renderDemoGrid(demos) {
643
requiredPlugins = demo.required_plugins;
644
status = demo.status;
645
astraSiteOptions = demo.astra_site_options || '';
646
647
templateData = [{
648
id: id,
@@ -655,7 +684,8 @@ function renderDemoGrid(demos) {
655
slug: demo_slug,
656
content: content,
657
required_plugins: requiredPlugins,
658
- astra_site_options: astraSiteOptions
659
}]
660
661
var template = wp.template('astra-single-demo');
@@ -714,6 +744,7 @@ jQuery(document).on('click', '.astra-demo-import', function (event) {
714
715
var apiURL = $theme.data('demo-api') || '';
716
717
jQuery.ajax({
718
url: astraDemo.ajaxurl,
719
type: 'POST',
@@ -725,6 +756,7 @@ jQuery(document).on('click', '.astra-demo-import', function (event) {
725
})
726
.done(function ( demos ) {
727
728
if( demos.success ) {
729
jQuery('.astra-demo-import').removeClass('updating-message installing')
730
.removeAttr('data-import')
@@ -734,6 +766,21 @@ jQuery(document).on('click', '.astra-demo-import', function (event) {
734
.attr('target', '_blank')
735
.append('<i class="dashicons dashicons-external"></i>')
736
.attr('href', astraDemo.siteURL );
737
}
738
739
})
45
*/
46
function enable_demo_import_button( type = 'free' ) {
47
48
+ switch( type ) {
49
+
50
+ case 'free':
51
+ // Get initial required plugins count.
52
+ var remaining = parseInt( astraDemo.requiredPluginsCount ) || 0;
53
+
54
+ // Enable demo import button.
55
+ if( 0 >= remaining ) {
56
+
57
+ jQuery('.astra-demo-import')
58
+ .removeAttr('data-import')
59
+ .addClass('button-primary')
60
+ .text( astraDemo.strings.importDemo );
61
+ }
62
+ break;
63
+
64
+ case 'upgrade':
65
+ var demo_slug = jQuery('.wp-full-overlay-header').attr('data-demo-slug');
66
+
67
+ jQuery('.astra-demo-import')
68
+ .addClass('go-pro button-primary')
69
+ .removeClass('astra-demo-import')
70
+ .attr('target', '_blank')
71
+ .attr('href', astraDemo.getUpgradeURL + demo_slug )
72
+ .text( astraDemo.getUpgradeText )
73
+ .append('<i class="dashicons dashicons-external"></i>');
74
+ break;
75
+
76
+ default:
77
+ var demo_slug = jQuery('.wp-full-overlay-header').attr('data-demo-slug');
78
+
79
+ jQuery('.astra-demo-import')
80
+ .addClass('go-pro button-primary')
81
+ .removeClass('astra-demo-import')
82
+ .attr('target', '_blank')
83
+ .attr('href', astraDemo.getProURL )
84
+ .text( astraDemo.getProText )
85
+ .append('<i class="dashicons dashicons-external"></i>');
86
+ break;
87
}
88
+
89
}
90
91
function resetPagedCount() {
248
249
var $message = jQuery( '.plugin-card-' + response.slug ).find( '.install-now' );
250
var $siteOptions = jQuery( '.wp-full-overlay-header').find('.astra-site-options').val();
251
+ var $enabledExtensions = jQuery( '.wp-full-overlay-header').find('.astra-enabled-extensions').val();
252
253
// Transform the 'Install' button into an 'Activate' button.
254
var $init = $message.data('init');
267
'action' : 'astra-required-plugin-activate',
268
'init' : $init,
269
'options' : $siteOptions,
270
+ 'enabledExtensions' : $enabledExtensions,
271
},
272
})
273
.done(function (result) {
278
.addClass('disabled')
279
.text( astraDemo.strings.btnActive );
280
281
+ // Enable Demo Import Button
282
+ astraDemo.requiredPluginsCount--;
283
+ enable_demo_import_button();
284
+ } else {
285
286
+ $message.removeClass( 'updating-message' );
287
+
288
+ }
289
+
290
+ });
291
+
292
+ }, 1200 );
293
294
});
295
314
$button.addClass('updating-message button-primary')
315
.html( astraDemo.strings.btnActivating );
316
317
+ var $siteOptions = jQuery( '.wp-full-overlay-header').find('.astra-site-options').val();
318
+ var $enabledExtensions = jQuery( '.wp-full-overlay-header').find('.astra-enabled-extensions').val();
319
320
jQuery.ajax({
321
url: astraDemo.ajaxurl,
323
data: {
324
'action' : 'astra-required-plugin-activate',
325
'init' : $init,
326
+ 'options' : $siteOptions,
327
+ 'enabledExtensions' : $enabledExtensions,
328
},
329
})
330
.done(function (result) {
358
content = anchor.data('content') || '',
359
requiredPlugins = anchor.data('required-plugins') || '',
360
astraSiteOptions = anchor.find('.astra-site-options').val() || '';
361
+ astraEnabledExtensions = anchor.find('.astra-enabled-extensions').val() || '';
362
363
var template = wp.template('astra-demo-preview');
364
365
templateData = [{
366
+ id : demoId,
367
+ astra_demo_type : demoType,
368
+ astra_demo_url : demoURL,
369
+ demo_api : apiURL,
370
+ screenshot : screenshot,
371
+ demo_name : demo_name,
372
+ slug : demo_slug,
373
+ content : content,
374
+ requiredPlugins : requiredPlugins,
375
+ astra_site_options : astraSiteOptions,
376
+ astra_enabled_extensions : astraEnabledExtensions,
377
}];
378
379
// Initial set count.
390
var descHeight = parseInt( desc.outerHeight() );
391
var descBtn = jQuery('.theme-details-read-more');
392
393
+ if( jQuery.isArray( requiredPlugins ) ) {
394
395
+ if( descHeight >= 55 ) {
396
397
+ // Show button.
398
+ descBtn.css( 'display', 'inline-block' );
399
400
+ // Set height upto 3 line.
401
+ desc.css( 'height', 57 );
402
403
+ // Button Click.
404
+ descBtn.click(function(event) {
405
406
+ if( descBtn.hasClass('open') ) {
407
+ desc.animate({ height: 57 },
408
+ 300, function() {
409
+ descBtn.removeClass('open');
410
+ descBtn.html( astraDemo.strings.DescExpand );
411
+ });
412
+ } else {
413
+ desc.animate({ height: descHeight },
414
+ 300, function() {
415
+ descBtn.addClass('open');
416
+ descBtn.html( astraDemo.strings.DescCollapse );
417
+ });
418
+ }
419
420
+ });
421
+ }
422
423
// or
424
var $pluginsFilter = jQuery( '#plugin-filter' ),
534
} else {
535
536
// Enable Demo Import Button
537
+ astraDemo.requiredPluginsCount = requiredPlugins.length;
538
enable_demo_import_button( demoType );
539
jQuery('.required-plugins-wrap').remove();
540
}
671
requiredPlugins = demo.required_plugins;
672
status = demo.status;
673
astraSiteOptions = demo.astra_site_options || '';
674
+ astraEnabledExtensions = demo.astra_enabled_extensions || '';
675
676
templateData = [{
677
id: id,
684
slug: demo_slug,
685
content: content,
686
required_plugins: requiredPlugins,
687
+ astra_site_options: astraSiteOptions,
688
+ astra_enabled_extensions: astraEnabledExtensions
689
}]
690
691
var template = wp.template('astra-single-demo');
744
745
var apiURL = $theme.data('demo-api') || '';
746
747
+
748
jQuery.ajax({
749
url: astraDemo.ajaxurl,
750
type: 'POST',
756
})
757
.done(function ( demos ) {
758
759
+ // Success?
760
if( demos.success ) {
761
jQuery('.astra-demo-import').removeClass('updating-message installing')
762
.removeAttr('data-import')
766
.attr('target', '_blank')
767
.append('<i class="dashicons dashicons-external"></i>')
768
.attr('href', astraDemo.siteURL );
769
+
770
+ } else {
771
+
772
+ var output = '<div class="astra-api-error notice notice-error notice-alt is-dismissible">';
773
+ output += ' <p>'+demos.message+'</p>';
774
+ output += ' <button type="button" class="notice-dismiss">';
775
+ output += ' <span class="screen-reader-text">'+commonL10n.dismiss+'</span>';
776
+ output += ' </button>';
777
+ output += '</div>';
778
+
779
+ jQuery('.install-theme-info').prepend( output );
780
+
781
+ // !important to add trigger.
782
+ // Which reinitialize the dismiss error message events.
783
+ jQuery(document).trigger('wp-updates-notice-added');
784
}
785
786
})
inc/assets/js/astra-sites-notices.js ADDED
@@ -0,0 +1,21 @@
1
+ jQuery(document).ready(function ($) {
2
+
3
+ jQuery( '.astra-notice.is-dismissible' ).on( 'click', function() {
4
+ var $id = jQuery( this ).attr( 'id' ) || '';
5
+ var $time = jQuery( this ).attr( 'dismissible-time' ) || '';
6
+ var $meta = jQuery( this ).attr( 'dismissible-meta' ) || '';
7
+
8
+ jQuery.ajax({
9
+ url: ajaxurl,
10
+ type: 'POST',
11
+ data: {
12
+ action : 'astra-notices',
13
+ id : $id,
14
+ meta : $meta,
15
+ time : $time,
16
+ },
17
+ });
18
+
19
+ });
20
+
21
+ });
inc/classes/class-astra-sites-notices.php ADDED
@@ -0,0 +1,211 @@
1
+ <?php
2
+ /**
3
+ * Astra Sites Notices
4
+ *
5
+ * @package Astra Sites
6
+ * @since 1.0.8
7
+ */
8
+
9
+ if ( ! class_exists( 'Astra_Sites_Notices' ) ) :
10
+
11
+ /**
12
+ * Astra_Sites_Notices
13
+ *
14
+ * @since 1.0.8
15
+ */
16
+ class Astra_Sites_Notices {
17
+
18
+ /**
19
+ * Notices
20
+ *
21
+ * @access private
22
+ * @var array Notices.
23
+ * @since 1.0.8
24
+ */
25
+ private static $notices = array();
26
+
27
+ /**
28
+ * Instance
29
+ *
30
+ * @access private
31
+ * @var object Class object.
32
+ * @since 1.0.8
33
+ */
34
+ private static $instance;
35
+
36
+ /**
37
+ * Initiator
38
+ *
39
+ * @since 1.0.8
40
+ * @return object initialized object of class.
41
+ */
42
+ public static function set_instance() {
43
+ if ( ! isset( self::$instance ) ) {
44
+ self::$instance = new self;
45
+ }
46
+ return self::$instance;
47
+ }
48
+
49
+ /**
50
+ * Constructor
51
+ *
52
+ * @since 1.0.8
53
+ */
54
+ public function __construct() {
55
+
56
+ add_action( 'admin_notices', array( $this, 'show_notices' ) );
57
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
58
+ add_action( 'wp_ajax_astra-notices', array( $this, 'dismiss' ) );
59
+
60
+ }
61
+
62
+ /**
63
+ * Add Notice.
64
+ *
65
+ * @since 1.0.8
66
+ * @param array $args Notice arguments.
67
+ * @return void
68
+ */
69
+ public static function add_notice( $args = array() ) {
70
+ if ( is_array( $args ) ) {
71
+ self::$notices[] = $args;
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Dismiss Notice.
77
+ *
78
+ * @since 1.0.8
79
+ * @return void
80
+ */
81
+ function dismiss() {
82
+
83
+ $id = ( isset( $_POST['id'] ) ) ? $_POST['id'] : '';
84
+ $time = ( isset( $_POST['time'] ) ) ? $_POST['time'] : '';
85
+ $meta = ( isset( $_POST['meta'] ) ) ? $_POST['meta'] : '';
86
+
87
+ // Valid inputs?
88
+ if ( ! empty( $id ) ) {
89
+
90
+ if ( 'user' === $meta ) {
91
+ update_user_meta( get_current_user_id(), $id, true );
92
+ } else {
93
+ set_transient( $id, true, $time );
94
+ }
95
+
96
+ wp_send_json_success();
97
+ }
98
+
99
+ wp_send_json_error();
100
+ }
101
+
102
+ /**
103
+ * Enqueue Scripts.
104
+ *
105
+ * @since 1.0.8
106
+ * @return void
107
+ */
108
+ function enqueue_scripts() {
109
+ wp_register_script( 'astra-sites-notices', ASTRA_SITES_URI . 'inc/assets/js/astra-sites-notices.js', array( 'jquery' ), ASTRA_SITES_VER, true );
110
+ }
111
+
112
+ /**
113
+ * Notice Types
114
+ *
115
+ * @since 1.0.8
116
+ * @return void
117
+ */
118
+ function show_notices() {
119
+
120
+ $defaults = array(
121
+ 'type' => 'info',
122
+ 'show_if' => true,
123
+ 'message' => '',
124
+ 'class' => 'ast-active-notice',
125
+
126
+ 'dismissible' => false,
127
+ 'dismissible-meta' => 'user',
128
+ 'dismissible-time' => MINUTE_IN_SECONDS,
129
+
130
+ 'data' => '',
131
+ );
132
+
133
+ foreach ( self::$notices as $key => $notice ) {
134
+
135
+ $notice = wp_parse_args( $notice, $defaults );
136
+
137
+ $classes = array( 'astra-notice', 'notice' );
138
+
139
+ $classes[] = $notice['class'];
140
+ if ( isset( $notice['type'] ) ) {
141
+ $classes[] = 'notice-' . $notice['type'];
142
+ }
143
+
144
+ // Is notice dismissible?
145
+ if ( true === $notice['dismissible'] ) {
146
+ $classes[] = 'is-dismissible';
147
+
148
+ // Dismissable time.
149
+ $notice['data'] = ' dismissible-time=' . esc_attr( $notice['dismissible-time'] ) . ' ';
150
+ }
151
+
152
+ // Notice ID.
153
+ $notice_id = 'astra-sites-notices-id-' . $key;
154
+ $notice['id'] = $notice_id;
155
+ $notice['classes'] = implode( ' ', $classes );
156
+
157
+ // User meta.
158
+ $notice['data'] = ' dismissible-meta=' . esc_attr( $notice['dismissible-meta'] ) . ' ';
159
+ if ( 'user' === $notice['dismissible-meta'] ) {
160
+ $expired = get_user_meta( get_current_user_id(), $notice_id, true );
161
+ } else {
162
+ $expired = get_transient( $notice_id );
163
+ }
164
+
165
+ // Notices visible after transient expire.
166
+ if ( isset( $notice['show_if'] ) ) {
167
+
168
+ if ( true === $notice['show_if'] ) {
169
+
170
+ // Is transient expired?
171
+ if ( false === $expired || empty( $expired ) ) {
172
+ self::markup( $notice );
173
+ }
174
+ }
175
+ } else {
176
+
177
+ // No transient notices.
178
+ self::markup( $notice );
179
+ }
180
+ }
181
+
182
+ }
183
+
184
+ /**
185
+ * Markup Notice.
186
+ *
187
+ * @since 1.0.8
188
+ * @param array $notice Notice markup.
189
+ * @return void
190
+ */
191
+ public static function markup( $notice = array() ) {
192
+
193
+ wp_enqueue_script( 'astra-sites-notices' );
194
+
195
+ ?>
196
+ <div id="<?php echo esc_attr( $notice['id'] ); ?>" class="<?php echo esc_attr( $notice['classes'] ); ?>" <?php echo $notice['data']; ?>>
197
+ <p>
198
+ <?php echo $notice['message']; ?>
199
+ </p>
200
+ </div>
201
+ <?php
202
+ }
203
+
204
+ }
205
+
206
+ /**
207
+ * Kicking this off by calling 'set_instance()' method
208
+ */
209
+ Astra_Sites_Notices::set_instance();
210
+
211
+ endif;
{classes → inc/classes}/class-astra-sites.php RENAMED
@@ -53,18 +53,37 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
53
*/
54
private function __construct() {
55
56
- add_action( 'admin_notices', array( $this, 'admin_notices' ) );
57
-
58
self::set_api_url();
59
60
$this->includes();
61
62
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue' ) );
63
add_action( 'wp_ajax_astra-import-demo', array( $this, 'demo_ajax_import' ) );
64
add_action( 'wp_ajax_astra-list-sites', array( $this, 'list_demos' ) );
65
add_action( 'wp_ajax_astra-required-plugins', array( $this, 'required_plugin' ) );
66
add_action( 'wp_ajax_astra-required-plugin-activate', array( $this, 'required_plugin_activate' ) );
67
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
68
}
69
70
/**
@@ -79,25 +98,12 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
79
/**
80
* Admin Notices
81
*
82
- * @since 1.0.0
83
* @return void
84
*/
85
function admin_notices() {
86
87
if ( ! defined( 'ASTRA_THEME_SETTINGS' ) ) {
88
- ?>
89
- <div class="notice notice-error ast-active-notice is-dismissible">
90
- <p>
91
- <?php
92
- printf(
93
- /* translators: 1: theme.php file*/
94
- __( 'Astra Theme needs to be active for you to use currently installed "Astra Sites" plugin. <a href="%1$s">Install & Activate Now</a>', 'astra-sites' ),
95
- esc_url( admin_url( 'themes.php?theme=astra' ) )
96
- );
97
- ?>
98
- </p>
99
- </div>
100
- <?php
101
return;
102
}
103
@@ -190,44 +196,48 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
190
* @param string $hook Current hook name.
191
* @return void
192
*/
193
- public function admin_enqueue( $hook ) {
194
195
if ( 'appearance_page_astra-sites' !== $hook ) {
196
return;
197
}
198
199
wp_register_script(
200
- 'astra-sites-admin', ASTRA_SITES_URI . 'assets/js/admin.js', array(
201
'jquery',
202
'wp-util',
203
'updates',
204
), ASTRA_SITES_VER, true
205
);
206
207
- wp_register_style( 'astra-sites-admin', ASTRA_SITES_URI . 'assets/css/admin.css', ASTRA_SITES_VER, true );
208
209
wp_localize_script(
210
- 'astra-sites-admin', 'astraDemo', array(
211
- 'ajaxurl' => esc_url( admin_url( 'admin-ajax.php' ) ),
212
- 'siteURL' => site_url(),
213
- 'getProText' => __( 'Purchase', 'astra-sites' ),
214
- 'getProURL' => esc_url( 'https://wpastra.com/pro/?utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=' ),
215
- '_ajax_nonce' => wp_create_nonce( 'astra-sites' ),
216
- 'requiredPluginsCount' => 0,
217
- 'strings' => array(
218
- 'importFailedBtnSmall' => __( 'Error!', 'astra-sites' ),
219
- 'importFailedBtnLarge' => __( 'Error! Read Possibilities.', 'astra-sites' ),
220
- 'importFailedURL' => esc_url( 'https://wpastra.com/docs/?p=1314' ),
221
- 'viewSite' => __( 'Done! View Site', 'astra-sites' ),
222
- 'btnActivating' => __( 'Activating', 'astra-sites' ) . '&hellip;',
223
- 'btnActive' => __( 'Active', 'astra-sites' ),
224
- 'importDemo' => __( 'Import This Site', 'astra-sites' ),
225
- 'DescExpand' => __( 'Read more', 'astra-sites' ) . '&hellip;',
226
- 'DescCollapse' => __( 'Hide', 'astra-sites' ),
227
- 'responseError' => __( 'There was a problem receiving a response from server.', 'astra-sites' ),
228
- 'searchNoFound' => __( 'No Demos found, Try a different search.', 'astra-sites' ),
229
- 'importWarning' => __( "Executing Demo Import will make your site similar as ours. Please bear in mind -\n\n1. It is recommended to run import on a fresh WordPress installation.\n\n2. Importing site does not delete any pages or posts. However, it can overwrite your existing content.\n\n3. Copyrighted media will not be imported. Instead it will be replaced with placeholders.", 'astra-sites' ),
230
- ),
231
)
232
);
233
@@ -240,15 +250,18 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
240
*/
241
private function includes() {
242
243
- require_once ASTRA_SITES_DIR . 'admin/class-astra-sites-page.php';
244
- require_once ASTRA_SITES_DIR . 'classes/compatibility/class-astra-sites-compatibility-so-widgets.php';
245
246
// Load the Importers.
247
- require_once ASTRA_SITES_DIR . 'importers/class-astra-sites-helper.php';
248
- require_once ASTRA_SITES_DIR . 'importers/class-widgets-importer.php';
249
- require_once ASTRA_SITES_DIR . 'importers/class-astra-customizer-import.php';
250
- require_once ASTRA_SITES_DIR . 'importers/wxr-importer/class-astra-wxr-importer.php';
251
- require_once ASTRA_SITES_DIR . 'importers/class-astra-site-options-import.php';
252
}
253
254
/**
@@ -267,9 +280,13 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
267
);
268
}
269
270
$plugin_init = ( isset( $_POST['init'] ) ) ? esc_attr( $_POST['init'] ) : '';
271
$astra_site_options = ( isset( $_POST['options'] ) ) ? json_decode( stripslashes( $_POST['options'] ) ) : '';
272
- $astra_site_options = ( $astra_site_options );
273
274
$activate = activate_plugin( $plugin_init, '', false, true );
275
@@ -282,7 +299,7 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
282
);
283
}
284
285
- do_action( 'astra_sites_after_plugin_activation', $plugin_init, $astra_site_options );
286
287
wp_send_json_success(
288
array(
@@ -410,14 +427,23 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
410
*/
411
public function demo_ajax_import() {
412
413
if ( ! current_user_can( 'customize' ) ) {
414
- return;
415
}
416
417
$demo_api_uri = isset( $_POST['api_url'] ) ? esc_url( $_POST['api_url'] ) : '';
418
$this->import_demo( $demo_api_uri );
419
420
- wp_send_json_success( 'success' );
421
}
422
423
/**
@@ -469,6 +495,7 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
469
470
// Import Widgets data.
471
$this->import_widgets( $demo_data['astra-site-widgets-data'] );
472
}
473
474
/**
@@ -534,8 +561,8 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
534
* @param (Array) $saved_extensions Array of enabled extensions.
535
*/
536
private function import_astra_enabled_extension( $saved_extensions ) {
537
- if ( is_callable( 'AST_Admin_Helper::update_admin_settings_option' ) ) {
538
- AST_Admin_Helper::update_admin_settings_option( '_astra_ext_enabled_extensions', $saved_extensions );
539
}
540
}
541
@@ -547,8 +574,8 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
547
* @param (Array) $options_404 404 Extensions settings from the demo.
548
*/
549
private function import_custom_404_extension_options( $options_404 ) {
550
- if ( is_callable( 'AST_Admin_Helper::update_admin_settings_option' ) ) {
551
- AST_Admin_Helper::update_admin_settings_option( '_astra_ext_custom_404', $options_404 );
552
}
553
}
554
@@ -582,6 +609,17 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
582
)
583
);
584
585
$response = wp_remote_get( $demo_api_uri, $api_args );
586
587
if ( ! is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) === 200 ) {
@@ -648,8 +686,17 @@ if ( ! class_exists( 'Astra_Sites' ) ) :
648
$astra_demos[ $key ]['featured_image_url'] = isset( $demo['featured-image-url'] ) ? esc_url( $demo['featured-image-url'] ) : '';
649
$astra_demos[ $key ]['demo_api'] = isset( $demo['_links']['self'][0]['href'] ) ? esc_url( $demo['_links']['self'][0]['href'] ) : self::get_api_url( new stdClass() ) . $demo['id'];
650
$astra_demos[ $key ]['content'] = isset( $demo['content']['rendered'] ) ? strip_tags( $demo['content']['rendered'] ) : '';
651
- $astra_demos[ $key ]['required_plugins'] = isset( $demo['required-plugins'] ) ? json_encode( $demo['required-plugins'] ) : '';
652
$astra_demos[ $key ]['astra_site_options'] = isset( $demo['astra-site-options-data'] ) ? json_encode( $demo['astra-site-options-data'] ) : '';
653
654
$demo_status = isset( $demo['status'] ) ? sanitize_key( $demo['status'] ) : '';
655
$astra_demos[ $key ]['status'] = ( 'draft' === $demo_status ) ? 'beta' : $demo_status;
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
+
63
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue' ) );
64
add_action( 'wp_ajax_astra-import-demo', array( $this, 'demo_ajax_import' ) );
65
add_action( 'wp_ajax_astra-list-sites', array( $this, 'list_demos' ) );
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( 'plugins_loaded', array( $this, 'load_textdomain' ) );
69
+
70
+ }
71
+
72
+ /**
73
+ * Add Admin Notice.
74
+ */
75
+ function add_notice() {
76
+
77
+ Astra_Sites_Notices::add_notice(
78
+ array(
79
+ 'type' => 'error',
80
+ 'show_if' => ( ! defined( 'ASTRA_THEME_SETTINGS' ) ) ? true : false,
81
+ /* translators: 1: theme.php file*/
82
+ 'message' => sprintf( __( 'Astra Theme needs to be active for you to use currently installed "Astra Sites" plugin. <a href="%1$s">Install & Activate Now</a>', 'astra-sites' ), esc_url( admin_url( 'themes.php?theme=astra' ) ) ),
83
+ 'dismissible' => true,
84
+ 'dismissible-time' => MINUTE_IN_SECONDS,
85
+ )
86
+ );
87
}
88
89
/**
98
/**
99
* Admin Notices
100
*
101
+ * @since 1.0.5
102
* @return void
103
*/
104
function admin_notices() {
105
106
if ( ! defined( 'ASTRA_THEME_SETTINGS' ) ) {
107
return;
108
}
109
196
* @param string $hook Current hook name.
197
* @return void
198
*/
199
+ public function admin_enqueue( $hook = '' ) {
200
201
if ( 'appearance_page_astra-sites' !== $hook ) {
202
return;
203
}
204
205
wp_register_script(
206
+ 'astra-sites-admin', ASTRA_SITES_URI . 'inc/assets/js/admin.js', array(
207
'jquery',
208
'wp-util',
209
'updates',
210
), ASTRA_SITES_VER, true
211
);
212
213
+ wp_register_style( 'astra-sites-admin', ASTRA_SITES_URI . 'inc/assets/css/admin.css', ASTRA_SITES_VER, true );
214
215
wp_localize_script(
216
+ 'astra-sites-admin', 'astraDemo', apply_filters(
217
+ 'astra_sites_localize_vars', array(
218
+ 'ajaxurl' => esc_url( admin_url( 'admin-ajax.php' ) ),
219
+ 'siteURL' => site_url(),
220
+ 'getProText' => __( 'Purchase', 'astra-sites' ),
221
+ 'getProURL' => esc_url( 'https://wpastra.com/pro/?utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=' ),
222
+ 'getUpgradeText' => __( 'Upgrade', 'astra-sites' ),
223
+ 'getUpgradeURL' => esc_url( 'https://wpastra.com/pro/?utm_source=demo-import-panel&utm_campaign=astra-sites&utm_medium=' ),
224
+ '_ajax_nonce' => wp_create_nonce( 'astra-sites' ),
225
+ 'requiredPluginsCount' => 0,
226
+ 'strings' => array(
227
+ 'importFailedBtnSmall' => __( 'Error!', 'astra-sites' ),
228
+ 'importFailedBtnLarge' => __( 'Error! Read Possibilities.', 'astra-sites' ),
229
+ 'importFailedURL' => esc_url( 'https://wpastra.com/docs/?p=1314' ),
230
+ 'viewSite' => __( 'Done! View Site', 'astra-sites' ),
231
+ 'btnActivating' => __( 'Activating', 'astra-sites' ) . '&hellip;',
232
+ 'btnActive' => __( 'Active', 'astra-sites' ),
233
+ 'importDemo' => __( 'Import This Site', 'astra-sites' ),
234
+ 'DescExpand' => __( 'Read more', 'astra-sites' ) . '&hellip;',
235
+ 'DescCollapse' => __( 'Hide', 'astra-sites' ),
236
+ 'responseError' => __( 'There was a problem receiving a response from server.', 'astra-sites' ),
237
+ 'searchNoFound' => __( 'No Demos found, Try a different search.', 'astra-sites' ),
238
+ 'importWarning' => __( "Executing Demo Import will make your site similar as ours. Please bear in mind -\n\n1. It is recommended to run import on a fresh WordPress installation.\n\n2. Importing site does not delete any pages or posts. However, it can overwrite your existing content.\n\n3. Copyrighted media will not be imported. Instead it will be replaced with placeholders.", 'astra-sites' ),
239
+ ),
240
+ )
241
)
242
);
243
250
*/
251
private function includes() {
252
253
+ require_once ASTRA_SITES_DIR . 'inc/classes/class-astra-sites-notices.php';
254
+
255
+ require_once ASTRA_SITES_DIR . 'inc/admin/class-astra-sites-page.php';
256
+ require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/class-astra-sites-compatibility-so-widgets.php';
257
+ require_once ASTRA_SITES_DIR . 'inc/classes/compatibility/class-astra-sites-compatibility-astra-pro.php';
258
259
// Load the Importers.
260
+ require_once ASTRA_SITES_DIR . 'inc/importers/class-astra-sites-helper.php';
261
+ require_once ASTRA_SITES_DIR . 'inc/importers/class-widgets-importer.php';
262
+ require_once ASTRA_SITES_DIR . 'inc/importers/class-astra-customizer-import.php';
263
+ require_once ASTRA_SITES_DIR . 'inc/importers/wxr-importer/class-astra-wxr-importer.php';
264
+ require_once ASTRA_SITES_DIR . 'inc/importers/class-astra-site-options-import.php';
265
}
266
267
/**
280
);
281
}
282
283
+ $data = array();
284
$plugin_init = ( isset( $_POST['init'] ) ) ? esc_attr( $_POST['init'] ) : '';
285
$astra_site_options = ( isset( $_POST['options'] ) ) ? json_decode( stripslashes( $_POST['options'] ) ) : '';
286
+ $enabled_extensions = ( isset( $_POST['enabledExtensions'] ) ) ? json_decode( stripslashes( $_POST['enabledExtensions'] ) ) : '';
287
+
288
+ $data['astra_site_options'] = $astra_site_options;
289
+ $data['enabled_extensions'] = $enabled_extensions;
290
291
$activate = activate_plugin( $plugin_init, '', false, true );
292
299
);
300
}
301
302
+ do_action( 'astra_sites_after_plugin_activation', $plugin_init, $data );
303
304
wp_send_json_success(
305
array(
427
*/
428
public function demo_ajax_import() {
429
430
+ $report = array(
431
+ 'success' => false,
432
+ 'message' => '',
433
+ );
434
+
435
if ( ! current_user_can( 'customize' ) ) {
436
+ $report['message'] = __( 'You have not "customize" access to import the astra site.', 'astra-sites' );
437
+ wp_send_json( $report );
438
}
439
440
$demo_api_uri = isset( $_POST['api_url'] ) ? esc_url( $_POST['api_url'] ) : '';
441
$this->import_demo( $demo_api_uri );
442
443
+ $report['success'] = true;
444
+ $report['message'] = __( 'Demo Imported Successfully.', 'astra-sites' );
445
+ wp_send_json( $report );
446
+
447
}
448
449
/**
495
496
// Import Widgets data.
497
$this->import_widgets( $demo_data['astra-site-widgets-data'] );
498
+
499
}
500
501
/**
561
* @param (Array) $saved_extensions Array of enabled extensions.
562
*/
563
private function import_astra_enabled_extension( $saved_extensions ) {
564
+ if ( is_callable( 'Astra_Admin_Helper::update_admin_settings_option' ) ) {
565
+ Astra_Admin_Helper::update_admin_settings_option( '_astra_ext_enabled_extensions', $saved_extensions );
566
}
567
}
568
574
* @param (Array) $options_404 404 Extensions settings from the demo.
575
*/
576
private function import_custom_404_extension_options( $options_404 ) {
577
+ if ( is_callable( 'Astra_Admin_Helper::update_admin_settings_option' ) ) {
578
+ Astra_Admin_Helper::update_admin_settings_option( '_astra_ext_custom_404', $options_404 );
579
}
580
}
581
609
)
610
);
611
612
+ // Use this for premium demos.
613
+ $request_params = apply_filters(
614
+ 'astra_sites_api_params', array(
615
+ 'purchase_key' => '',
616
+ 'site_url' => '',
617
+ )
618
+ );
619
+
620
+ $demo_api_uri = add_query_arg( $request_params, $demo_api_uri );
621
+
622
+ // API Call.
623
$response = wp_remote_get( $demo_api_uri, $api_args );
624
625
if ( ! is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) === 200 ) {
686
$astra_demos[ $key ]['featured_image_url'] = isset( $demo['featured-image-url'] ) ? esc_url( $demo['featured-image-url'] ) : '';
687
$astra_demos[ $key ]['demo_api'] = isset( $demo['_links']['self'][0]['href'] ) ? esc_url( $demo['_links']['self'][0]['href'] ) : self::get_api_url( new stdClass() ) . $demo['id'];
688
$astra_demos[ $key ]['content'] = isset( $demo['content']['rendered'] ) ? strip_tags( $demo['content']['rendered'] ) : '';
689
+
690
+ if ( isset( $demo['required-plugins'] ) ) {
691
+ $required_plugins = $demo['required-plugins'];
692
+ if ( is_array( $required_plugins ) ) {
693
+ $astra_demos[ $key ]['required_plugins'] = json_encode( $required_plugins );
694
+ } else {
695
+ $astra_demos[ $key ]['required_plugins'] = $required_plugins;
696
+ }
697
+ }
698
$astra_demos[ $key ]['astra_site_options'] = isset( $demo['astra-site-options-data'] ) ? json_encode( $demo['astra-site-options-data'] ) : '';
699
+ $astra_demos[ $key ]['astra_enabled_extensions'] = isset( $demo['astra-enabled-extensions'] ) ? json_encode( $demo['astra-enabled-extensions'] ) : '';
700
701
$demo_status = isset( $demo['status'] ) ? sanitize_key( $demo['status'] ) : '';
702
$astra_demos[ $key ]['status'] = ( 'draft' === $demo_status ) ? 'beta' : $demo_status;
inc/classes/compatibility/class-astra-sites-compatibility-astra-pro.php ADDED
@@ -0,0 +1,86 @@
1
+ <?php
2
+ /**
3
+ * Astra Sites Compatibility for 'Astra Pro'
4
+ *
5
+ * @see https://wordpress.org/plugins/astra-pro/
6
+ *
7
+ * @package Astra Sites
8
+ * @since 1.0.0
9
+ */
10
+
11
+ if ( ! class_exists( 'Astra_Sites_Compatibility_Astra_Pro' ) ) :
12
+
13
+ /**
14
+ * Astra_Sites_Compatibility_Astra_Pro
15
+ *
16
+ * @since 1.0.0
17
+ */
18
+ class Astra_Sites_Compatibility_Astra_Pro {
19
+
20
+ /**
21
+ * Instance
22
+ *
23
+ * @access private
24
+ * @var object Class object.
25
+ * @since 1.0.0
26
+ */
27
+ private static $instance;
28
+
29
+ /**
30
+ * Initiator
31
+ *
32
+ * @since 1.0.0
33
+ * @return object initialized object of class.
34
+ */
35
+ public static function instance() {
36
+ if ( ! isset( self::$instance ) ) {
37
+ self::$instance = new self;
38
+ }
39
+ return self::$instance;
40
+ }
41
+
42
+ /**
43
+ * Constructor
44
+ *
45
+ * @since 1.0.0
46
+ */
47
+ public function __construct() {
48
+ add_action( 'astra_sites_after_plugin_activation', array( $this, 'astra_pro' ), 10, 2 );
49
+ }
50
+
51
+ /**
52
+ * Update Site Origin Active Widgets
53
+ *
54
+ * @since 1.0.0
55
+ *
56
+ * @param string $plugin_init Plugin init file.
57
+ * @param array $data Data.
58
+ * @return void
59
+ */
60
+ function astra_pro( $plugin_init = '', $data = array() ) {
61
+
62
+ if ( 'astra-addon/astra-addon.php' === $plugin_init ) {
63
+
64
+ $data = json_decode( json_encode( $data ), true );
65
+
66
+ if ( isset( $data['enabled_extensions'] ) ) {
67
+ $extensions = $data['enabled_extensions'];
68
+
69
+ if ( ! empty( $extensions ) ) {
70
+ if ( is_callable( 'Astra_Admin_Helper::update_admin_settings_option' ) ) {
71
+ Astra_Admin_Helper::update_admin_settings_option( '_astra_ext_enabled_extensions', $extensions );
72
+ }
73
+ }
74
+ }
75
+ }
76
+
77
+ }
78
+
79
+ }
80
+
81
+ /**
82
+ * Kicking this off by calling 'instance()' method
83
+ */
84
+ Astra_Sites_Compatibility_Astra_Pro::instance();
85
+
86
+ endif;
{classes → inc/classes}/compatibility/class-astra-sites-compatibility-so-widgets.php RENAMED
@@ -52,16 +52,25 @@ if ( ! class_exists( 'Astra_Sites_Compatibility_SO_Widgets' ) ) :
52
* Update Site Origin Active Widgets
53
*
54
* @since 1.0.0
55
* @param string $plugin_init Plugin init file.
56
- * @param array $astra_site_options Astra Site Options.
57
* @return void
58
*/
59
- function site_origin( $plugin_init = '', $astra_site_options = array() ) {
60
61
if ( 'so-widgets-bundle/so-widgets-bundle.php' === $plugin_init ) {
62
- if ( isset( $astra_site_options->siteorigin_widgets_active ) ) {
63
- update_option( 'siteorigin_widgets_active', $astra_site_options->siteorigin_widgets_active );
64
- wp_cache_delete( 'active_widgets', 'siteorigin_widgets' );
65
}
66
}
67
52
* Update Site Origin Active Widgets
53
*
54
* @since 1.0.0
55
+ *
56
* @param string $plugin_init Plugin init file.
57
+ * @param array $data Data.
58
* @return void
59
*/
60
+ function site_origin( $plugin_init = '', $data = array() ) {
61
62
if ( 'so-widgets-bundle/so-widgets-bundle.php' === $plugin_init ) {
63
+
64
+ $data = json_decode( json_encode( $data ), true );
65
+
66
+ if ( isset( $data['astra_site_options'] ) ) {
67
+
68
+ $widgets = ( isset( $data['astra_site_options']['siteorigin_widgets_active'] ) ) ? $data['astra_site_options']['siteorigin_widgets_active'] : '';
69
+
70
+ if ( ! empty( $widgets ) ) {
71
+ update_option( 'siteorigin_widgets_active', $widgets );
72
+ wp_cache_delete( 'active_widgets', 'siteorigin_widgets' );
73
+ }
74
}
75
}
76
{importers → inc/importers}/class-astra-customizer-import.php RENAMED
File without changes
{importers → inc/importers}/class-astra-site-options-import.php RENAMED
@@ -71,6 +71,15 @@ class Astra_Site_Options_Import {
71
'elementor_scheme_typography',
72
'elementor_space_between_widgets',
73
'elementor_stretched_section_container',
74
);
75
}
76
@@ -83,10 +92,15 @@ class Astra_Site_Options_Import {
83
*
84
* @param (Array) $options Array of site options to be imported from the demo.
85
*/
86
- public function import_options( $options ) {
87
88
foreach ( $options as $option_name => $option_value ) {
89
90
if ( null !== $option_value ) {
91
92
// Is option exist in defined array site_options()?
71
'elementor_scheme_typography',
72
'elementor_space_between_widgets',
73
'elementor_stretched_section_container',
74
+
75
+ '_fl_builder_enabled_icons',
76
+ '_fl_builder_enabled_modules',
77
+ '_fl_builder_post_types',
78
+ '_fl_builder_color_presets',
79
+ '_fl_builder_services',
80
+ '_fl_builder_settings',
81
+ '_fl_builder_user_access',
82
+ '_fl_builder_enabled_templates',
83
);
84
}
85
92
*
93
* @param (Array) $options Array of site options to be imported from the demo.
94
*/
95
+ public function import_options( $options = array() ) {
96
+
97
+ if ( ! isset( $options ) ) {
98
+ return;
99
+ }
100
101
foreach ( $options as $option_name => $option_value ) {
102
103
+ // Is option exist in defined array site_options()?
104
if ( null !== $option_value ) {
105
106
// Is option exist in defined array site_options()?
{importers → inc/importers}/class-astra-sites-helper.php RENAMED
@@ -77,9 +77,11 @@ if ( ! class_exists( 'Astra_Sites_Helper' ) ) :
77
foreach ( $widgets as $widget_key => $widget ) {
78
79
// Found slug in current menu list.
80
- $menu_id = array_search( $widget->nav_menu, $menu_locations );
81
- if ( ! empty( $menu_id ) ) {
82
- $all_sidebars->$widgets_key->$widget_key->nav_menu = $menu_id;
83
}
84
}
85
}
77
foreach ( $widgets as $widget_key => $widget ) {
78
79
// Found slug in current menu list.
80
+ if ( isset( $widget->nav_menu ) ) {
81
+ $menu_id = array_search( $widget->nav_menu, $menu_locations );
82
+ if ( ! empty( $menu_id ) ) {
83
+ $all_sidebars->$widgets_key->$widget_key->nav_menu = $menu_id;
84
+ }
85
}
86
}
87
}
{importers → inc/importers}/class-widgets-importer.php RENAMED
File without changes
{importers → inc/importers}/wxr-importer/class-astra-wxr-importer.php RENAMED
@@ -85,8 +85,8 @@ class Astra_WXR_Importer {
85
defined( 'WP_LOAD_IMPORTERS' ) || define( 'WP_LOAD_IMPORTERS', true );
86
require ABSPATH . '/wp-admin/includes/class-wp-importer.php';
87
}
88
- require_once ASTRA_SITES_DIR . 'importers/wxr-importer/class-wxr-importer.php';
89
- require_once ASTRA_SITES_DIR . 'importers/wxr-importer/class-logger.php';
90
}
91
92
/**
85
defined( 'WP_LOAD_IMPORTERS' ) || define( 'WP_LOAD_IMPORTERS', true );
86
require ABSPATH . '/wp-admin/includes/class-wp-importer.php';
87
}
88
+ require_once ASTRA_SITES_DIR . 'inc/importers/wxr-importer/class-wxr-importer.php';
89
+ require_once ASTRA_SITES_DIR . 'inc/importers/wxr-importer/class-logger.php';
90
}
91
92
/**
{importers → inc/importers}/wxr-importer/class-logger.php RENAMED
File without changes
{importers → inc/importers}/wxr-importer/class-wxr-importer.php RENAMED
File without changes
languages/astra-sites.pot CHANGED
@@ -2,9 +2,9 @@
2
# This file is distributed under the same license as the Astra Free Sites package.
3
msgid ""
4
msgstr ""
5
- "Project-Id-Version: Astra Free Sites 1.0.7\n"
6
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/astra-sites\n"
7
- "POT-Creation-Date: 2017-08-31 13:54:23+00:00\n"
8
"MIME-Version: 1.0\n"
9
"Content-Type: text/plain; charset=utf-8\n"
10
"Content-Transfer-Encoding: 8bit\n"
@@ -24,83 +24,83 @@ msgstr ""
24
"X-Textdomain-Support: yes\n"
25
"X-Generator: grunt-wp-i18n1.0.0\n"
26
27
- #: admin/class-astra-sites-page.php:85
28
msgid "Astra Sites"
29
msgstr ""
30
31
- #: admin/class-astra-sites-page.php:158
32
msgid "Settings saved successfully."
33
msgstr ""
34
35
- #: admin/view-astra-sites.php:28
36
msgid "All"
37
msgstr ""
38
39
- #: admin/view-astra-sites.php:42
40
msgid "Search Sites"
41
msgstr ""
42
43
- #: admin/view-astra-sites.php:43
44
msgid "Search Sites..."
45
msgstr ""
46
47
- #: admin/view-astra-sites.php:87
48
msgid "Details &amp; Preview"
49
msgstr ""
50
51
- #: admin/view-astra-sites.php:93 admin/view-astra-sites.php:161
52
msgid "Preview"
53
msgstr ""
54
55
- #: admin/view-astra-sites.php:119
56
msgid "Close"
57
msgstr ""
58
59
- #: admin/view-astra-sites.php:120
60
msgid "Previous"
61
msgstr ""
62
63
- #: admin/view-astra-sites.php:121
64
msgid "Next"
65
msgstr ""
66
67
- #: admin/view-astra-sites.php:122 admin/view-astra-sites.php:150
68
msgid "Install Plugins"
69
msgstr ""
70
71
- #: admin/view-astra-sites.php:138 classes/class-astra-sites.php:225
72
msgid "Read more"
73
msgstr ""
74
75
- #: admin/view-astra-sites.php:141
76
msgid "Required Plugins"
77
msgstr ""
78
79
- #: admin/view-astra-sites.php:156
80
msgid "Collapse"
81
msgstr ""
82
83
- #: admin/view-astra-sites.php:171
84
#. translators: %1$s & %2$s are a Demo API URL
85
msgid ""
86
"<p> It seems the demo data server, <i><a href=\"%1$s\">%2$s</a></i> is "
87
"unreachable from your site.</p>"
88
msgstr ""
89
90
- #: admin/view-astra-sites.php:173
91
msgid ""
92
"<p class=\"left-margin\"> 1. Sometimes, simple page reload fixes any "
93
"temporary issues. No kidding!</p>"
94
msgstr ""
95
96
- #: admin/view-astra-sites.php:175
97
msgid ""
98
"<p class=\"left-margin\"> 2. If that does not work, you will need to talk "
99
"to your server administrator and check if demo server is being blocked by "
100
"the firewall!</p>"
101
msgstr ""
102
103
- #: admin/view-astra-sites.php:178
104
#. translators: %1$s is a support link
105
msgid ""
106
"<p>If that does not help, please open up a <a href=\"%1$s\" "
@@ -108,58 +108,62 @@ msgid ""
108
"for you.</p>"
109
msgstr ""
110
111
- #: classes/class-astra-sites.php:94
112
#. translators: 1: theme.php file
113
msgid ""
114
"Astra Theme needs to be active for you to use currently installed \"Astra "
115
"Sites\" plugin. <a href=\"%1$s\">Install & Activate Now</a>"
116
msgstr ""
117
118
- #: classes/class-astra-sites.php:115
119
msgid "See Library"
120
msgstr ""
121
122
- #: classes/class-astra-sites.php:213
123
msgid "Purchase"
124
msgstr ""
125
126
- #: classes/class-astra-sites.php:218
127
msgid "Error!"
128
msgstr ""
129
130
- #: classes/class-astra-sites.php:219
131
msgid "Error! Read Possibilities."
132
msgstr ""
133
134
- #: classes/class-astra-sites.php:221
135
msgid "Done! View Site"
136
msgstr ""
137
138
- #: classes/class-astra-sites.php:222
139
msgid "Activating"
140
msgstr ""
141
142
- #: classes/class-astra-sites.php:223
143
msgid "Active"
144
msgstr ""
145
146
- #: classes/class-astra-sites.php:224
147
msgid "Import This Site"
148
msgstr ""
149
150
- #: classes/class-astra-sites.php:226
151
msgid "Hide"
152
msgstr ""
153
154
- #: classes/class-astra-sites.php:227
155
msgid "There was a problem receiving a response from server."
156
msgstr ""
157
158
- #: classes/class-astra-sites.php:228
159
msgid "No Demos found, Try a different search."
160
msgstr ""
161
162
- #: classes/class-astra-sites.php:229
163
msgid ""
164
"Executing Demo Import will make your site similar as ours. Please bear in "
165
"mind -\n"
@@ -173,186 +177,194 @@ msgid ""
173
"placeholders."
174
msgstr ""
175
176
- #: classes/class-astra-sites.php:265
177
msgid "No plugin specified"
178
msgstr ""
179
180
- #: classes/class-astra-sites.php:290
181
msgid "Plugin Successfully Activated"
182
msgstr ""
183
184
- #: importers/class-widgets-importer.php:83
185
msgid "Import data could not be read. Please try a different file."
186
msgstr ""
187
188
- #: importers/class-widgets-importer.php:127
189
msgid "Widget area does not exist in theme (using Inactive)"
190
msgstr ""
191
192
- #: importers/class-widgets-importer.php:149
193
msgid "Site does not support widget"
194
msgstr ""
195
196
- #: importers/class-widgets-importer.php:185
197
msgid "Widget already exists"
198
msgstr ""
199
200
- #: importers/class-widgets-importer.php:254
201
msgid "Imported"
202
msgstr ""
203
204
- #: importers/class-widgets-importer.php:257
205
msgid "Imported to Inactive"
206
msgstr ""
207
208
- #: importers/class-widgets-importer.php:263
209
msgid "No Title"
210
msgstr ""
211
212
- #: importers/wxr-importer/class-wxr-importer.php:130
213
msgid "Could not open the file for parsing"
214
msgstr ""
215
216
- #: importers/wxr-importer/class-wxr-importer.php:166
217
- #: importers/wxr-importer/class-wxr-importer.php:282
218
- #: importers/wxr-importer/class-wxr-importer.php:355
219
msgid ""
220
"This WXR file (version %1$s) is newer than the importer (version %2$s) and "
221
"may not be supported. Please consider updating."
222
msgstr ""
223
224
- #: importers/wxr-importer/class-wxr-importer.php:503
225
msgid "The file does not exist, please try again."
226
msgstr ""
227
228
- #: importers/wxr-importer/class-wxr-importer.php:563
229
msgid "Invalid author mapping"
230
msgstr ""
231
232
- #: importers/wxr-importer/class-wxr-importer.php:664
233
msgid "Cannot import auto-draft posts"
234
msgstr ""
235
236
- #: importers/wxr-importer/class-wxr-importer.php:752
237
msgid "Failed to import \"%1$s\": Invalid post type %2$s"
238
msgstr ""
239
240
- #: importers/wxr-importer/class-wxr-importer.php:762
241
msgid "%1$s \"%2$s\" already exists."
242
msgstr ""
243
244
- #: importers/wxr-importer/class-wxr-importer.php:856
245
msgid "Skipping attachment \"%s\", fetching attachments disabled"
246
msgstr ""
247
248
- #: importers/wxr-importer/class-wxr-importer.php:877
249
msgid "Failed to import \"%1$s\" (%2$s)"
250
msgstr ""
251
252
- #: importers/wxr-importer/class-wxr-importer.php:909
253
- #: importers/wxr-importer/class-wxr-importer.php:1754
254
msgid "Imported \"%1$s\" (%2$s)"
255
msgstr ""
256
257
- #: importers/wxr-importer/class-wxr-importer.php:914
258
msgid "Post %1$d remapped to %2$d"
259
msgstr ""
260
261
- #: importers/wxr-importer/class-wxr-importer.php:1061
262
msgid "Invalid file type"
263
msgstr ""
264
265
- #: importers/wxr-importer/class-wxr-importer.php:1559
266
msgid "Failed to import user \"%s\""
267
msgstr ""
268
269
- #: importers/wxr-importer/class-wxr-importer.php:1580
270
msgid "Imported user \"%s\""
271
msgstr ""
272
273
- #: importers/wxr-importer/class-wxr-importer.php:1584
274
msgid "User %1$d remapped to %2$d"
275
msgstr ""
276
277
- #: importers/wxr-importer/class-wxr-importer.php:1730
278
msgid "Failed to import %1$s %2$s"
279
msgstr ""
280
281
- #: importers/wxr-importer/class-wxr-importer.php:1759
282
msgid "Term %1$d remapped to %2$d"
283
msgstr ""
284
285
- #: importers/wxr-importer/class-wxr-importer.php:1812
286
msgid "Remote server returned %1$d %2$s for %3$s"
287
msgstr ""
288
289
- #: importers/wxr-importer/class-wxr-importer.php:1825
290
msgid "Remote file is incorrect size"
291
msgstr ""
292
293
- #: importers/wxr-importer/class-wxr-importer.php:1830
294
msgid "Zero size file downloaded"
295
msgstr ""
296
297
- #: importers/wxr-importer/class-wxr-importer.php:1836
298
msgid "Remote file is too large, limit is %s"
299
msgstr ""
300
301
- #: importers/wxr-importer/class-wxr-importer.php:1858
302
msgid "Running post-processing for post %d"
303
msgstr ""
304
305
- #: importers/wxr-importer/class-wxr-importer.php:1871
306
msgid "Could not find the post parent for \"%1$s\" (post #%2$d)"
307
msgstr ""
308
309
- #: importers/wxr-importer/class-wxr-importer.php:1876
310
msgid "Post %1$d was imported with parent %2$d, but could not be found"
311
msgstr ""
312
313
- #: importers/wxr-importer/class-wxr-importer.php:1890
314
msgid "Could not find the author for \"%1$s\" (post #%2$d)"
315
msgstr ""
316
317
- #: importers/wxr-importer/class-wxr-importer.php:1895
318
msgid "Post %1$d was imported with author \"%2$s\", but could not be found"
319
msgstr ""
320
321
- #: importers/wxr-importer/class-wxr-importer.php:1921
322
msgid "Post %d was marked for post-processing, but none was required."
323
msgstr ""
324
325
- #: importers/wxr-importer/class-wxr-importer.php:1932
326
msgid "Could not update \"%1$s\" (post #%2$d) with mapped data"
327
msgstr ""
328
329
- #: importers/wxr-importer/class-wxr-importer.php:1977
330
msgid "Could not find the menu object for \"%1$s\" (post #%2$d)"
331
msgstr ""
332
333
- #: importers/wxr-importer/class-wxr-importer.php:1982
334
msgid ""
335
"Post %1$d was imported with object \"%2$d\" of type \"%3$s\", but could not "
336
"be found"
337
msgstr ""
338
339
- #: importers/wxr-importer/class-wxr-importer.php:2004
340
msgid "Could not find the comment parent for comment #%d"
341
msgstr ""
342
343
- #: importers/wxr-importer/class-wxr-importer.php:2008
344
msgid "Comment %1$d was imported with parent %2$d, but could not be found"
345
msgstr ""
346
347
- #: importers/wxr-importer/class-wxr-importer.php:2022
348
msgid "Could not find the author for comment #%d"
349
msgstr ""
350
351
- #: importers/wxr-importer/class-wxr-importer.php:2026
352
msgid "Comment %1$d was imported with author %2$d, but could not be found"
353
msgstr ""
354
355
- #: importers/wxr-importer/class-wxr-importer.php:2043
356
msgid "Could not update comment #%d with mapped data"
357
msgstr ""
358
2
# This file is distributed under the same license as the Astra Free Sites package.
3
msgid ""
4
msgstr ""
5
+ "Project-Id-Version: Astra Free Sites 1.0.8\n"
6
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/astra-sites\n"
7
+ "POT-Creation-Date: 2017-09-05 14:54:17+00:00\n"
8
"MIME-Version: 1.0\n"
9
"Content-Type: text/plain; charset=utf-8\n"
10
"Content-Transfer-Encoding: 8bit\n"
24
"X-Textdomain-Support: yes\n"
25
"X-Generator: grunt-wp-i18n1.0.0\n"
26
27
+ #: inc/admin/class-astra-sites-page.php:85
28
msgid "Astra Sites"
29
msgstr ""
30
31
+ #: inc/admin/class-astra-sites-page.php:158
32
msgid "Settings saved successfully."
33
msgstr ""
34
35
+ #: inc/admin/view-astra-sites.php:27
36
msgid "All"
37
msgstr ""
38
39
+ #: inc/admin/view-astra-sites.php:41
40
msgid "Search Sites"
41
msgstr ""
42
43
+ #: inc/admin/view-astra-sites.php:42
44
msgid "Search Sites..."
45
msgstr ""
46
47
+ #: inc/admin/view-astra-sites.php:91
48
msgid "Details &amp; Preview"
49
msgstr ""
50
51
+ #: inc/admin/view-astra-sites.php:97 inc/admin/view-astra-sites.php:166
52
msgid "Preview"
53
msgstr ""
54
55
+ #: inc/admin/view-astra-sites.php:124
56
msgid "Close"
57
msgstr ""
58
59
+ #: inc/admin/view-astra-sites.php:125
60
msgid "Previous"
61
msgstr ""
62
63
+ #: inc/admin/view-astra-sites.php:126
64
msgid "Next"
65
msgstr ""
66
67
+ #: inc/admin/view-astra-sites.php:127 inc/admin/view-astra-sites.php:155
68
msgid "Install Plugins"
69
msgstr ""
70
71
+ #: inc/admin/view-astra-sites.php:143 inc/classes/class-astra-sites.php:238
72
msgid "Read more"
73
msgstr ""
74
75
+ #: inc/admin/view-astra-sites.php:146
76
msgid "Required Plugins"
77
msgstr ""
78
79
+ #: inc/admin/view-astra-sites.php:161
80
msgid "Collapse"
81
msgstr ""
82
83
+ #: inc/admin/view-astra-sites.php:176
84
#. translators: %1$s & %2$s are a Demo API URL
85
msgid ""
86
"<p> It seems the demo data server, <i><a href=\"%1$s\">%2$s</a></i> is "
87
"unreachable from your site.</p>"
88
msgstr ""
89
90
+ #: inc/admin/view-astra-sites.php:178
91
msgid ""
92
"<p class=\"left-margin\"> 1. Sometimes, simple page reload fixes any "
93
"temporary issues. No kidding!</p>"
94
msgstr ""
95
96
+ #: inc/admin/view-astra-sites.php:180
97
msgid ""
98
"<p class=\"left-margin\"> 2. If that does not work, you will need to talk "
99
"to your server administrator and check if demo server is being blocked by "
100
"the firewall!</p>"
101
msgstr ""
102
103
+ #: inc/admin/view-astra-sites.php:183
104
#. translators: %1$s is a support link
105
msgid ""
106
"<p>If that does not help, please open up a <a href=\"%1$s\" "
108
"for you.</p>"
109
msgstr ""
110
111
+ #: inc/classes/class-astra-sites.php:82
112
#. translators: 1: theme.php file
113
msgid ""
114
"Astra Theme needs to be active for you to use currently installed \"Astra "
115
"Sites\" plugin. <a href=\"%1$s\">Install & Activate Now</a>"
116
msgstr ""
117
118
+ #: inc/classes/class-astra-sites.php:125
119
msgid "See Library"
120
msgstr ""
121
122
+ #: inc/classes/class-astra-sites.php:224
123
msgid "Purchase"
124
msgstr ""
125
126
+ #: inc/classes/class-astra-sites.php:226
127
+ msgid "Upgrade"
128
+ msgstr ""
129
+
130
+ #: inc/classes/class-astra-sites.php:231
131
msgid "Error!"
132
msgstr ""
133
134
+ #: inc/classes/class-astra-sites.php:232
135
msgid "Error! Read Possibilities."
136
msgstr ""
137
138
+ #: inc/classes/class-astra-sites.php:234
139
msgid "Done! View Site"
140
msgstr ""
141
142
+ #: inc/classes/class-astra-sites.php:235
143
msgid "Activating"
144
msgstr ""
145
146
+ #: inc/classes/class-astra-sites.php:236
147
msgid "Active"
148
msgstr ""
149
150
+ #: inc/classes/class-astra-sites.php:237
151
msgid "Import This Site"
152
msgstr ""
153
154
+ #: inc/classes/class-astra-sites.php:239
155
msgid "Hide"
156
msgstr ""
157
158
+ #: inc/classes/class-astra-sites.php:240
159
msgid "There was a problem receiving a response from server."
160
msgstr ""
161
162
+ #: inc/classes/class-astra-sites.php:241
163
msgid "No Demos found, Try a different search."
164
msgstr ""
165
166
+ #: inc/classes/class-astra-sites.php:242
167
msgid ""
168
"Executing Demo Import will make your site similar as ours. Please bear in "
169
"mind -\n"
177
"placeholders."
178
msgstr ""
179
180
+ #: inc/classes/class-astra-sites.php:282
181
msgid "No plugin specified"
182
msgstr ""
183
184
+ #: inc/classes/class-astra-sites.php:311
185
msgid "Plugin Successfully Activated"
186
msgstr ""
187
188
+ #: inc/classes/class-astra-sites.php:440
189
+ msgid "You have not \"customize\" access to import the astra site."
190
+ msgstr ""
191
+
192
+ #: inc/classes/class-astra-sites.php:448
193
+ msgid "Demo Imported Successfully."
194
+ msgstr ""
195
+
196
+ #: inc/importers/class-widgets-importer.php:83
197
msgid "Import data could not be read. Please try a different file."
198
msgstr ""
199
200
+ #: inc/importers/class-widgets-importer.php:127
201
msgid "Widget area does not exist in theme (using Inactive)"
202
msgstr ""
203
204
+ #: inc/importers/class-widgets-importer.php:149
205
msgid "Site does not support widget"
206
msgstr ""
207
208
+ #: inc/importers/class-widgets-importer.php:185
209
msgid "Widget already exists"
210
msgstr ""
211
212
+ #: inc/importers/class-widgets-importer.php:254
213
msgid "Imported"
214
msgstr ""
215
216
+ #: inc/importers/class-widgets-importer.php:257
217
msgid "Imported to Inactive"
218
msgstr ""
219
220
+ #: inc/importers/class-widgets-importer.php:263
221
msgid "No Title"
222
msgstr ""
223
224
+ #: inc/importers/wxr-importer/class-wxr-importer.php:130
225
msgid "Could not open the file for parsing"
226
msgstr ""
227
228
+ #: inc/importers/wxr-importer/class-wxr-importer.php:166
229
+ #: inc/importers/wxr-importer/class-wxr-importer.php:282
230
+ #: inc/importers/wxr-importer/class-wxr-importer.php:355
231
msgid ""
232
"This WXR file (version %1$s) is newer than the importer (version %2$s) and "
233
"may not be supported. Please consider updating."
234
msgstr ""
235
236
+ #: inc/importers/wxr-importer/class-wxr-importer.php:503
237
msgid "The file does not exist, please try again."
238
msgstr ""
239
240
+ #: inc/importers/wxr-importer/class-wxr-importer.php:563
241
msgid "Invalid author mapping"
242
msgstr ""
243
244
+ #: inc/importers/wxr-importer/class-wxr-importer.php:664
245
msgid "Cannot import auto-draft posts"
246
msgstr ""
247
248
+ #: inc/importers/wxr-importer/class-wxr-importer.php:752
249
msgid "Failed to import \"%1$s\": Invalid post type %2$s"
250
msgstr ""
251
252
+ #: inc/importers/wxr-importer/class-wxr-importer.php:762
253
msgid "%1$s \"%2$s\" already exists."
254
msgstr ""
255
256
+ #: inc/importers/wxr-importer/class-wxr-importer.php:856
257
msgid "Skipping attachment \"%s\", fetching attachments disabled"
258
msgstr ""
259
260
+ #: inc/importers/wxr-importer/class-wxr-importer.php:877
261
msgid "Failed to import \"%1$s\" (%2$s)"
262
msgstr ""
263
264
+ #: inc/importers/wxr-importer/class-wxr-importer.php:909
265
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1754
266
msgid "Imported \"%1$s\" (%2$s)"
267
msgstr ""
268
269
+ #: inc/importers/wxr-importer/class-wxr-importer.php:914
270
msgid "Post %1$d remapped to %2$d"
271
msgstr ""
272
273
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1061
274
msgid "Invalid file type"
275
msgstr ""
276
277
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1559
278
msgid "Failed to import user \"%s\""
279
msgstr ""
280
281
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1580
282
msgid "Imported user \"%s\""
283
msgstr ""
284
285
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1584
286
msgid "User %1$d remapped to %2$d"
287
msgstr ""
288
289
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1730
290
msgid "Failed to import %1$s %2$s"
291
msgstr ""
292
293
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1759
294
msgid "Term %1$d remapped to %2$d"
295
msgstr ""
296
297
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1812
298
msgid "Remote server returned %1$d %2$s for %3$s"
299
msgstr ""
300
301
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1825
302
msgid "Remote file is incorrect size"
303
msgstr ""
304
305
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1830
306
msgid "Zero size file downloaded"
307
msgstr ""
308
309
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1836
310
msgid "Remote file is too large, limit is %s"
311
msgstr ""
312
313
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1858
314
msgid "Running post-processing for post %d"
315
msgstr ""
316
317
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1871
318
msgid "Could not find the post parent for \"%1$s\" (post #%2$d)"
319
msgstr ""
320
321
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1876
322
msgid "Post %1$d was imported with parent %2$d, but could not be found"
323
msgstr ""
324
325
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1890
326
msgid "Could not find the author for \"%1$s\" (post #%2$d)"
327
msgstr ""
328
329
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1895
330
msgid "Post %1$d was imported with author \"%2$s\", but could not be found"
331
msgstr ""
332
333
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1921
334
msgid "Post %d was marked for post-processing, but none was required."
335
msgstr ""
336
337
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1932
338
msgid "Could not update \"%1$s\" (post #%2$d) with mapped data"
339
msgstr ""
340
341
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1977
342
msgid "Could not find the menu object for \"%1$s\" (post #%2$d)"
343
msgstr ""
344
345
+ #: inc/importers/wxr-importer/class-wxr-importer.php:1982
346
msgid ""
347
"Post %1$d was imported with object \"%2$d\" of type \"%3$s\", but could not "
348
"be found"
349
msgstr ""
350
351
+ #: inc/importers/wxr-importer/class-wxr-importer.php:2004
352
msgid "Could not find the comment parent for comment #%d"
353
msgstr ""
354
355
+ #: inc/importers/wxr-importer/class-wxr-importer.php:2008
356
msgid "Comment %1$d was imported with parent %2$d, but could not be found"
357
msgstr ""
358
359
+ #: inc/importers/wxr-importer/class-wxr-importer.php:2022
360
msgid "Could not find the author for comment #%d"
361
msgstr ""
362
363
+ #: inc/importers/wxr-importer/class-wxr-importer.php:2026
364
msgid "Comment %1$d was imported with author %2$d, but could not be found"
365
msgstr ""
366
367
+ #: inc/importers/wxr-importer/class-wxr-importer.php:2043
368
msgid "Could not update comment #%d with mapped data"
369
msgstr ""
370
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://wpastra.com/pro/
4
Tags: demo, theme demos, one click import
5
Requires at least: 4.4
6
Tested up to: 4.8.1
7
- Stable tag: 1.0.7
8
License: GPLv2 or later
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
@@ -46,6 +46,11 @@ https://sites.wpastra.com/law-free/
46
47
== Changelog ==
48
49
v1.0.7 - 1-Sept-2017
50
* Fix: Custom Menu widget not setting imported widget.
51
4
Tags: demo, theme demos, one click import
5
Requires at least: 4.4
6
Tested up to: 4.8.1
7
+ Stable tag: 1.0.8
8
License: GPLv2 or later
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
46
47
== Changelog ==
48
49
+ v1.0.8 - 6-Sept-2017
50
+ * Fix: Beaver Builder option import.
51
+ * Enhancement: Disabled dismiss-able notice visible once for each user.
52
+ * Enhancement: Showing error message for for user who have not `manage_plugins` capability.
53
+
54
v1.0.7 - 1-Sept-2017
55
* Fix: Custom Menu widget not setting imported widget.
56