在WP中的Ajax调用

16 浏览
0 Comments

在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 =  "感谢您的咨询,已向您的分支发送了电子邮件。您将很快收到回复";
        },
    })
};

非常感谢任何指导。

0
0 Comments

在整理代码并进行了一些改进之后,我的代码终于能够正常工作了。我希望我能够知道问题到底出在哪里,因为从原理上看,上述代码应该是正确的。stackoverflow上的用户rams0610给了我很大的帮助,他在这个问题上给出了答案:Using AJAX in a WordPress plugin

0