AJAX不被称为WordPress .php文件

时间:2016-12-29 20:43:09

标签: php jquery ajax wordpress

我有一个clas和一个.php文件,

FIRST ONE,functions.php它是一个.php文件,它是我在另一个类中调用的方法。

//PHP
add_action('wp_ajax_getJSONCurrencies', 'getJSONCurrencies');
add_action('wp_ajax_nopriv_getJSONCurrencies', 'getJSONCurrencies');

function getJSONCurrencies () {
        $endpoint = $_POST['endp'];
        $access_key = $_POST['access'];
        $currencies = $_POST['curren'];
        $source = $_POST['sour'];
        $format = 1;

        // Initialize CURL:
        $ch = curl_init('https://apilayer.net/api/'.$endpoint.'?access_key='.$access_key.'&currencies='.$currencies.'&source='.$source.'&format='.$format.'');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        // Store the data:
        $json = curl_exec($ch);
        curl_close($ch);

        // Decode JSON response:
        echo json_decode($json, true);

    }

我的第二个类,custom-wc-widget ... php,我称之为我的第一个类函数。

jQuery( document.body ).bind( \'bejob_price_slider_create bejob_price_slider_slide\', function( event, min, max ) {

        var simMoneda = jQuery(\'.woocommerce-currency-switcher-form > select option:selected\').text();
        var simbolo = simMoneda.split(",");

        simMoneda = simbolo[1].trim();

        var endpoint = \'live\';
        var access_key = \'0a85b3479a1a24ceaba1d04f030e7028\';
        var currencies = \'USD,ARS,CLP,PEN,COP,MXN,PAB\';
        var source = \'EUR\';

        jQuery.ajax({
           type:\'POST\',
           url: \'ajaxurl\',
           //url: \'https://apilayer.net/api/\' + endpoint +\'?access_key=\' + access_key + \'&currencies=\' + currencies + \'&source=\' + source + \'&format=\' + 1,
           data: {
                endp: endpoint,
                access: access_key,
                curren: currencies,
                sour: source,
                action: \'getJSONCurrencies\'
            },
            dataType: "json",
            success: function(data) {
                 debugger;
               console.log(data);
            }
        });

        if ( min == 0) {
                jQuery( \'.bejob_price_slider_amount span.from\' ).html( "Gratis");

        } else {
                jQuery( \'.bejob_price_slider_amount span.from\' ).html( min + simMoneda );

        }
        jQuery( \'.bejob_price_slider_amount span.to\' ).html( max + simMoneda );

        jQuery( document.body ).trigger( \'price_slider_updated\', [ min, max ] );
    });

这第二节课有\'#39;符号,因为它在echo php中,我的想法是将ajax语句中的数据发送到我的函数 getJSONCurrencies 然后在ajax方法的成功函数中接收我的JSON对象将在我的网页上使用。

问题是,当我运行调试器时,它从未进入我的Ajax方法,我不知道它为什么不进入那里。

1 个答案:

答案 0 :(得分:0)

你怎么称呼jquery?如果您有其他功能,请编辑您的问题。

使用wp_localize_script尝试下面的代码:

add_action('wp_ajax_getJSONCurrencies', 'getJSONCurrencies');
add_action('wp_ajax_nopriv_getJSONCurrencies', 'getJSONCurrencies');

wp_enqueue_script('getJSONCurrencies', get_template_directory_uri().'/js/getJSONCurrencies.js', array('jquery'), '1.0', true );
wp_localize_script('getJSONCurrencies', 'ajax_var', array(
    'url' => admin_url('admin-ajax.php'),
    'nonce' => wp_create_nonce('ajax-nonce')
));