Проблема Ajax В плагине (Frontend)
-
Кто подскажет почему wordpress не реагирует на функцию обработчика ajax, и всегда возвращается null.
-
Покажите код отправки запроса и обработчика.
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;}
}
Тема «Проблема Ajax В плагине (Frontend)» закрыта для новых ответов.