Я бы использовал компоненту Symfony
HttpFoundation для работы с получаемыми данными.
На стороне WP – либо обработчик на init, либо как положено – с помощью
wp-admin/admin-post.php.
В принципе, можно заморочиться и использовать Form и Validator от того же Symfony. Но можно и сделать шаг назад и использовать WP-плагин для форм - Ninja Formsили другой с неободимым функционалом. Даже у ACF есть возможность делать формы на фронте (хотя и требует доработки напильником).