我有一个简单的ajax脚本,可以在WordPress中发送表单。
获取ajax URL的PHP代码是:
wp_localize_script( \'custom_child\', \'jAjax\', array(\'ajax_url\'
=>admin_url(\'admin-ajax.php\')));
此外,我还有in函数。php如下所示:
function enviar_pedido_clientes() {
// do something with the data to send an email
wp_mail( $to, $subject, $message, $headers );
die();
}
add_action( \'admin_ajax_nopriv_pedido_clientes\', \'enviar_pedido_clientes\' );
add_action( \'admin_ajax_pedido_clientes\', \'enviar_pedido_clientes\' );
最后,在我的。js公司:
$(\'#enviar_fotos\').on(\'click\', function(event) {
event.preventDefault();
/* Act on the event */
data = {
\'action\': \'pedido_clientes\',
\'nombreCliente\': \'pedro\', // that\'s how we get params from wp_localize_script() function
\'emailCliente\' : \'[email protected]\'
};
$.ajax({
url: jAjax.ajax_url, // URL to "wp-admin/admin-ajax.php"
data: data,
method: "POST", // use $_POST request to submit data
// success:function( data ) {
// $( \'#probando\' ).html( data );
// },
error: function(){
console.log(\'Ha habido un error\'); // error
}
});
});
我浏览了很多帖子,试图找到错误,但我找不到。
最合适的回答,由SO网友:Sally CJ 整理而成
挂钩前缀错误—应该是这样的wp_
而不是admin_
:
add_action( \'admin_ajax_nopriv_pedido_clientes\', \'enviar_pedido_clientes\' );
add_action( \'admin_ajax_pedido_clientes\', \'enviar_pedido_clientes\' );
因此,正确的代码是:
add_action( \'wp_ajax_nopriv_pedido_clientes\', \'enviar_pedido_clientes\' );
add_action( \'wp_ajax_pedido_clientes\', \'enviar_pedido_clientes\' );