Você deve usar a função wp_ajax
ou wp_ajax_nopriv
.
Primeiro de tudo, você deve colocar o admin ajax url como o valor do atributo action no formulário de submissão.
<form id="" action="<?php echo admin_url('admin-ajax.php'); ?>" method="post" class="form" >
Dessa forma, o formulário será submetido ao admin-ajax.php por padrão (sem JavaScript). Você pode usar JavaScript para fazê-lo funcionar usando AJAX.
A seguir, a função que usará os dados enviados. Dentro do formulário, coloque um wp_nonce_field
e uma entrada oculta com a ação name. Meu valor de ação é add_transfer
.
<?php wp_nonce_field('add_transfer','security-code-here'); ?>
<input name="action" value="add_transfer" type="hidden">
Você pode colocar a função que irá manipular este formulário no arquivo functions.php ou no seu plugin. Você pode usar wp_ajax_
+ o nome da ação se este for um formulário apenas para usuários logados. Para usuários não conectados, use wp_ajax_nopriv
+ o nome da ação.
add_action('wp_ajax_add_transfer', 'process_add_transfer');
function process_add_transfer() {
if ( empty($_POST) || !wp_verify_nonce($_POST['security-code-here'],'add_transfer') ) {
echo 'You targeted the right function, but sorry, your nonce did not verify.';
die();
} else {
// do your function here
wp_redirect($redirect_url_for_non_ajax_request);
}