spoilerПростите, если вопрос покажется глупым.. запутался
 
Здравствуйте, для диагностики 500 ответа ajax-запроса написал плагин-тест. 
Когда обработчик в головном файле все работает. 
Когда обработчик в файле test.php (как в примере), при локализации на admin_url( 'admin-ajax.php' ) - приходит 400 ответ
Когда обработчик в файле test.php  при локализации на  test.php (как в примере) - приходит 500 ответ
Как сделать правильно, чтобы обработка запроса была в отдельном файле ?
Три файла:
ajaxtest.php
<?php
/*
Plugin Name: ajaxtest
Plugin URI: (_*_)
Description: ajax test
Version: 1.0
Author URI: (_*_)
*/
include_once(plugin_dir_url( __FILE__ ) .'/test.php');
function js_ajaxtest(){
  wp_register_script('js_ajaxtest', plugins_url('/test.js', __FILE__));  wp_enqueue_script('js_ajaxtest');
  wp_localize_script( 'js_ajaxtest', 'ajaxurl', plugins_url('/test.php', __FILE__) );
}
add_action('wp_enqueue_scripts', 'js_ajaxtest');
add_action('admin_enqueue_scripts', 'js_ajaxtest');
function testajaxbutton(){
	$txt='<div id="ajaxtest">Тестировать аякс</div>';
	return $txt;
}
add_shortcode('testajaxbutton','testajaxbutton');
?>
test.php
<?php
function ajaxtest(){	wp_send_json('Тест удачен'); } 
add_action('wp_ajax_ajaxtest','ajaxtest');
?>
test.js
jQuery(document).ready(function(jQuery){
  jQuery(document).on('click', '#ajaxtest', function(){
    var name = 'Вася';
    jQuery.ajax({
      type: "POST",
      url: ajaxurl,
      
        data: {
            action : 'ajaxtest', 
            name : name,
            dataType: 'JSON',
            
        },
        success:function(response) {            
            jQuery( '#result' ).html( response );
            console.log(response);
        },
        error: function(xhr, textStatus, errorThrown) {
          console.log(xhr);
        }
    });
  });
});