нет действий, когда не залогинен - PullRequest
0 голосов
/ 24 сентября 2019

Я переделываю клиентский сайт WP / WooCommerce и у меня возникают проблемы с admin-ajax действиями, когда клиент не вошел в систему.

Я не верю, что действия nopriv выполняютсяобнаружен вызовом ajax.

Если это имеет значение, клиент использует WP 4.9.11.

Я работаю на локальном хосте, не HTTPS.Если я захожу в админ, все работает как надо.Однако, когда я выхожу из системы, я всегда получаю ответ 0 при запросе /wp-admin/admin-ajax.

Я считаю, что правильно регистрирую свои действия;вот функция «получить статус корзины», которую я использую в functions.php:

// functions.php

function get_cart() {
  wp_send_json(WC()->cart->get_cart());

  wp_die();
}
add_action('wp_ajax_get_cart', 'get_cart');
add_action('wp_ajax_nopriv_get_cart', 'get_cart');

И jQuery, вызывающий ее:

// cart-actions.js

const url = `${window.SITE_GLOBALS.root}/wp-admin/admin-ajax.php`;

function onDocReady() {
  const request = {
    method: 'GET',
    url,
    data: {
      action: 'nopriv_get_cart',
    },
    dataType: 'json',
    success: cart => updateCartStatus(Object.values(cart)),
    error: err => console.log(err),
  };

  $.ajax(request);
}

$doc.ready(onDocReady);

Я пытался проверить,пользователь вошел в систему перед вызовом add_action() в functions.php, я попытался поднять вызовы add_action() в начало файла, и я попытался переименовать все, чтобы убедиться, что у меня не было опечатокгде угодно.

Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...