WP中的Ajax调用

时间:2019-02-28 11:25:21

标签: javascript php ajax wordpress

我正在创建一个按钮,用于向登录用户的分支发送电子邮件。 刚开始对此进行编码时,我需要成功发送AJAX调用,并触发AJAX对象的“成功”方法。

我读到正确的方法如下,使用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 "<div class='unique' id='mail-button' onclick='enquiry()'>
  Not sure of your prescription? Click to be contacted</div>";
}

这是我的JS:

function enquiry() {

  $.ajax({
         url: mailer_ajax.ajax_url,
         type: 'post',
         data: {
            action: 'go',
           },
        success: function () {
             document.getElementById('mail-button').innerHTML =  "Thankyou for your enquiry, an email has been sent to your branch. You will be contacted shortly";
        },

    })
};

非常感谢您提供任何见识。

1 个答案:

答案 0 :(得分:0)

经过大量的整理和重构,我的代码可以正常工作了。
我希望我确切地知道问题出在哪里,因为原则上以上似乎是正确的。 rams0610对此问题的回答提供了很大的帮助。

Using AJAX in a WordPress plugin