Created
September 8, 2020 02:08
-
-
Save naeem7896/4419e1bbe8a9736ff6a3ecb84c83fa42 to your computer and use it in GitHub Desktop.
One Click Demo Import Change the Plugin Page Markup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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