Skip to content

Instantly share code, notes, and snippets.

@naeem7896
Created September 8, 2020 02:08
Show Gist options
  • Save naeem7896/4419e1bbe8a9736ff6a3ecb84c83fa42 to your computer and use it in GitHub Desktop.
Save naeem7896/4419e1bbe8a9736ff6a3ecb84c83fa42 to your computer and use it in GitHub Desktop.
One Click Demo Import Change the Plugin Page Markup
<?php
add_action( 'init', function() {
remove_filters_with_method_name( 'admin_menu', 'create_plugin_page', 10 );
remove_filters_with_method_name( 'admin_enqueue_scripts', 'admin_enqueue_scripts', 10 );
}, 99 );
function remove_filters_with_method_name( $hook_name = '', $method_name = '', $priority = 0 ) {
global $wp_filter;
// Take only filters on right hook name and priority
if ( ! isset( $wp_filter[ $hook_name ][ $priority ] ) || ! is_array( $wp_filter[ $hook_name ][ $priority ] ) ) {
return false;
}
// Loop on filters registered
foreach ( (array) $wp_filter[ $hook_name ][ $priority ] as $unique_id => $filter_array ) {
// Test if filter is an array ! (always for class/method)
if ( isset( $filter_array['function'] ) && is_array( $filter_array['function'] ) ) {
// Test if object is a class and method is equal to param !
if ( is_object( $filter_array['function'][0] ) && get_class( $filter_array['function'][0] ) && $filter_array['function'][1] == $method_name ) {
// Test for WordPress >= 4.7 WP_Hook class (https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/)
if ( is_a( $wp_filter[ $hook_name ], 'WP_Hook' ) ) {
unset( $wp_filter[ $hook_name ]->callbacks[ $priority ][ $unique_id ] );
} else {
unset( $wp_filter[ $hook_name ][ $priority ][ $unique_id ] );
}
}
}
}
return false;
}
add_action( 'admin_menu', function() {
$plugin_page_setup = array(
'parent_slug' => 'themes.php',
'page_title' => esc_html__( 'One Click Demo Import' , 'pt-ocdi' ),
'menu_title' => esc_html__( 'Import Demo Data' , 'pt-ocdi' ),
'capability' => 'import',
'menu_slug' => 'pt-one-click-demo-import',
);
$plugin_page = add_submenu_page(
$plugin_page_setup['parent_slug'],
$plugin_page_setup['page_title'],
$plugin_page_setup['menu_title'],
$plugin_page_setup['capability'],
$plugin_page_setup['menu_slug'],
apply_filters( 'pt-ocdi/plugin_page_display_callback_function', 'display_plugin_page' )
);
register_importer( $plugin_page_setup['menu_slug'], $plugin_page_setup['page_title'], $plugin_page_setup['menu_title'], apply_filters( 'pt-ocdi/plugin_page_display_callback_function', 'display_plugin_page' ) );
} );
function display_plugin_page() {
require_once get_template_directory() . '/template-parts/import.php';
}
add_action( 'admin_enqueue_scripts', function() {
$import_files = \OCDI\Helpers::validate_import_file_info( apply_filters( 'pt-ocdi/import_files', array() ) );
wp_enqueue_script( 'jquery-ui-dialog' );
wp_enqueue_style( 'wp-jquery-ui-dialog' );
wp_enqueue_script( 'ocdi-main-js', PT_OCDI_URL . 'assets/js/main.js' , array( 'jquery', 'jquery-ui-dialog' ), PT_OCDI_VERSION );
// Get theme data.
$theme = wp_get_theme();
wp_localize_script( 'ocdi-main-js', 'ocdi',
array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
'ajax_nonce' => wp_create_nonce( 'ocdi-ajax-verification' ),
'import_files' => $import_files,
'wp_customize_on' => apply_filters( 'pt-ocdi/enable_wp_customize_save_hooks', false ),
'import_popup' => apply_filters( 'pt-ocdi/enable_grid_layout_import_popup_confirmation', true ),
'theme_screenshot' => $theme->get_screenshot(),
'texts' => array(
'missing_preview_image' => esc_html__( 'No preview image defined for this import.', 'pt-ocdi' ),
'dialog_title' => esc_html__( 'Are you sure?', 'pt-ocdi' ),
'dialog_no' => esc_html__( 'Cancel', 'pt-ocdi' ),
'dialog_yes' => esc_html__( 'Yes, import!', 'pt-ocdi' ),
'selected_import_title' => esc_html__( 'Selected demo import:', 'pt-ocdi' ),
),
'dialog_options' => apply_filters( 'pt-ocdi/confirmation_dialog_options', array() )
)
);
wp_enqueue_style( 'ocdi-main-css', PT_OCDI_URL . 'assets/css/main.css', array() , PT_OCDI_VERSION );
} );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment