summaryrefslogtreecommitdiff
path: root/inc/core/builder/class-astra-builder-admin.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/core/builder/class-astra-builder-admin.php')
-rw-r--r--inc/core/builder/class-astra-builder-admin.php155
1 files changed, 155 insertions, 0 deletions
diff --git a/inc/core/builder/class-astra-builder-admin.php b/inc/core/builder/class-astra-builder-admin.php
new file mode 100644
index 0000000..94df3e4
--- /dev/null
+++ b/inc/core/builder/class-astra-builder-admin.php
@@ -0,0 +1,155 @@
+<?php
+/**
+ * Astra Builder Admin Loader.
+ *
+ * @package astra-builder
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Class Astra_Builder_Admin.
+ */
+final class Astra_Builder_Admin {
+
+ /**
+ * Member Variable
+ *
+ * @var instance
+ */
+ private static $instance = null;
+
+ /**
+ * Initiator
+ */
+ public static function get_instance() {
+
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new self();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Constructor
+ */
+ public function __construct() {
+ add_action( 'wp_ajax_ast-migrate-to-builder', array( $this, 'migrate_to_builder' ) );
+ add_action( 'astra_welcome_page_content', array( $this, 'migrate_to_builder_box' ), 5 );
+ }
+
+ /**
+ * Migrate to New Header Builder
+ *
+ * @since 3.0.0
+ * @return void
+ */
+ public function migrate_to_builder_box() {
+ if ( Astra_Builder_Helper::is_new_user() ) {
+ add_filter( 'astra_quick_settings', array( $this, 'update_customizer_header_footer_link' ) );
+ return;
+ }
+
+ $status = astra_get_option( 'is-header-footer-builder', false );
+ $astra_theme_title = Astra_Admin_Settings::$page_title;
+
+ $label = ( false !== $status ) ? __( 'Use Old Header/Footer', 'astra' ) : __( 'Use New Header/Footer Builder', 'astra' );
+
+ ?>
+ <div class="postbox">
+ <h2 class="hndle ast-normal-cursor ast-addon-heading ast-flex">
+ <span>
+ <?php
+ printf(
+ /* translators: %1$s: Theme name. */
+ esc_html__( '%1$s Header/Footer Builder', 'astra' ),
+ esc_html( $astra_theme_title )
+ );
+ ?>
+ </span>
+ </h2>
+ <div class="inside">
+ <div>
+ <p>
+ <?php
+ printf(
+ /* translators: %1$s: Theme name. */
+ esc_html__( '%1$s Header/Footer Builder is a new and powerful way to design header and footer for your website. With this, you can give a creative look to your header/footer with less effort.', 'astra' ),
+ esc_html( $astra_theme_title )
+ );
+ ?>
+ </p>
+ <p>
+ <?php
+ printf(
+ /* translators: %1$s: Theme name. */
+ esc_html__( 'Activating this feature will add advanced options to %1$s customizer where you can create awesome new designs.', 'astra' ),
+ esc_html( $astra_theme_title )
+ );
+ ?>
+ </p>
+ <p><?php esc_html_e( 'Note: The header/footer builder will replace the existing header/footer settings in the customizer. This might make your header/footer look a bit different. You can configure header/footer builder settings from customizer to give it a nice look. You can always come back here and switch to your old header/footer.', 'astra' ); ?></p>
+ <div class="ast-actions-wrap" style="justify-content: space-between;display: flex;align-items: center;" >
+ <a href="<?php echo esc_url( admin_url( '/customize.php' ) ); ?>" class="ast-go-to-customizer"><?php esc_html_e( 'Go to Customizer', 'astra' ); ?></a>
+ <div class="ast-actions" style="display: inline-flex;">
+ <button href="#" class="button button-primary ast-builder-migrate" style="margin-right:10px;" data-value="<?php echo ( $status ) ? 0 : 1; ?>"><?php echo esc_html( $label ); ?></button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <?php
+ if ( $status ) {
+ add_filter( 'astra_quick_settings', array( $this, 'update_customizer_header_footer_link' ) );
+ }
+ }
+
+ /**
+ * Update Customizer Header Footer quick links from options page.
+ *
+ * @since 3.0.0
+ * @param array $args default Header Footer quick links.
+ * @return array updated Header Footer quick links.
+ */
+ public function update_customizer_header_footer_link( $args ) {
+ if ( isset( $args['header']['quick_url'] ) ) {
+ $args['header']['quick_url'] = admin_url( 'customize.php?autofocus[panel]=panel-header-builder-group' );
+ }
+ if ( isset( $args['footer']['quick_url'] ) ) {
+ $args['footer']['quick_url'] = admin_url( 'customize.php?autofocus[panel]=panel-footer-builder-group' );
+ }
+ return $args;
+ }
+
+ /**
+ * Migrate to New Header Builder
+ */
+ public function migrate_to_builder() {
+
+ check_ajax_referer( 'astra-builder-module-nonce', 'nonce' );
+
+ if ( ! current_user_can( 'manage_options' ) ) {
+ wp_send_json_error( __( 'You don\'t have the access', 'astra' ) );
+ }
+
+ $migrate = isset( $_POST['value'] ) ? sanitize_key( $_POST['value'] ) : '';
+ $migrate = ( $migrate ) ? true : false;
+ $migration_flag = astra_get_option( 'v3-option-migration', false );
+ astra_update_option( 'is-header-footer-builder', $migrate );
+ if ( $migrate && false === $migration_flag ) {
+ astra_header_builder_migration();
+ }
+ wp_send_json_success();
+ }
+
+}
+
+/**
+ * Prepare if class 'Astra_Builder_Admin' exist.
+ * Kicking this off by calling 'get_instance()' method
+ */
+Astra_Builder_Admin::get_instance();