File "abstract-wc-deprecated-hooks.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-deprecated-hooks.php
File size: 1.69 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

use Automattic\Jetpack\Constants;
if (!defined('ABSPATH')) {
    exit;
}
abstract class WC_Deprecated_Hooks
{
    protected $deprecated_hooks = array();
    protected $deprecated_version = array();
    public function __construct()
    {
        $new_hooks = array_keys($this->deprecated_hooks);
        array_walk($new_hooks, array($this, 'hook_in'));
    }
    public abstract function hook_in($hook_name);
    public function get_old_hooks($new_hook)
    {
        $old_hooks = isset($this->deprecated_hooks[$new_hook]) ? $this->deprecated_hooks[$new_hook] : array();
        $old_hooks = is_array($old_hooks) ? $old_hooks : array($old_hooks);
        return $old_hooks;
    }
    public function maybe_handle_deprecated_hook()
    {
        $new_hook = current_filter();
        $old_hooks = $this->get_old_hooks($new_hook);
        $new_callback_args = func_get_args();
        $return_value = $new_callback_args[0];
        foreach ($old_hooks as $old_hook) {
            $return_value = $this->handle_deprecated_hook($new_hook, $old_hook, $new_callback_args, $return_value);
        }
        return $return_value;
    }
    public abstract function handle_deprecated_hook($new_hook, $old_hook, $new_callback_args, $return_value);
    protected function get_deprecated_version($old_hook)
    {
        return !empty($this->deprecated_version[$old_hook]) ? $this->deprecated_version[$old_hook] : Constants::get_constant('WC_VERSION');
    }
    protected function display_notice($old_hook, $new_hook)
    {
        wc_deprecated_hook(esc_html($old_hook), esc_html($this->get_deprecated_version($old_hook)), esc_html($new_hook));
    }
    protected abstract function trigger_hook($old_hook, $new_callback_args);
}