OwlCyberSecurity - MANAGER
Edit File: class-auxels-import.php
<?php /** * Class for importing and exporting theme options */ class Auxels_Import { /** * Instance of this class. * * @var object */ protected static $instance = null; public function __construct(){ // Add a radio option for exporting auxin options to wp export options. add_action( 'export_filters', array( $this, 'export_filters' ) ); // Process the check field for auxin options while export submitted add_filter( 'export_args', array( $this, 'export_args' ) ); // adding options to export file add_action( 'rss2_head', array( $this, 'add_xml_tag_option_in_export' ) ); // Import the options based on parsed data from xml file add_action( 'import_start', array( $this, 'import_start' ) ); } /** * Add a radio option for exporting auxin options to available export options. * * @return void */ public function export_filters() { ?> <hr /> <p><label> <input type="checkbox" name="auxin-options" checked="checked" aria-describedby="all-content-desc" /> <?php esc_html_e( 'Include theme options', 'auxin-elements' ); ?> </label></p> <?php } /** * Process the check field for auxin options * * @param array $args * @return mixed */ public function export_args( $args ){ if ( ! empty( $_GET['auxin-options'] ) ) { $args['auxin-options'] = true; } return $args; } /** * Generate option page for wp options in xml format */ public function add_xml_tag_option_in_export(){ global $wpdb; $options_ref = $this->get_export_option_list(); foreach ( $options_ref as $option_export_name => $option_import_name ) { $result = $wpdb->get_results( $wpdb->prepare("SELECT option_name, option_value FROM $wpdb->options WHERE option_name = %s", $option_import_name ) ); if( ! empty( $result[0]->option_value ) ){ ?> <wp:option> <wp:option_key><?php echo $this->wxr_cdata( $option_export_name ); ?></wp:option_key> <wp:option_value><?php echo $this->wxr_cdata( $result[0]->option_value ); ?></wp:option_value> </wp:option> <?php } } } /** * Retrieves the list of options we intended to include in export file */ public function get_export_option_list(){ return array( 'theme_options' => THEME_ID . '_theme_options' ); } /** * Import the options based on parsed data from xml file */ public function import_start(){ global $wp_import; $options_ref = $this->get_export_option_list(); $file = get_attached_file( $wp_import->id ); // if export file is not uploaded and is a link to a file in theme files if( empty( $file ) && property_exists( $wp_import, 'import_file' ) ){ $file = $wp_import->import_file; } include 'class-auxels-import-parser.php'; $parser = new Auxels_Import_Parser; $options = $parser->parse( $file ); foreach ( $options as $option_key => $option_value ){ if( ! empty( $options_ref[ $option_key ] ) ){ update_option( $options_ref[ $option_key ], maybe_unserialize( $option_value ) ); } } } /** * Print the data in cdata and utf8 format * @param string $str * @return string */ public function wxr_cdata( $str ) { if ( ! seems_utf8( $str ) ) { $str = utf8_encode( $str ); } $str = '<![CDATA[' . str_replace( ']]>', ']]]]><![CDATA[>', $str ) . ']]>'; return $str; } /** * Return an instance of this class. * * @return object A single instance of this class. */ public static function get_instance() { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self; } return self::$instance; } } new Auxels_Import();