Ajax Call в WordPress не работает для абонента на переднем сайте

у меня есть простая форма WordPress для добавления данных в пользовательскую таблицу в WordPress с помощью Ajax

мой код JQuery (код Ajax)

jQuery.ajax(ajax_object.ajax_url, {
type: "POST",
data: data,
cache: false,
success: function (response) {
alert(response);

},
error: function (error) {
if (typeof console === "object") {
console.log(error);
}
},
complete: function () {
}
});

мой php код для сохранения данных

 if(!class_exists('bookly_appo_Ajax'))
{
class bookly_appo_Ajax
{
public function __construct()
{
add_action('init', array(&$this, 'init'));
}
public function init()
{
add_action( 'wp_enqueue_scripts', 'enqueue_ajax_booklyapp' );

function enqueue_ajax_booklyapp($hook) {

wp_enqueue_script('ajax-script-booklyapp', plugins_url( '/ajax.js?v='.rand(), __FILE__ ), array('jquery'));
wp_localize_script('ajax-script-booklyapp', 'ajax_object',
array(
'ajax_url' => admin_url('admin-ajax.php')
)
);
}

add_action('wp_ajax_add_category_bookly', 'add_category_bookly_callback');
add_action('wp_ajax_nopriv_add_category_bookly', 'add_category_bookly_callback');
function add_category_bookly_callback() {
$storeid=$_REQUEST['storeid'];

$rows = $wpdb->insert(
$table_category, array(

'store_id' => $storeid,
)
);
$lastid = $wpdb->insert_id;
}
}
}
}

мой вопрос

  1. при входе с правами администратора мой Ajax работает нормально, но при входе с другими
    Пользователь (подписчик) моего сайта выдает ошибку «Opps! Вы не
    иметь достаточные разрешения для доступа к этой странице »
  2. какой тип
    доступность предоставляет подписчику используемый файл admin-ajax.php

0

Решение

Я думаю, вы не определяете действие для привилегированных и непривилегированных пользователей. У вас есть оба

add_action( 'wp_ajax_ACTION', 'bookly_appo_Ajax' );
add_action( 'wp_ajax_nopriv_ACTION', 'bookly_appo_Ajax' );

В вашем php? wp_ajax_nopriv_ACTION вероятно то, что вы упускаете.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]