admin-ajax.php找不到已经定义的ajax动作

I had come to the point where I have to ask for your help here.

There is a section on the admin-ajax.php code that checks for you registed ajax action. But for some reason my action is not found when the Ajax request is trigger. But if I check the action within my code is there. This the code section that checks for the valid action.

if ( ! has_action( 'wp_ajax_' . $_REQUEST['action'] ) )

And this is a code section from the file admin-ajax.php of WordPress:

if ( is_user_logged_in() ) {
    // If no action is registered, return a Bad Request response.
    if ( ! has_action( 'wp_ajax_' . $_REQUEST['action'] ) ) {
        wp_die( '0', 400 );
    }

    /**
     * Fires authenticated Ajax actions for logged-in users.
     *
     * The dynamic portion of the hook name, `$_REQUEST['action']`,
     * refers to the name of the Ajax action callback being fired.
     *
     * @since 2.1.0
     */
    do_action( 'wp_ajax_' . $_REQUEST['action'] );
} else {
    // If no action is registered, return a Bad Request response.
    if ( ! has_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ) ) {
        wp_die( '0', 400 );
    }

    /**
     * Fires non-authenticated Ajax actions for logged-out users.
     *
     * The dynamic portion of the hook name, `$_REQUEST['action']`,
     * refers to the name of the Ajax action callback being fired.
     *
     * @since 2.8.0
     */
    do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
}

You can take at the full code here:

https://github.com/WordPress/WordPress/blob/master/wp-admin/admin-ajax.php#L155

Thanks in advance with your help to lightning things out.

For anyone else stopping by. I found my answer after a lot of debugging and testing. The action was registered in an inherited class and therefore by the time the code need it it was not present. So after calling the method that was registering the action in the Parent Constructor all started to work.