File "local-meta.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/advanced-custom-fields/includes/local-meta.php
File size: 2.84 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

if (!defined('ABSPATH')) {
    exit;
}
if (!class_exists('ACF_Local_Meta')) {
    class ACF_Local_Meta
    {
        var $meta = array();
        var $post_id = 0;
        function __construct()
        {
            add_filter('acf/pre_load_post_id', array($this, 'pre_load_post_id'), 1, 2);
            add_filter('acf/pre_load_meta', array($this, 'pre_load_meta'), 1, 2);
            add_filter('acf/pre_load_metadata', array($this, 'pre_load_metadata'), 1, 4);
        }
        function add($meta = array(), $post_id = 0, $is_main = false)
        {
            if ($this->is_request($meta)) {
                $meta = $this->capture($meta, $post_id);
            }
            $this->meta[$post_id] = $meta;
            if ($is_main) {
                $this->post_id = $post_id;
            }
            return $meta;
        }
        function is_request($meta = array())
        {
            return acf_is_field_key(key($meta));
        }
        function capture($values = array(), $post_id = 0)
        {
            $this->meta[$post_id] = array();
            add_filter('acf/pre_update_metadata', array($this, 'capture_update_metadata'), 1, 5);
            if ($values) {
                acf_update_values($values, $post_id);
            }
            remove_filter('acf/pre_update_metadata', array($this, 'capture_update_metadata'), 1, 5);
            return $this->meta[$post_id];
        }
        function capture_update_metadata($null, $post_id, $name, $value, $hidden)
        {
            $name = ($hidden ? '_' : '') . $name;
            $this->meta[$post_id][$name] = $value;
            return true;
        }
        function remove($post_id = 0)
        {
            unset($this->meta[$post_id]);
            if ($post_id === $this->post_id) {
                $this->post_id = 0;
            }
        }
        function pre_load_meta($null, $post_id)
        {
            if (isset($this->meta[$post_id])) {
                return $this->meta[$post_id];
            }
            return $null;
        }
        function pre_load_metadata($null, $post_id, $name, $hidden)
        {
            $name = ($hidden ? '_' : '') . $name;
            if (isset($this->meta[$post_id])) {
                if (isset($this->meta[$post_id][$name])) {
                    return $this->meta[$post_id][$name];
                }
                return '__return_null';
            }
            return $null;
        }
        function pre_load_post_id($null, $post_id)
        {
            if (!$post_id && $this->post_id) {
                return $this->post_id;
            }
            return $null;
        }
    }
}
function acf_setup_meta($meta = array(), $post_id = 0, $is_main = false)
{
    return acf_get_instance('ACF_Local_Meta')->add($meta, $post_id, $is_main);
}
function acf_reset_meta($post_id = 0)
{
    return acf_get_instance('ACF_Local_Meta')->remove($post_id);
}