• Что с ajax post запросом в Wordpress?

    san_jorich
    @san_jorich Автор вопроса
    Творческий кодер
    По итогам бессоной ночи:
    1) Wordpress требует локализации вашего скрипта. Его нужно "подружить" с admin-ajax.php
    wp_register_script('js_function_id', plugins_url('functions_js/js_function.js', __FILE__));
    wp_enqueue_script('js_function_id');
    wp_localize_script( 'js_function_id', 'ajaxurl', admin_url( 'admin-ajax.php' ) );

    2) На сколько я понял в Wordpress не нужно декодировать json. Во всяком случае у меня в php-обработке сработало просто присвоение POST переменной
    $my_var = $_POST['my_var'] // без всяких json_decode, stripslashes и т.д.

    3) Следите за выходным массивом. За его сбором - здесь тоже "уходит внимание". Если вы пишите одномерный массив то array_push(array, value) вполне подойдет. Но если выходит многомерная хрень с кучей ассоциативных данных (как было у меня) то с array_push в js приходят NULL. Я сформировал массив иначе:
    $data = ['surname' => $surname, 'name' => $name, 'patronymic' => $patronymic]; // и так далее

    4) Word_сука_press игнорирует echo json_decode($data); Для отправки ответа существут
    wp_send_json($data);
    И еще.. не забывайте про wp_die();

    Надеюсь мои грабли будут для кого-то полезными, чтобы не наступать на них вновь )
    Ответ написан
    Комментировать
  • Как проверить на наличие в массиве значения INPUT-a?

    TommyV888
    @TommyV888
    -
    Замените событие keyup на input. Вот тут рабочий пример.
    Ответ написан
    1 комментарий