| Server IP : 51.91.236.255 / Your IP : 216.73.217.120 Web Server : Apache System : Linux webm002.cluster129.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : laureet ( 1012854) PHP Version : 8.0.30 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/laureet/www/wp-content/themes/rhye/inc/merlin/includes/ |
Upload File : |
<?php
/**
* Class for the custom WP hooks.
*
* @package Merlin WP
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class Merlin_Hooks {
/**
* The class constructor.
*/
public function __construct() {
add_action( 'merlin_widget_settings_array', array( $this, 'fix_custom_menu_widget_ids' ) );
add_action( 'import_start', array( $this, 'maybe_disable_creating_different_size_images_during_import' ) );
}
/**
* Change the menu IDs in the custom menu widgets in the widget import data.
* This solves the issue with custom menu widgets not having the correct (new) menu ID, because they
* have the old menu ID from the export site.
*
* @param array $widget The widget settings array.
*/
public function fix_custom_menu_widget_ids( $widget ) {
// Skip (no changes needed), if this is not a custom menu widget.
if ( ! array_key_exists( 'nav_menu', $widget ) || empty( $widget['nav_menu'] ) || ! is_int( $widget['nav_menu'] ) ) {
return $widget;
}
// Get import data, with new menu IDs.
$importer = new ProteusThemes\WPContentImporter2\Importer( array( 'fetch_attachments' => true ), new ProteusThemes\WPContentImporter2\WPImporterLogger() );
$importer->restore_import_data_transient();
$importer_mapping = $importer->get_mapping();
$term_ids = empty( $importer_mapping['term_id'] ) ? array() : $importer_mapping['term_id'];
// Set the new menu ID for the widget.
$widget['nav_menu'] = empty( $term_ids[ $widget['nav_menu'] ] ) ? $widget['nav_menu'] : $term_ids[ $widget['nav_menu'] ];
return $widget;
}
/**
* Wrapper function for the after all import action hook.
*
* @param int $selected_import_index The selected demo import index.
*/
public function after_all_import_action( $selected_import_index ) {
do_action( 'merlin_after_all_import', $selected_import_index );
return true;
}
/**
* Maybe disables generation of multiple image sizes (thumbnails) in the content import step.
*/
public function maybe_disable_creating_different_size_images_during_import() {
if ( ! apply_filters( 'merlin_regenerate_thumbnails_in_content_import', true ) ) {
add_filter( 'intermediate_image_sizes_advanced', '__return_null' );
}
}
}