/home/arranoyd/gazehome/wp-content/plugins/polylang/integrations/wp-importer/wordpress-importer.php
<?php
/**
* @package Polylang
*/
/**
* Manages the compatibility with WordPress Importer.
*
* @since 2.8
*/
class PLL_WordPress_Importer {
/**
* Setups filters.
*
* @since 2.8
*/
public function __construct() {
add_action( 'init', array( $this, 'maybe_wordpress_importer' ) );
add_filter( 'wp_import_terms', array( $this, 'wp_import_terms' ) );
}
/**
* If WordPress Importer is active, replace the wordpress_importer_init function.
*
* @since 1.2
*/
public function maybe_wordpress_importer() {
if ( defined( 'WP_LOAD_IMPORTERS' ) && class_exists( 'WP_Import' ) ) {
remove_action( 'admin_init', 'wordpress_importer_init' );
add_action( 'admin_init', array( $this, 'wordpress_importer_init' ) );
}
}
/**
* Loads our child class PLL_WP_Import instead of WP_Import.
*
* @since 1.2
*/
public function wordpress_importer_init() {
$class = new ReflectionClass( 'WP_Import' );
load_plugin_textdomain( 'wordpress-importer', false, basename( dirname( $class->getFileName() ) ) . '/languages' );
$GLOBALS['wp_import'] = new PLL_WP_Import();
register_importer( 'wordpress', 'WordPress', __( 'Import <strong>posts, pages, comments, custom fields, categories, and tags</strong> from a WordPress export file.', 'polylang' ), array( $GLOBALS['wp_import'], 'dispatch' ) ); // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled
}
/**
* Sets the flag when importing a language and the file has been exported with Polylang < 1.8.
*
* @since 1.8
*
* @param array $terms An array of arrays containing terms information form the WXR file.
* @return array
*/
public function wp_import_terms( $terms ) {
$languages = include POLYLANG_DIR . '/settings/languages.php';
foreach ( $terms as $key => $term ) {
if ( 'language' === $term['term_taxonomy'] ) {
$description = maybe_unserialize( $term['term_description'] );
if ( empty( $description['flag_code'] ) && isset( $languages[ $description['locale'] ] ) ) {
$description['flag_code'] = $languages[ $description['locale'] ]['flag'];
$terms[ $key ]['term_description'] = maybe_serialize( $description );
}
}
}
return $terms;
}
}