Мой плагин Wordpress регистрирует обработчики POST как:
add_action('admin_post_fill_table', 'test');
add_action('admin_post_nopriv_fill_table', 'test');
function test()
{
echo 'Yes, POST handler(s) work(s)';
wp_die();
}
Этот код доступен (проверяется во время отладки).
JavaScript содержит вызывающую программу AJAX для запуска обработчика POST.
Я не показываю код JS здесь, потому что в начале выполнения admin-post.php после нажатия этой кнопки пауза со следующим значением $ _REQUEST (хорошо, Wordpress прерывает POST, но все еще не определяет, какой обработчик будет использоваться):
array (
...
'search'=> array (
'value' => '',
'regex' => 'false',
),
'action' => 'fill_table', // So, action is here!
'_' => '1572424368120',
)
Кроме того, admin_post создает полное имя обработчика - admin_post_fill_table
(так же, как написано в коде init PHP для add_action).
Тогда admin_post не может найти этот обработчик во внутреннем массивеобработчиков и ничего не происходит: - (
Что случилось?