30, ); $request = wp_remote_get( trailingslashit( Astra_Sites::get_instance()->get_api_domain() ) . 'wp-content/uploads/all-site-categories.json', $api_args ); if ( ! is_wp_error( $request ) && 200 === (int) wp_remote_retrieve_response_code( $request ) ) { $cats = json_decode( wp_remote_retrieve_body( $request ), true ); if ( isset( $cats['code'] ) ) { $message = isset( $cats['message'] ) ? $cats['message'] : ''; if ( ! empty( $message ) ) { astra_sites_error_log( 'HTTP Request Error: ' . $message ); } else { astra_sites_error_log( 'HTTP Request Error!' ); } } else { update_site_option( 'astra-sites-all-site-categories-and-tags', $cats ); do_action( 'astra_sites_sync_all_site_categories_and_tags', $cats ); } } astra_sites_error_log( 'Site Categories Imported Successfully!' ); update_site_option( 'astra-sites-batch-status-string', 'Site Categories Imported Successfully!' ); } /** * Import All Categories and Tags * * @since 2.6.22 * @return void */ public function import_all_categories() { astra_sites_error_log( 'Requesting Site Categories' ); update_site_option( 'astra-sites-batch-status-string', 'Requesting Site Categories' ); $api_args = array( 'timeout' => 30, ); $request = wp_remote_get( trailingslashit( Astra_Sites::get_instance()->get_api_domain() ) . 'wp-json/wp/v2/astra-sites-site-category/?hide_empty=true&_fields=id,name,slug&per_page=100', $api_args ); if ( ! is_wp_error( $request ) && 200 === (int) wp_remote_retrieve_response_code( $request ) ) { $cats = json_decode( wp_remote_retrieve_body( $request ), true ); if ( isset( $cats['code'] ) ) { $message = isset( $cats['message'] ) ? $cats['message'] : ''; if ( ! empty( $message ) ) { astra_sites_error_log( 'HTTP Request Error: ' . $message ); } else { astra_sites_error_log( 'HTTP Request Error!' ); } } else { update_site_option( 'astra-sites-all-site-categories', $cats ); do_action( 'astra_sites_sync_all_site_categories', $cats ); } } astra_sites_error_log( 'Site Categories Imported Successfully!' ); update_site_option( 'astra-sites-batch-status-string', 'Site Categories Imported Successfully!' ); } /** * Import Categories * * @since 2.0.0 * @return void */ public function import_site_categories() { astra_sites_error_log( 'Requesting Site Categories' ); update_site_option( 'astra-sites-batch-status-string', 'Requesting Site Categories' ); $api_args = array( 'timeout' => 30, ); $categories_request = wp_remote_get( trailingslashit( Astra_Sites::get_instance()->get_api_domain() ) . 'wp-json/wp/v2/astra-sites-site-category/?hide_empty=true&_fields=id,name,slug&per_page=100', $api_args ); if ( ! is_wp_error( $categories_request ) && 200 === (int) wp_remote_retrieve_response_code( $categories_request ) ) { $categories = json_decode( wp_remote_retrieve_body( $categories_request ), true ); if ( isset( $categories['code'] ) ) { $message = isset( $categories['message'] ) ? $categories['message'] : ''; if ( ! empty( $message ) ) { astra_sites_error_log( 'HTTP Request Error: ' . $message ); } else { astra_sites_error_log( 'HTTP Request Error!' ); } } else { update_site_option( 'astra-sites-categories', $categories ); do_action( 'astra_sites_sync_categories', $categories ); } } astra_sites_error_log( 'Site Categories Imported Successfully!' ); update_site_option( 'astra-sites-batch-status-string', 'Site Categories Imported Successfully!' ); } /** * Import Block Categories * * @since 2.0.0 * @return void */ public function import_block_categories() { astra_sites_error_log( 'Requesting Block Categories' ); update_site_option( 'astra-sites-batch-status-string', 'Requesting Block Categories' ); $api_args = array( 'timeout' => 30, ); $tags_request = wp_remote_get( trailingslashit( Astra_Sites::get_instance()->get_api_domain() ) . 'wp-json/wp/v2/blocks-category/?_fields=id,name,slug&per_page=100&hide_empty=1', $api_args ); if ( ! is_wp_error( $tags_request ) && 200 === (int) wp_remote_retrieve_response_code( $tags_request ) ) { $tags = json_decode( wp_remote_retrieve_body( $tags_request ), true ); if ( isset( $tags['code'] ) ) { $message = isset( $tags['message'] ) ? $tags['message'] : ''; if ( ! empty( $message ) ) { astra_sites_error_log( 'HTTP Request Error: ' . $message ); } else { astra_sites_error_log( 'HTTP Request Error!' ); } } else { $categories = array(); foreach ( $tags as $key => $value ) { $categories[ $value['id'] ] = $value; } update_site_option( 'astra-blocks-categories', $categories ); do_action( 'astra_sites_sync_blocks_categories', $categories ); } } astra_sites_error_log( 'Block Categories Imported Successfully!' ); update_site_option( 'astra-sites-batch-status-string', 'Categories Imported Successfully!' ); } /** * Import Page Builders * * @since 2.0.0 * @return void */ public function set_license_page_builder() { astra_sites_error_log( 'Requesting License Page Builders' ); $url = add_query_arg( array( '_fields' => 'id,name,slug', 'site_url' => get_site_url(), 'purchase_key' => Astra_Sites::get_instance()->get_license_key(), 'only_allow_page_builders' => 'true', ), trailingslashit( Astra_Sites::get_instance()->get_api_domain() ) . 'wp-json/wp/v2/astra-site-page-builder/' ); $api_args = array( 'timeout' => 30, ); $page_builder_request = wp_remote_get( $url, $api_args ); if ( ! is_wp_error( $page_builder_request ) && 200 === (int) wp_remote_retrieve_response_code( $page_builder_request ) ) { $page_builders = json_decode( wp_remote_retrieve_body( $page_builder_request ), true ); if ( isset( $page_builders['code'] ) ) { $message = isset( $page_builders['message'] ) ? $page_builders['message'] : ''; if ( ! empty( $message ) ) { astra_sites_error_log( 'HTTP Request Error: ' . $message ); } else { astra_sites_error_log( 'HTTP Request Error!' ); } } else { // Set mini agency page builder. $page_builder_slugs = wp_list_pluck( $page_builders, 'slug' ); if ( in_array( 'elementor', $page_builder_slugs ) && ! in_array( 'beaver-builder', $page_builder_slugs ) ) { update_option( 'astra-sites-license-page-builder', 'elementor', 'no' ); astra_sites_error_log( 'Set "Elementor" as License Page Builder' ); } elseif ( in_array( 'beaver-builder', $page_builder_slugs ) && ! in_array( 'elementor', $page_builder_slugs ) ) { update_option( 'astra-sites-license-page-builder', 'beaver-builder', 'no' ); astra_sites_error_log( 'Set "Beaver Builder" as License Page Builder' ); } else { update_option( 'astra-sites-license-page-builder', '', 'no' ); astra_sites_error_log( 'Not Set Any License Page Builder' ); } } } } /** * Import Page Builders * * @since 2.0.0 * @return void */ public function import_page_builders() { astra_sites_error_log( 'Requesting Page Builders' ); update_site_option( 'astra-sites-batch-status-string', 'Requesting Page Builders' ); $purchase_key = Astra_Sites::get_instance()->get_license_key(); $site_url = get_site_url(); $api_args = array( 'timeout' => 30, ); $page_builder_request = wp_remote_get( trailingslashit( Astra_Sites::get_instance()->get_api_domain() ) . 'wp-json/wp/v2/astra-site-page-builder/?_fields=id,name,slug&site_url=' . $site_url . '&purchase_key=' . $purchase_key, $api_args ); if ( ! is_wp_error( $page_builder_request ) && 200 === (int) wp_remote_retrieve_response_code( $page_builder_request ) ) { $page_builders = json_decode( wp_remote_retrieve_body( $page_builder_request ), true ); if ( isset( $page_builders['code'] ) ) { $message = isset( $page_builders['message'] ) ? $page_builders['message'] : ''; if ( ! empty( $message ) ) { astra_sites_error_log( 'HTTP Request Error: ' . $message ); } else { astra_sites_error_log( 'HTTP Request Error!' ); } } else { update_site_option( 'astra-sites-page-builders', $page_builders ); do_action( 'astra_sites_sync_page_builders', $page_builders ); } } astra_sites_error_log( 'Page Builders Imported Successfully!' ); update_site_option( 'astra-sites-batch-status-string', 'Page Builders Imported Successfully!' ); } /** * Import Blocks * * @since 2.0.0 * @param integer $page Page number. * @return void */ public function import_blocks( $page = 1 ) { astra_sites_error_log( 'BLOCK: -------- ACTUAL IMPORT --------' ); $api_args = array( 'timeout' => 30, ); $all_blocks = array(); astra_sites_error_log( 'BLOCK: Requesting ' . $page ); update_site_option( 'astra-blocks-batch-status-string', 'Requesting for blocks page - ' . $page ); $query_args = apply_filters( 'astra_sites_blocks_query_args', array( 'page_builder' => 'elementor', 'per_page' => 100, 'page' => $page, 'wireframe' => 'yes', ) ); $api_url = add_query_arg( $query_args, trailingslashit( Astra_Sites::get_instance()->get_api_domain() ) . 'wp-json/astra-blocks/v1/blocks/' ); $response = wp_remote_get( $api_url, $api_args ); if ( ! is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) === 200 ) { $astra_blocks = json_decode( wp_remote_retrieve_body( $response ), true ); if ( isset( $astra_blocks['code'] ) ) { $message = isset( $astra_blocks['message'] ) ? $astra_blocks['message'] : ''; if ( ! empty( $message ) ) { astra_sites_error_log( 'HTTP Request Error: ' . $message ); } else { astra_sites_error_log( 'HTTP Request Error!' ); } } else { astra_sites_error_log( 'BLOCK: Storing data for page ' . $page . ' in option astra-blocks-' . $page ); update_site_option( 'astra-blocks-batch-status-string', 'Storing data for page ' . $page . ' in option astra-blocks-' . $page ); update_site_option( 'astra-blocks-' . $page, $astra_blocks ); do_action( 'astra_sites_sync_blocks', $page, $astra_blocks ); } } else { astra_sites_error_log( 'BLOCK: API Error: ' . $response->get_error_message() ); } astra_sites_error_log( 'BLOCK: Complete storing data for blocks ' . $page ); update_site_option( 'astra-blocks-batch-status-string', 'Complete storing data for page ' . $page ); } /** * Import * * @since 1.0.14 * @since 2.0.0 Added page no. * * @param integer $page Page number. * @return array */ public function import_sites( $page = 1 ) { $api_args = array( 'timeout' => 30, ); $sites_and_pages = array(); astra_sites_error_log( 'Requesting ' . $page ); update_site_option( 'astra-sites-batch-status-string', 'Requesting ' . $page ); $query_args = apply_filters( 'astra_sites_import_sites_query_args', array( 'per_page' => 15, 'page' => $page, ) ); $api_url = add_query_arg( $query_args, trailingslashit( Astra_Sites::get_instance()->get_api_domain() ) . 'wp-json/astra-sites/v1/sites-and-pages/' ); $response = wp_remote_get( $api_url, $api_args ); if ( ! is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) === 200 ) { $sites_and_pages = json_decode( wp_remote_retrieve_body( $response ), true ); if ( isset( $sites_and_pages['code'] ) ) { $message = isset( $sites_and_pages['message'] ) ? $sites_and_pages['message'] : ''; if ( ! empty( $message ) ) { astra_sites_error_log( 'HTTP Request Error: ' . $message ); } else { astra_sites_error_log( 'HTTP Request Error!' ); } } else { astra_sites_error_log( 'Storing data for page ' . $page . ' in option astra-sites-and-pages-page-' . $page ); update_site_option( 'astra-sites-batch-status-string', 'Storing data for page ' . $page . ' in option astra-sites-and-pages-page-' . $page ); update_site_option( 'astra-sites-and-pages-page-' . $page, $sites_and_pages ); do_action( 'astra_sites_sync_sites_and_pages', $page, $sites_and_pages ); } } else { astra_sites_error_log( 'API Error: ' . $response->get_error_message() ); } astra_sites_error_log( 'Complete storing data for page ' . $page ); update_site_option( 'astra-sites-batch-status-string', 'Complete storing data for page ' . $page ); return $sites_and_pages; } } /** * Kicking this off by calling 'get_instance()' method */ Astra_Sites_Batch_Processing_Importer::get_instance(); endif;