0
votes

I'm trying to add an admin sub-level menu on WordPress. The menu link is working fine but the page which I want to show is throwing an error.

error:

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'print_admin_config' not found or invalid function name in /var/www/html/woocommerce-print/wp-includes/class-wp-hook.php on line 286

Hook:

add_action( 'admin_menu', 'print_admin_menu' );

function print_admin_menu() {
    add_options_page( 'Print Configuration', 'Print Configuration', 'manage_options', 
    'woocommerce-print/admin/print-admin-config.php', 'print_admin_config', 'dashicons-tickadmin-generic', 31 );
}

Callback function (woocommerce-print/admin/print-admin-config.php):

<?php
function print_admin_config(){
    ?>
    <div class="wrap">
        <h2>Welcome To My Plugin</h2>
    </div>
    <?php
}
2

2 Answers

0
votes

print_admin_config should be available at the moment of admin_menu hook running. So, move that function to appropriate place (like same script you using to add menu hook)

0
votes

Got it working like this:

function print_admin_menu() {
    add_options_page( 'Print Configuration', 'Print Configuration', 'manage_options', 
    'print_admin_config_page', 'my_callback' );
}

function my_callback(){
    ?>
    <div class="wrap">
        <h2>Welcome To My Plugin</h2>
    </div>
    <?php
}