在WP中的Ajax调用
在WP中的Ajax调用
我正在创建一个按钮,用于向已登录的用户的分支发送电子邮件。
为了开始编写此功能,我需要成功发送一个AJAX请求,触发AJAX对象的“success”方法。
我已阅读到适当的方法是如下所示,使用wp_localize()函数将admin-ajax.php文件的URL在我的JavaScript中可用。但是它不起作用。
我已经测试了enquiry()函数成功调用,所以脚本已正确地排队。
这是我的PHP插件代码:
add_action('woocommerce_after_add_to_cart_button','ajax_register_script'); function ajax_register_script() { wp_register_script('mailer-script', plugins_url('/ajax-script.js', __FILE__), array('jquery'), '1.0', true); wp_enqueue_script('mailer-script', plugins_url('/ajax-script.js', __FILE__), array('jquery'), '1.0', true); wp_localize_script( 'mailer-script', 'mailer_ajax', array( 'ajax_url' => admin_url('admin-ajax.php')) ); } add_action('woocommerce_after_add_to_cart_button', 'button_function', 45); function button_function() { echo " 不确定您的处方?点击联系"; }
这是我的JS代码:
function enquiry() { $.ajax({ url: mailer_ajax.ajax_url, type: 'post', data: { action: 'go', }, success: function () { document.getElementById('mail-button').innerHTML = "感谢您的咨询,已向您的分支发送了电子邮件。您将很快收到回复"; }, }) };
非常感谢任何指导。
在整理代码并进行了一些改进之后,我的代码终于能够正常工作了。我希望我能够知道问题到底出在哪里,因为从原理上看,上述代码应该是正确的。stackoverflow上的用户rams0610给了我很大的帮助,他在这个问题上给出了答案:Using AJAX in a WordPress plugin