���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ` Import site. * * @package Astra Sites * @since 1.4.0 */ if ( class_exists( 'WP_CLI_Command' ) && ! class_exists( 'Astra_Sites_WP_CLI' ) ) : /** * WP-Cli commands to manage Astra Starter Sites. * * @since 1.4.0 */ class Astra_Sites_WP_CLI extends WP_CLI_Command { /** * Site Data * * @var array */ protected $current_site_data; /** * Process Batch * * ## EXAMPLES * * $ wp astra-sites batch * Processing Site: http://example.com/ * Batch Process Started.. * .. * * @since 2.1.0 * @param array $args Arguments. * @param array $assoc_args Associated Arguments. */ public function batch( $args, $assoc_args ) { WP_CLI::line( 'Processing Site: ' . site_url() ); Astra_Sites_Batch_Processing::get_instance()->start_process(); } /** * Generates the list of all Astra Sites. * * ## OPTIONS * * [--per-page=] * : No of sites to show in the list. Default its showing 10 sites. * * [--search=] * : Show the sites from particular search term. * * [--category=] * : Show the site from the specific category. * * [--page-builder=] * : List the sites from the particular page builder. * * [--type=] * : List the sites from the particular site type. * * ## EXAMPLES * * # List all the sites. * $ wp astra-sites list * +-------+-------------------+-----------------------------------------+---------+----------------+--------------+ * | id | title | url | type | categories | page-builder | * +-------+-------------------+-----------------------------------------+---------+----------------+--------------+ * | 34184 | Nutritionist | //websitedemos.net/nutritionist-01 | free | Business, Free | Elementor | * | 34055 | Law Firm | //websitedemos.net/law-firm-03 | premium | Business | Elementor | * +-------+-------------------+-----------------------------------------+---------+----------------+--------------+ * * @since 1.4.0 * @param array $args Arguments. * @param array $assoc_args Associated Arguments. * * @alias list */ public function list_sites( $args, $assoc_args ) { $per_page = isset( $assoc_args['per-page'] ) ? $assoc_args['per-page'] : 10; $search = isset( $assoc_args['search'] ) ? $assoc_args['search'] : ''; $rest_args = array( '_fields' => 'id,title,slug,astra-sites-site-category,astra-site-page-builder,astra-site-type,astra-site-url', 'per_page' => $per_page, ); if ( ! empty( $search ) ) { $rest_args['search'] = $search; } $list = (array) $this->get_sites( 'astra-sites', $rest_args, true, $assoc_args ); // Modify the output. foreach ( $list as $key => $item ) { $list[ $key ]['categories'] = implode( ', ', $list[ $key ]['categories'] ); $list[ $key ]['page-builder'] = implode( ', ', $list[ $key ]['page_builders'] ); } if ( ! empty( $list ) ) { $display_fields = array( 'id', 'title', 'url', 'type', 'categories', 'page-builder', ); $formatter = $this->get_formatter( $assoc_args, $display_fields ); $formatter->display_items( $list ); } else { WP_CLI::error( __( 'No sites found! Try another query.', 'astra-sites' ) ); } } /** * Import the site by site ID. * * ## OPTIONS * * * : Site id of the import site. * * [--reset] * : Reset the recently imported site data. Including post, pages, customizer settings, widgets etc. * * [--yes] * : Forcefully import the site without asking any prompt message. * * ## EXAMPLES * * # Import demo site. * $ wp astra-sites import 34184 --reset --yes * Activating Plugins.. * Reseting Posts.. * .. * * @since 1.4.0 * @param array $args Arguments. * @param array $assoc_args Associated Arguments. */ public function import( $args, $assoc_args ) { // Force import. $yes = isset( $assoc_args['yes'] ) ? true : false; if ( ! $yes ) { WP_CLI::confirm( __( 'Are you sure you want to import the site?', 'astra-sites' ) ); } // Valid site ID? $id = isset( $args[0] ) ? absint( $args[0] ) : 0; if ( ! $id ) { WP_CLI::error( __( 'Invalid Site ID,', 'astra-sites' ) ); } $reset = isset( $assoc_args['reset'] ) ? true : false; $site_url = get_site_url(); $demo_data = $this->get_site_data( $id ); // Invalid Site ID. if ( is_wp_error( $demo_data ) ) { /* Translators: %s is the error message. */ WP_CLI::error( sprintf( __( 'Site Import failed due to error: %s', 'astra-sites' ), $demo_data->get_error_message() ) ); } // License Status. $license_status = false; if ( is_callable( 'BSF_License_Manager::bsf_is_active_license' ) ) { $license_status = BSF_License_Manager::bsf_is_active_license( 'astra-pro-sites' ); } if ( 'free' !== $demo_data['site-type'] && 'upgrade' === $demo_data['license-status'] && ! $license_status ) { if ( ! defined( 'ASTRA_PRO_SITES_NAME' ) ) { WP_CLI::line( __( 'This is Premium site. Please activate the "Starter Templates" license!', 'astra-sites' ) ); WP_CLI::line( __( 'Use `wp plugin deactivate astra-sites` and then `wp plugin activate astra-pro-sites`', 'astra-sites' ) ); } /* translators: %s is the activate plugin license link. */ WP_CLI::error( __( 'Use CLI command `wp brainstormforce license activate astra-pro-sites {YOUR_LICENSE_KEY}`', 'astra-sites' ) ); } /** * Check File System permissions. */ $filesystem_permission = Astra_Sites::get_instance()->filesystem_permission(); /** * Install & Activate Required Plugins. */ if ( isset( $demo_data['required-plugins'] ) ) { $plugins = (array) $demo_data['required-plugins']; if ( ! empty( $plugins ) ) { $plugin_status = Astra_Sites::get_instance()->required_plugin( $plugins, $demo_data['astra-site-options-data'], $demo_data['astra-enabled-extensions'] ); // Install Plugins. if ( ! empty( $plugin_status['required_plugins']['notinstalled'] ) ) { WP_CLI::line( __( 'Installing Plugins..', 'astra-sites' ) ); foreach ( $plugin_status['required_plugins']['notinstalled'] as $key => $plugin ) { if ( isset( $plugin['slug'] ) ) { // Install plugin. WP_CLI::runcommand( 'plugin install ' . $plugin['slug'] ); // Activate plugin. WP_CLI::runcommand( 'plugin activate ' . $plugin['slug'] ); } } } // Activate Plugins. if ( ! empty( $plugin_status['required_plugins']['inactive'] ) ) { WP_CLI::line( __( 'Activating Plugins..', 'astra-sites' ) ); foreach ( $plugin_status['required_plugins']['inactive'] as $key => $plugin ) { if ( isset( $plugin['init'] ) ) { Astra_Sites::get_instance()->required_plugin_activate( $plugin['init'], $demo_data['astra-site-options-data'], $demo_data['astra-enabled-extensions'] ); } } } } } /** * Backup Customizer Settings */ Astra_Sites::get_instance()->backup_settings(); /** * Reset Site Data */ if ( $reset ) { WP_CLI::runcommand( 'astra-sites reset --yes' ); } /** * Import Flows & Steps for CartFlows. */ if ( isset( $demo_data['astra-site-cartflows-path'] ) && ! empty( $demo_data['astra-site-cartflows-path'] ) ) { Astra_Sites_Importer::get_instance()->import_cartflows( $demo_data['astra-site-cartflows-path'] ); } /** * Import WP Forms. */ if ( isset( $demo_data['astra-site-wpforms-path'] ) && ! empty( $demo_data['astra-site-wpforms-path'] ) ) { Astra_Sites_Importer::get_instance()->import_wpforms( $demo_data['astra-site-wpforms-path'] ); } /** * Import Customizer Settings. */ WP_CLI::runcommand( 'astra-sites import_customizer_settings ' . $id ); /** * Import Content from XML/WXR. */ if ( isset( $demo_data['astra-site-wxr-path'] ) && ! empty( $demo_data['astra-site-wxr-path'] ) ) { WP_CLI::runcommand( 'astra-sites import_wxr ' . $demo_data['astra-site-wxr-path'] ); } /** * Import Site Options. */ if ( isset( $demo_data['astra-site-options-data'] ) && ! empty( $demo_data['astra-site-options-data'] ) ) { WP_CLI::line( __( 'Importing Site Options..', 'astra-sites' ) ); Astra_Sites_Importer::get_instance()->import_options( $demo_data['astra-site-options-data'] ); } /** * Import Widgets. */ if ( isset( $demo_data['astra-site-widgets-data'] ) && ! empty( $demo_data['astra-site-widgets-data'] ) ) { WP_CLI::line( __( 'Importing Widgets..', 'astra-sites' ) ); Astra_Sites_Importer::get_instance()->import_widgets( $demo_data['astra-site-widgets-data'] ); } /** * Import End. */ WP_CLI::runcommand( 'astra-sites import_end' ); /* translators: %s is the site URL. */ WP_CLI::line( sprintf( __( "Site Imported Successfully!\nVisit: %s", 'astra-sites' ), $site_url ) ); } /** * Import End * * @since 1.4.3 * @return void */ public function import_end() { Astra_Sites_Importer::get_instance()->import_end(); } /** * Import form XML. * * ## OPTIONS * * * : XML/WXR file URL. * * ## EXAMPLES * * $ wp astra-sites import_wxr * * @since 1.4.3 * @param array $args Arguments. * @param array $assoc_args Associated Arguments. * @return void. */ public function import_wxr( $args = array(), $assoc_args = array() ) { // Valid site ID? $url = isset( $args[0] ) ? esc_url_raw( $args[0] ) : ''; if ( empty( $url ) ) { WP_CLI::error( esc_html__( 'Invalid XML URL.', 'astra-sites' ) ); } // Download XML file. /* translators: %s is the XML file URL. */ WP_CLI::line( sprintf( esc_html__( 'Downloading %s', 'astra-sites' ), $url ) ); $xml_path = Astra_Sites_Helper::download_file( $url ); if ( $xml_path['success'] && isset( $xml_path['data']['file'] ) ) { WP_CLI::line( esc_html__( 'Importing WXR..', 'astra-sites' ) ); Astra_WXR_Importer::instance()->sse_import( $xml_path['data']['file'] ); } else { /* translators: %s is error message. */ WP_CLI::line( printf( esc_html__( 'WXR file Download Failed. Error %s', 'astra-sites' ), esc_html( $xml_path['data'] ) ) ); } } /** * Reset * * Delete all pages, post, custom post type, customizer settings and site options. * * ## OPTIONS * * [--yes] * : Reset previously imported site data without asking the prompt message. * * ## EXAMPLES * * $ wp astra-sites reset * * @since 1.4.0 * @param array $args Arguments. * @param array $assoc_args Associated Arguments. * @return void. */ public function reset( $args = array(), $assoc_args = array() ) { $yes = isset( $assoc_args['yes'] ) ? true : false; if ( ! $yes ) { WP_CLI::confirm( __( 'Are you sure you want to delete imported site data?', 'astra-sites' ) ); } // Get tracked data. $reset_data = Astra_Sites::get_instance()->get_reset_data(); // Delete tracked posts. if ( isset( $reset_data['reset_posts'] ) && ! empty( $reset_data['reset_posts'] ) ) { WP_CLI::line( __( 'Reseting Posts..', 'astra-sites' ) ); foreach ( $reset_data['reset_posts'] as $key => $post_id ) { Astra_Sites_Importer::get_instance()->delete_imported_posts( $post_id ); } } // Delete tracked terms. if ( isset( $reset_data['reset_terms'] ) && ! empty( $reset_data['reset_terms'] ) ) { WP_CLI::line( __( 'Reseting Terms..', 'astra-sites' ) ); foreach ( $reset_data['reset_terms'] as $key => $post_id ) { Astra_Sites_Importer::get_instance()->delete_imported_terms( $post_id ); } } // Delete tracked WP forms. if ( isset( $reset_data['reset_wp_forms'] ) && ! empty( $reset_data['reset_wp_forms'] ) ) { WP_CLI::line( __( 'Resting WP Forms...', 'astra-sites' ) ); foreach ( $reset_data['reset_wp_forms'] as $key => $post_id ) { Astra_Sites_Importer::get_instance()->delete_imported_wp_forms( $post_id ); } } // Delete Customizer Data. Astra_Sites_Importer::get_instance()->reset_customizer_data(); // Delete Site Options. Astra_Sites_Importer::get_instance()->reset_site_options(); // Delete Widgets Data. Astra_Sites_Importer::get_instance()->reset_widgets_data(); } /** * Import Customizer Settings * * ## OPTIONS * * * : Site ID. * * ## EXAMPLES * * $ wp astra-sites import_customizer_settings * * @since 1.4.0 * * @param array $args Arguments. * @param array $assoc_args Associated Arguments. * @return void */ public function import_customizer_settings( $args, $assoc_args ) { // Valid site ID? $id = isset( $args[0] ) ? absint( $args[0] ) : 0; if ( ! $id ) { WP_CLI::error( __( 'Invalid Site ID,', 'astra-sites' ) ); } $demo_data = $this->get_site_data( $id ); WP_CLI::line( __( 'Importing customizer settings..', 'astra-sites' ) ); Astra_Sites_Importer::get_instance()->import_customizer_settings( $demo_data['astra-site-customizer-data'] ); } /** * Page Builders * * ### OPTIONS * * [] * : List all page builders. * * OR * * [] * : Set the current page builder with given page builder slug. * * [] * : Page builder slug. * * ### EXAMPLES * * # List all the page builders. * λ wp astra-sites page_builder list * +----------------+----------------+ * | slug | name | * +----------------+----------------+ * | gutenberg | Gutenberg | * | elementor | Elementor | * | beaver-builder | Beaver Builder | * | brizy | Brizy | * +----------------+----------------+ * * # Set `Elementor` as default page builder. * λ wp astra-sites page_builder set elementor * "Elementor" is set as default page builder. * * # Set `Beaver Builder` as default page builder. * λ wp astra-sites page_builder set beaver-builder * "Beaver Builder" is set as default page builder. * * @since 1.4.0 * @param array $args Arguments. * @param array $assoc_args Associated Arguments. */ public function page_builder( $args, $assoc_args ) { $action = isset( $args[0] ) ? $args[0] : ''; if ( empty( $action ) ) { WP_CLI::error( __( 'Please add valid parameter.', 'astra-sites' ) ); } $page_builders = Astra_Sites_Page::get_instance()->get_page_builders(); if ( 'list' === $action ) { $display_fields = array( 'slug', 'name', ); $formatter = $this->get_formatter( $assoc_args, $display_fields ); $formatter->display_items( $page_builders ); $default_page_builder = isset( $page_builders[ Astra_Sites_Page::get_instance()->get_setting( 'page_builder' ) ] ) ? $page_builders[ Astra_Sites_Page::get_instance()->get_setting( 'page_builder' ) ]['name'] : ''; if ( ! empty( $default_page_builder ) ) { /* translators: %s is the current page builder name. */ WP_CLI::line( sprintf( __( 'Default page builder is "%s".', 'astra-sites' ), $default_page_builder ) ); } } elseif ( 'set' === $action ) { $page_builder_slugs = array_keys( $page_builders ); $page_builder_slug = isset( $args[1] ) ? $args[1] : ''; if ( in_array( $page_builder_slug, $page_builder_slugs, true ) ) { Astra_Sites_Page::get_instance()->save_page_builder_on_submit( $page_builder_slug ); /* translators: %s is the page builder name. */ WP_CLI::line( sprintf( __( '"%s" is set as default page builder.', 'astra-sites' ), $page_builders[ $page_builder_slug ]['name'] ) ); } else { WP_CLI::error( __( "Invalid page builder slug. \nCheck all page builder slugs with command `wp astra-sites page_builder list`", 'astra-sites' ) ); } } else { WP_CLI::error( __( "Invalid parameter! \nPlease use `list` or `set` parameter.", 'astra-sites' ) ); } } /** * Get Formatter * * @since 1.4.0 * @param array $assoc_args Associate arguments. * @param string $fields Fields. * @param string $prefix Prefix. * @return object Class object. */ protected function get_formatter( &$assoc_args, $fields = '', $prefix = '' ) { return new \WP_CLI\Formatter( $assoc_args, $fields, $prefix ); } /** * Get Site Data by Site ID * * @since 1.4.0 * * @param int $id Site ID. * @return array */ private function get_site_data( $id ) { if ( empty( $this->current_site_data ) ) { // @todo Use Astra_Sites::get_instance()->api_request() instead of below function. $this->current_site_data = Astra_Sites_Importer::get_instance()->get_single_demo( $id ); update_option( 'astra_sites_import_data', $this->current_site_data, 'no' ); } return $this->current_site_data; } /** * Get Sites * * @since 1.4.0 * * @param string $post_slug Post slug. * @param array $args Post query arguments. * @param boolean $force Force import. * @param array $assoc_args Associate arguments. * @return array */ private function get_sites( $post_slug = '', $args = array(), $force = false, $assoc_args = array() ) { // Add page builders. $page_builder = isset( $assoc_args['page-builder'] ) ? $assoc_args['page-builder'] : Astra_Sites_Page::get_instance()->get_setting( 'page_builder' ); $response = $this->get_term_ids( 'astra-site-page-builder', $page_builder, $args ); $args = $response['args']; $page_builders = $response['terms']; if ( empty( $page_builders['data'] ) ) { WP_CLI::error( __( 'This page builder plugin is not installed. Please try a different page builder.', 'astra-sites' ) ); } // Add type. $type = isset( $assoc_args['type'] ) ? $assoc_args['type'] : ''; $response = $this->get_term_ids( 'astra-sites-type', $type, $args ); $args = $response['args']; $types = $response['terms']; if ( empty( $types['data'] ) ) { WP_CLI::error( __( 'This site type does not exist. Please try a different site type.', 'astra-sites' ) ); } // Add categories. $category = isset( $assoc_args['category'] ) ? $assoc_args['category'] : ''; $response = $this->get_term_ids( 'astra-sites-site-category', $category, $args ); $args = $response['args']; $categories = $response['terms']; if ( empty( $categories['data'] ) ) { WP_CLI::error( __( 'This site category does not exist. Please try a different site category.', 'astra-sites' ) ); } // Site list. $sites = (array) $this->get_posts( 'astra-sites', $args, $force ); $list = array(); if ( $sites['success'] ) { foreach ( $sites['data'] as $key => $site ) { $single_site = array( 'id' => $site['id'], 'slug' => $site['slug'], 'title' => $site['title']['rendered'], 'url' => $site['astra-site-url'], 'type' => ( 'premium' === $site['astra-site-type'] ) ? 'Premium' : ucwords( $site['astra-site-type'] ), 'categories' => array(), 'page_builders' => array(), ); if ( isset( $site['astra-sites-site-category'] ) && ! empty( $categories['data'] ) ) { foreach ( $site['astra-sites-site-category'] as $category_key => $category_id ) { if ( isset( $categories['data'][ $category_id ] ) ) { $single_site['categories'][ $category_id ] = $categories['data'][ $category_id ]; } } } if ( isset( $site['astra-site-page-builder'] ) && ! empty( $page_builders['data'] ) ) { foreach ( $site['astra-site-page-builder'] as $page_builder_key => $page_builder_id ) { if ( isset( $page_builders['data'][ $page_builder_id ] ) ) { $single_site['page_builders'][ $page_builder_id ] = $page_builders['data'][ $page_builder_id ]; } } } $list[] = $single_site; } } return $list; } /** * Get Term IDs * * @since 1.4.0 * * @param string $term_slug Term slug. * @param string $search_term Search term. * @param array $args Term query arguments. * @return array Term response. */ private function get_term_ids( $term_slug = '', $search_term = '', $args = array() ) { $term_args = array(); if ( ! empty( $search_term ) ) { $term_args = array( 'search' => $search_term, ); } $term_response = (array) $this->get_terms( $term_slug, $term_args, true ); if ( ! empty( $search_term ) ) { if ( ! empty( $term_response ) && is_array( $term_response['data'] ) ) { $args[ $term_slug ] = implode( ',', array_keys( $term_response['data'] ) ); } } return array( 'args' => $args, 'terms' => $term_response, ); } /** * Get Terms * * @since 1.0.0 * * @param array $term_slug Term Slug. * @param array $args For selecting the demos (Search terms, pagination etc). * @param string $force Force import. * @return $array Term response. */ private function get_terms( $term_slug = '', $args = array(), $force = false ) { $defaults = array( '_fields' => 'id,name,slug,count', ); $args = wp_parse_args( (array) $args, $defaults ); $success = false; $terms_data = get_transient( 'astra-sites-term-' . $term_slug ); if ( empty( $terms_data ) || $force ) { $url = add_query_arg( $args, Astra_Sites::get_instance()->get_api_url() . $term_slug ); $api_args = array( 'timeout' => 60, ); $response = wp_remote_get( $url, $api_args ); if ( ! is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) === 200 ) { $request_term_data = json_decode( wp_remote_retrieve_body( $response ), true ); if ( ! isset( $request_term_data['code'] ) ) { $success = true; $new_terms_data = array(); foreach ( $request_term_data as $key => $request_term ) { $new_terms_data[ $request_term['id'] ] = $request_term['name']; } if ( set_transient( 'astra-sites-term-' . $term_slug, $new_terms_data, WEEK_IN_SECONDS ) ) { return array( 'success' => $success, 'data' => $new_terms_data, ); } } } } return array( 'success' => $success, 'data' => $terms_data, ); } /** * Get Posts * * @since 1.4.0 * * @param string $post_slug Post slug. * @param array $args Post query arguments. * @param boolean $force Force import. * @return array */ private function get_posts( $post_slug = '', $args = array(), $force = false ) { $args = wp_parse_args( (array) $args, array() ); $all_posts = get_transient( 'astra-sites-post-' . $post_slug ); if ( empty( $all_posts ) || $force ) { $url = add_query_arg( $args, Astra_Sites::get_instance()->get_api_url() . $post_slug ); $api_args = array( 'timeout' => 60, ); $success = false; $response = wp_remote_get( $url, $api_args ); if ( ! is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) === 200 ) { $all_posts = json_decode( wp_remote_retrieve_body( $response ), true ); if ( ! isset( $all_posts['code'] ) ) { $success = true; set_transient( 'astra-sites-post-' . $post_slug, $all_posts, WEEK_IN_SECONDS ); } } } else { $success = true; } return array( 'success' => $success, 'data' => $all_posts, ); } /** * Sync Library. * * Sync the library and create the .json files. * * Use: `wp astra-sites sync` * * @since 2.0.0 * @param array $args Arguments. * @param array $assoc_args Associated Arguments. * @return void. */ public function sync( $args = array(), $assoc_args = array() ) { Astra_Sites_Batch_Processing::get_instance()->process_batch(); } } /** * Add Command */ WP_CLI::add_command( 'starter-templates', 'Astra_Sites_WP_CLI' ); WP_CLI::add_command( 'astra-sites', 'Astra_Sites_WP_CLI' ); endif;