diff options
Diffstat (limited to 'inc/theme-update/class-astra-pb-compatibility.php')
-rw-r--r-- | inc/theme-update/class-astra-pb-compatibility.php | 372 |
1 files changed, 186 insertions, 186 deletions
diff --git a/inc/theme-update/class-astra-pb-compatibility.php b/inc/theme-update/class-astra-pb-compatibility.php index 1b707d5..b2df80f 100644 --- a/inc/theme-update/class-astra-pb-compatibility.php +++ b/inc/theme-update/class-astra-pb-compatibility.php @@ -1,186 +1,186 @@ -<?php
-/**
- * Theme Update
- *
- * @package Astra
- * @author Astra
- * @copyright Copyright (c) 2020, Astra
- * @link https://wpastra.com/
- * @since Astra 1.0.13
- */
-
-if ( ! defined( 'ABSPATH' ) ) {
- exit; // Exit if accessed directly.
-}
-
-if ( ! class_exists( 'Astra_PB_Compatibility' ) ) {
-
- /**
- * Astra_PB_Compatibility initial setup
- *
- * @since 1.0.13
- */
- class Astra_PB_Compatibility {
-
- /**
- * Class instance.
- *
- * @access private
- * @var $instance Class instance.
- */
- private static $instance;
-
- /**
- * Initiator
- */
- public static function get_instance() {
- if ( ! isset( self::$instance ) ) {
- self::$instance = new self();
- }
- return self::$instance;
- }
-
- /**
- * Constructor
- */
- public function __construct() {
- add_action( 'init', array( $this, 'maybe_run_pb_compatibility' ) );
- }
-
- /**
- * Page builder compatibility database migration was added in v1.0.14, This was 2 Years ago as of right now.
- * After version 1.8.7 we are stopping from running this to avoid execution of unnecessary database queries.
- * This code will be removed alltogether in newer versions as it is not working
- *
- * @since 2.0.0
- *
- * @return void
- */
- public function maybe_run_pb_compatibility() {
-
- $is_compatibility_completed = astra_get_option( '_astra_pb_compatibility_completed', false );
-
- if ( ! $is_compatibility_completed ) {
-
- // Theme Updates.
- add_action( 'do_meta_boxes', array( $this, 'page_builder_compatibility' ) );
- add_action( 'wp', array( $this, 'page_builder_compatibility' ), 25 );
- }
- }
-
- /**
- * Update options of older version than 1.0.13.
- *
- * @since 1.0.13
- * @return void
- */
- public function page_builder_compatibility() {
-
- $offset_comp = get_option( '_astra_pb_compatibility_offset', false );
- $comp_time = get_option( '_astra_pb_compatibility_time', false );
-
- if ( ! $offset_comp || ! $comp_time ) {
- astra_update_option( '_astra_pb_compatibility_completed', true );
- return;
- }
-
- // Get current post id.
- $current_post_id = (int) get_the_ID();
- if ( $current_post_id ) {
- $post_date = strtotime( get_the_date( 'Y-m-d H:i:s', $current_post_id ) );
- $backward_date = strtotime( $comp_time );
- if ( $post_date < $backward_date ) {
- $this->update_meta_values( $current_post_id );
- }
- }
-
- // get all post types.
- $all_post_type = get_post_types(
- array(
- 'public' => true,
- )
- );
- unset( $all_post_type['attachment'] );
-
- // wp_query array.
- $query = array(
- 'post_type' => $all_post_type,
- 'posts_per_page' => '30',
- 'no_found_rows' => true,
- 'post_status' => 'any',
- 'offset' => $offset_comp,
- 'date_query' => array(
- array(
- 'before' => $comp_time,
- 'inclusive' => true,
- ),
- ),
- 'fields' => 'ids',
- );
-
- // exicute wp_query.
- $posts = new WP_Query( $query );
-
- $continue = false;
- foreach ( $posts->posts as $id ) {
- $this->update_meta_values( $id );
- $continue = true;
- }
-
- if ( $continue ) {
- $offset_comp += 30;
- update_option( '_astra_pb_compatibility_offset', $offset_comp );
- } else {
- delete_option( '_astra_pb_compatibility_offset' );
- delete_option( '_astra_pb_compatibility_time' );
- astra_update_option( '_astra_pb_compatibility_completed', true );
- }
- }
-
- /**
- * Update meta values
- *
- * @since 1.0.13
- * @param int $id Post id.
- * @return void
- */
- public function update_meta_values( $id ) {
-
- $layout_flag = get_post_meta( $id, '_astra_content_layout_flag', true );
- if ( empty( $layout_flag ) ) {
- $site_content = get_post_meta( $id, 'site-content-layout', true );
-
- if ( 'default' == $site_content ) {
- $post_type = get_post_type( $id );
- if ( 'page' == $post_type ) {
- $site_content = astra_get_option( 'single-page-content-layout', '' );
- } elseif ( 'post' == $post_type ) {
- $site_content = astra_get_option( 'single-post-content-layout', '' );
- }
-
- if ( 'default' == $site_content ) {
- $site_content = astra_get_option( 'site-content-layout', '' );
- }
- }
-
- $elementor = get_post_meta( $id, '_elementor_edit_mode', true );
- $vc = get_post_meta( $id, '_wpb_vc_js_status', true );
- if ( 'page-builder' === $site_content ) {
- update_post_meta( $id, '_astra_content_layout_flag', 'disabled' );
- update_post_meta( $id, 'site-post-title', 'disabled' );
- update_post_meta( $id, 'ast-title-bar-display', 'disabled' );
- update_post_meta( $id, 'site-sidebar-layout', 'no-sidebar' );
- } elseif ( 'builder' === $elementor || true === $vc || 'true' === $vc ) {
- update_post_meta( $id, '_astra_content_layout_flag', 'disabled' );
- }
- }
- }
- }
-}
-
-
-
-/**
- * Kicking this off by calling 'get_instance()' method
- */
-Astra_PB_Compatibility::get_instance();
+<?php +/** + * Theme Update + * + * @package Astra + * @author Astra + * @copyright Copyright (c) 2020, Astra + * @link https://wpastra.com/ + * @since Astra 1.0.13 + */ + +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly. +} + +if ( ! class_exists( 'Astra_PB_Compatibility' ) ) { + + /** + * Astra_PB_Compatibility initial setup + * + * @since 1.0.13 + */ + class Astra_PB_Compatibility { + + /** + * Class instance. + * + * @access private + * @var $instance Class instance. + */ + private static $instance; + + /** + * Initiator + */ + public static function get_instance() { + if ( ! isset( self::$instance ) ) { + self::$instance = new self(); + } + return self::$instance; + } + + /** + * Constructor + */ + public function __construct() { + add_action( 'init', array( $this, 'maybe_run_pb_compatibility' ) ); + } + + /** + * Page builder compatibility database migration was added in v1.0.14, This was 2 Years ago as of right now. + * After version 1.8.7 we are stopping from running this to avoid execution of unnecessary database queries. + * This code will be removed alltogether in newer versions as it is not working + * + * @since 2.0.0 + * + * @return void + */ + public function maybe_run_pb_compatibility() { + + $is_compatibility_completed = astra_get_option( '_astra_pb_compatibility_completed', false ); + + if ( ! $is_compatibility_completed ) { + + // Theme Updates. + add_action( 'do_meta_boxes', array( $this, 'page_builder_compatibility' ) ); + add_action( 'wp', array( $this, 'page_builder_compatibility' ), 25 ); + } + } + + /** + * Update options of older version than 1.0.13. + * + * @since 1.0.13 + * @return void + */ + public function page_builder_compatibility() { + + $offset_comp = get_option( '_astra_pb_compatibility_offset', false ); + $comp_time = get_option( '_astra_pb_compatibility_time', false ); + + if ( ! $offset_comp || ! $comp_time ) { + astra_update_option( '_astra_pb_compatibility_completed', true ); + return; + } + + // Get current post id. + $current_post_id = (int) get_the_ID(); + if ( $current_post_id ) { + $post_date = strtotime( get_the_date( 'Y-m-d H:i:s', $current_post_id ) ); + $backward_date = strtotime( $comp_time ); + if ( $post_date < $backward_date ) { + $this->update_meta_values( $current_post_id ); + } + } + + // get all post types. + $all_post_type = get_post_types( + array( + 'public' => true, + ) + ); + unset( $all_post_type['attachment'] ); + + // wp_query array. + $query = array( + 'post_type' => $all_post_type, + 'posts_per_page' => '30', + 'no_found_rows' => true, + 'post_status' => 'any', + 'offset' => $offset_comp, + 'date_query' => array( + array( + 'before' => $comp_time, + 'inclusive' => true, + ), + ), + 'fields' => 'ids', + ); + + // exicute wp_query. + $posts = new WP_Query( $query ); + + $continue = false; + foreach ( $posts->posts as $id ) { + $this->update_meta_values( $id ); + $continue = true; + } + + if ( $continue ) { + $offset_comp += 30; + update_option( '_astra_pb_compatibility_offset', $offset_comp ); + } else { + delete_option( '_astra_pb_compatibility_offset' ); + delete_option( '_astra_pb_compatibility_time' ); + astra_update_option( '_astra_pb_compatibility_completed', true ); + } + } + + /** + * Update meta values + * + * @since 1.0.13 + * @param int $id Post id. + * @return void + */ + public function update_meta_values( $id ) { + + $layout_flag = get_post_meta( $id, '_astra_content_layout_flag', true ); + if ( empty( $layout_flag ) ) { + $site_content = get_post_meta( $id, 'site-content-layout', true ); + + if ( 'default' == $site_content ) { + $post_type = get_post_type( $id ); + if ( 'page' == $post_type ) { + $site_content = astra_get_option( 'single-page-content-layout', '' ); + } elseif ( 'post' == $post_type ) { + $site_content = astra_get_option( 'single-post-content-layout', '' ); + } + + if ( 'default' == $site_content ) { + $site_content = astra_get_option( 'site-content-layout', '' ); + } + } + + $elementor = get_post_meta( $id, '_elementor_edit_mode', true ); + $vc = get_post_meta( $id, '_wpb_vc_js_status', true ); + if ( 'page-builder' === $site_content ) { + update_post_meta( $id, '_astra_content_layout_flag', 'disabled' ); + update_post_meta( $id, 'site-post-title', 'disabled' ); + update_post_meta( $id, 'ast-title-bar-display', 'disabled' ); + update_post_meta( $id, 'site-sidebar-layout', 'no-sidebar' ); + } elseif ( 'builder' === $elementor || true === $vc || 'true' === $vc ) { + update_post_meta( $id, '_astra_content_layout_flag', 'disabled' ); + } + } + } + } +} + + + +/** + * Kicking this off by calling 'get_instance()' method + */ +Astra_PB_Compatibility::get_instance(); |