• Кто подскажет почему wordpress не реагирует на функцию обработчика ajax, и всегда возвращается null.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Покажите код отправки запроса и обработчика.

    class RazClickTrackerFront{

    function __construct() {

    add_action(‘wp_ajax_raz_click_tracker_ajax’, array( &$this, ‘raz_click_tracker_ajax’ ));
    add_action(‘wp_ajax_nopriv_raz_click_tracker_ajax’, array( &$this, ‘raz_click_tracker_ajax’ ));

    add_action( ‘init’, array( &$this, ‘raz_click_tracker_front_script’ ) );

    }

    public function raz_click_tracker_front_script(){

    $jquery_js = WP_PLUGIN_URL . ‘/click_tracker/front/js/jquery.js’;
    $jquery_js_dir = WP_PLUGIN_DIR . ‘/click_tracker/front/js/jquery.js’;
    if ( file_exists($jquery_js_dir) ) {
    wp_register_script(‘click_tracker_jquery_js’, $jquery_js);
    wp_enqueue_script( ‘click_tracker_jquery_js’);
    }
    wp_localize_script(‘click_tracker_jquery_js’, ‘click_tracker_jquery_js_data’);

    $raz_style_file = WP_PLUGIN_URL . ‘/click_tracker/front/js/raz_click_tracker_ajax.js’;
    $raz_style_file_dir = WP_PLUGIN_DIR . ‘/click_tracker/front/js/raz_click_tracker_ajax.js’;

    if ( file_exists($raz_style_file_dir) ) {
    wp_register_script(‘click_tracker_js_front’, $raz_style_file);
    wp_enqueue_script( ‘click_tracker_js_front’);
    }
    wp_localize_script(‘click_tracker_js_front’, ‘raz_click_tracker_ajax_data’,
    array(
    ‘url’ => plugins_url().’/click_tracker/front/click_tracker_front.php’,
    ‘nonce’ => wp_create_nonce(‘raz_click_tracker_nonce’),
    ‘action’ => ‘click_action’
    )
    );

    }

    public function raz_click_tracker_ajax(){

    if ( ! isset( $_REQUEST[‘nonce’] ) || ! wp_verify_nonce( $_REQUEST[‘nonce’], ‘raz_click_tracker_nonce’ ) )
    die ( ‘Invalid Nonce’ );
    header( «Content-Type: application/json» );
    echo json_encode(array(‘data’=>'<h1 style=»color:red;font-size: 70px;»>’.$_POST[‘field’].’ no isset</h1>’));
    exit;

    }

    }

    console.log(window.raz_click_tracker_ajax_data);
    jQuery(document).ready(function(){
    jQuery(‘img’).bind(‘click’,function(){
    console.log(window.raz_click_tracker_ajax_data);
    jQuery.ajax({
    type: ‘GET’,
    url: window.raz_click_tracker_ajax_data.url,
    dataType: ‘json’,
    data: {
    // action : ‘raz_click_tracker_ajax’,
    // nonce: window.raz_click_tracker_ajax_data.nonce,
    field: ‘test’
    },
    error: function(data) {
    console.log(data.responseText);
    },
    success: function(response){
    console.log(response);
    jQuery(‘body’).append(response);
    }
    });
    });
    });

    А это на главном файле,
    require_once ‘back/click_tracker_back.php’;
    //require_once ‘back/raz_click_tracker_ajax.php’;
    require_once ‘front/click_tracker_front.php’;

    add_action(‘admin_menu’, ‘raz_click_tracker_admin_page’);
    add_action(‘init’, ‘raz_click_tracker’);

    //add_action(‘wp_head’, ‘raz_click_tracker_front_script’);

    $RazClickTrackerFront = new RazClickTrackerFront();

    извените первый код не то отправил

    class RazClickTrackerFront{

    function __construct() {

    add_action(‘wp_ajax_click_action’, array( &$this, ‘raz_click_tracker_ajax’ ));
    add_action(‘wp_ajax_click_action’, array( &$this, ‘raz_click_tracker_ajax’ ));

    add_action( ‘init’, array( &$this, ‘raz_click_tracker_front_script’ ) );

    }

    public function raz_click_tracker_front_script(){

    $jquery_js = WP_PLUGIN_URL . ‘/click_tracker/front/js/jquery.js’;
    $jquery_js_dir = WP_PLUGIN_DIR . ‘/click_tracker/front/js/jquery.js’;
    if ( file_exists($jquery_js_dir) ) {
    wp_register_script(‘click_tracker_jquery_js’, $jquery_js);
    wp_enqueue_script( ‘click_tracker_jquery_js’);
    }
    wp_localize_script(‘click_tracker_jquery_js’, ‘click_tracker_jquery_js_data’,array());

    $raz_style_file = WP_PLUGIN_URL . ‘/click_tracker/front/js/raz_click_tracker_ajax.js’;
    $raz_style_file_dir = WP_PLUGIN_DIR . ‘/click_tracker/front/js/raz_click_tracker_ajax.js’;

    if ( file_exists($raz_style_file_dir) ) {
    wp_register_script(‘click_tracker_js_front’, $raz_style_file);
    wp_enqueue_script( ‘click_tracker_js_front’);
    }
    wp_localize_script(‘click_tracker_js_front’, ‘raz_click_tracker_ajax_data’,
    array(
    ‘url’ => plugins_url().’/click_tracker/front/click_tracker_front.php’,
    ‘nonce’ => wp_create_nonce(‘raz_click_tracker_nonce’),
    ‘action’ => ‘click_action’
    )
    );

    }

    public function raz_click_tracker_ajax(){

    if ( ! isset( $_REQUEST[‘nonce’] ) || ! wp_verify_nonce( $_REQUEST[‘nonce’], ‘raz_click_tracker_nonce’ ) )
    die ( ‘Invalid Nonce’ );
    header( «Content-Type: application/json» );
    echo json_encode(array(‘data’=>'<h1 style=»color:red;font-size: 70px;»>’.$_POST[‘field’].’ no isset</h1>’));
    exit;

    }

    }

Просмотр 5 ответов — с 1 по 5 (всего 5)

Тема «Проблема Ajax В плагине (Frontend)» закрыта для новых ответов.