WP wp_ajax_function не вызывает функцию PHP - PullRequest
1 голос
/ 17 июня 2019

Я создаю плагин wordpress для уведомления о файлах cookie, я хочу, чтобы файлы cookie создавались с помощью PHP.И кнопка на панели уведомлений должна запускать функцию php, ajax на самом деле не работает со мной прямо сейчас.

Насколько мне известно, мой запрос ajax обрабатывается, на вкладке сети он показывает администратора-ajax.php со статусом 200, но он просто не будет вызывать саму функцию.

это мой код

Основной файл плагина

function setAjaxCallbacks(){

add_action('wp_ajax_accepted', 'accepted');
add_action('wp_ajax_nopriv_accepted', 'accepted');

}

add_action('init', 'setAjaxCallbacks');


function accepted(){

    die('test');
    echo 'LOLALLES';
    global $wpdb;
    $whatever = intval( $_POST['whatever'] );
    $whatever += 10;
    echo $whatever;
    wp_die('0 ', 400);

    echo '<script>
        alert("jhwgvbht ij")
    </script>';
    wp_die();
}

isset($_COOKIE['cookieBar']) or setCookieBar();

function setCookieBar()
{
    if (!is_admin()){

        add_action('wp_enqueue_scripts', 'enqueue_script_custom');

        function enqueue_script_custom()
        {
            wp_enqueue_style('CookieBarStyle', plugin_dir_url(__FILE__) . 'css/styles.css');
            wp_enqueue_script('ajax-script', plugins_url('/js/my_query.js', __FILE__), array('jquery'));
            wp_localize_script('ajax-script', 'ajax_object',
                array('ajaxurl2' => 'https://wordpressjip.jmulder.dt2/wp-admin/admin-ajax.php', 'we_value' => 1234));

            wp_print_scripts('ajax-script');
        }
        ?>

        <div class="cookieBar" id="cookieBar" style="display: block">
            <p align="center"></p>

            <button id="submitCookies" class="submitCookies" name="accepted">Accepteer</button>
        </div>
    <?php
    }
}

my_query.js

jQuery(document).ready(function ($) {
jQuery(".submitCookies").click(function (event) {
    event.preventDefault();

    jQuery.ajax({
        url: ajax_object.ajaxurl2,
        type: 'POST',
        data: {
            action: 'accepted',
            whatever: 1234
        },
        succes: function (response) {
            return response;
        }
    })
})
});

1 Ответ

0 голосов
/ 17 июня 2019

Функция с именем «принято» находится внутри другой функции, поэтому она не работает.Вам нужно узнать, как работает Ajax в WordPress.Пожалуйста, перейдите по следующей ссылке.Он научит вас, как использовать Ajax в WordPress https://medium.com/techcompose/how-to-use-ajax-precisely-in-wordpress-custom-themes-dc61616720a8

Следующий код может помочь вам:

<?php

function setAjaxCallbacks()
{
    add_action('wp_ajax_accepted', 'accepted');
    add_action('wp_ajax_nopriv_accepted', 'accepted');
}

add_action('init', 'setAjaxCallbacks');


function accepted()
{
    echo 'LOLALLES';
    global $wpdb;
    $whatever = intval($_POST['whatever']);
    $whatever += 10;
    echo $whatever;
    exit;
}

add_action('wp_enqueue_scripts', 'enqueue_script_custom');

function enqueue_script_custom()
{
    wp_enqueue_style('CookieBarStyle', plugin_dir_url(__FILE__) . 'css/styles.css');
    wp_enqueue_script('ajax-script', plugins_url('/js/my_query.js', __FILE__), array('jquery'));
    wp_localize_script(
        'ajax-script',
        'ajax_object',
        array('ajaxurl2' => 'https://wordpressjip.jmulder.dt2/wp-admin/admin-ajax.php', 'we_value' => 1234)
    );

    wp_print_scripts('ajax-script');
}


function setCookieBar()
{
    if (!is_admin()) {
        if (! isset($_COOKIE['cookieBar'])) {
            ?>

        <div class="cookieBar" id="cookieBar" style="display: block">
            <p align="center"></p>

            <button id="submitCookies" class="submitCookies" name="accepted">Accepteer</button>
        </div>
    <?php
        }
    }
}

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