File "class-wc-order-item-meta.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/class-wc-order-item-meta.php
File
size: 4.77 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
defined('ABSPATH') || exit;
class WC_Order_Item_Meta
{
private $legacy = false;
private $item = null;
public $meta = null;
public $product = null;
public function __construct($item = array(), $product = null)
{
wc_deprecated_function('WC_Order_Item_Meta::__construct', '3.1', 'WC_Order_Item_Product');
if (!isset($item['item_meta'])) {
$this->legacy = true;
$this->meta = array_filter((array) $item);
return;
}
$this->item = $item;
$this->meta = array_filter((array) $item['item_meta']);
$this->product = $product;
}
public function display($flat = false, $return = false, $hideprefix = '_', $delimiter = ", \n")
{
$output = '';
$formatted_meta = $this->get_formatted($hideprefix);
if (!empty($formatted_meta)) {
$meta_list = array();
foreach ($formatted_meta as $meta) {
if ($flat) {
$meta_list[] = wp_kses_post($meta['label'] . ': ' . $meta['value']);
} else {
$meta_list[] = '
<dt class="variation-' . sanitize_html_class(sanitize_text_field($meta['key'])) . '">' . wp_kses_post($meta['label']) . ':</dt>
<dd class="variation-' . sanitize_html_class(sanitize_text_field($meta['key'])) . '">' . wp_kses_post(wpautop(make_clickable($meta['value']))) . '</dd>
';
}
}
if (!empty($meta_list)) {
if ($flat) {
$output .= implode($delimiter, $meta_list);
} else {
$output .= '<dl class="variation">' . implode('', $meta_list) . '</dl>';
}
}
}
$output = apply_filters('woocommerce_order_items_meta_display', $output, $this, $flat);
if ($return) {
return $output;
} else {
echo $output;
}
}
public function get_formatted($hideprefix = '_')
{
if ($this->legacy) {
return $this->get_formatted_legacy($hideprefix);
}
$formatted_meta = array();
if (!empty($this->item['item_meta_array'])) {
foreach ($this->item['item_meta_array'] as $meta_id => $meta) {
if ('' === $meta->value || is_serialized($meta->value) || !empty($hideprefix) && substr($meta->key, 0, 1) === $hideprefix) {
continue;
}
$attribute_key = urldecode(str_replace('attribute_', '', $meta->key));
$meta_value = $meta->value;
if (taxonomy_exists($attribute_key)) {
$term = get_term_by('slug', $meta_value, $attribute_key);
if (!is_wp_error($term) && is_object($term) && $term->name) {
$meta_value = $term->name;
}
}
$formatted_meta[$meta_id] = array('key' => $meta->key, 'label' => wc_attribute_label($attribute_key, $this->product), 'value' => apply_filters('woocommerce_order_item_display_meta_value', $meta_value, $meta, $this->item));
}
}
return apply_filters('woocommerce_order_items_meta_get_formatted', $formatted_meta, $this);
}
public function get_formatted_legacy($hideprefix = '_')
{
if (!is_ajax()) {
wc_deprecated_argument('WC_Order_Item_Meta::get_formatted', '2.4', 'Item Meta Data is being called with legacy arguments');
}
$formatted_meta = array();
foreach ($this->meta as $meta_key => $meta_values) {
if (empty($meta_values) || !empty($hideprefix) && substr($meta_key, 0, 1) === $hideprefix) {
continue;
}
foreach ((array) $meta_values as $meta_value) {
if (is_serialized($meta_value)) {
continue;
}
$attribute_key = urldecode(str_replace('attribute_', '', $meta_key));
if (taxonomy_exists($attribute_key)) {
$term = get_term_by('slug', $meta_value, $attribute_key);
if (!is_wp_error($term) && is_object($term) && $term->name) {
$meta_value = $term->name;
}
}
$formatted_meta_key = $meta_key;
$loop = 0;
while (isset($formatted_meta[$formatted_meta_key])) {
$loop++;
$formatted_meta_key = $meta_key . '-' . $loop;
}
$formatted_meta[$formatted_meta_key] = array('key' => $meta_key, 'label' => wc_attribute_label($attribute_key, $this->product), 'value' => apply_filters('woocommerce_order_item_display_meta_value', $meta_value, $this->meta, $this->item));
}
}
return $formatted_meta;
}
}