File "class-acf-ajax.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/advanced-custom-fields/includes/ajax/class-acf-ajax.php
File size: 2.26 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

if (!defined('ABSPATH')) {
    exit;
}
if (!class_exists('ACF_Ajax')) {
    class ACF_Ajax
    {
        var $action = '';
        var $request;
        var $public = false;
        function __construct()
        {
            $this->initialize();
            $this->add_actions();
        }
        function has($key = '')
        {
            return isset($this->request[$key]);
        }
        function get($key = '')
        {
            return isset($this->request[$key]) ? $this->request[$key] : null;
        }
        function set($key = '', $value = null)
        {
            $this->request[$key] = $value;
            return $this;
        }
        function initialize()
        {
        }
        function add_actions()
        {
            add_action("wp_ajax_{$this->action}", array($this, 'request'));
            if ($this->public) {
                add_action("wp_ajax_nopriv_{$this->action}", array($this, 'request'));
            }
        }
        function request()
        {
            $this->request = wp_unslash($_REQUEST);
            $error = $this->verify_request($this->request);
            if (is_wp_error($error)) {
                $this->send($error);
            }
            $this->send($this->get_response($this->request));
        }
        function verify_request($request)
        {
            if (!acf_verify_ajax()) {
                return new WP_Error('acf_invalid_nonce', __('Invalid nonce.', 'acf'), array('status' => 404));
            }
            return true;
        }
        function get_response($request)
        {
            return true;
        }
        function send($response)
        {
            if (is_wp_error($response)) {
                $this->send_error($response);
            } else {
                wp_send_json($response);
            }
        }
        function send_error($error)
        {
            $error_data = $error->get_error_data();
            if (is_array($error_data) && isset($error_data['status'])) {
                $status_code = $error_data['status'];
            } else {
                $status_code = 500;
            }
            wp_send_json(array('code' => $error->get_error_code(), 'message' => $error->get_error_message(), 'data' => $error->get_error_data()), $status_code);
        }
    }
}