File "class-wc-widget-recently-viewed.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/widgets/class-wc-widget-recently-viewed.php
File size: 2.54 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

defined('ABSPATH') || exit;
class WC_Widget_Recently_Viewed extends WC_Widget
{
    public function __construct()
    {
        $this->widget_cssclass = 'woocommerce widget_recently_viewed_products';
        $this->widget_description = __("Display a list of a customer's recently viewed products.", 'woocommerce');
        $this->widget_id = 'woocommerce_recently_viewed_products';
        $this->widget_name = __('Recently Viewed Products list', 'woocommerce');
        $this->settings = array('title' => array('type' => 'text', 'std' => __('Recently Viewed Products', 'woocommerce'), 'label' => __('Title', 'woocommerce')), 'number' => array('type' => 'number', 'step' => 1, 'min' => 1, 'max' => 15, 'std' => 10, 'label' => __('Number of products to show', 'woocommerce')));
        parent::__construct();
    }
    public function widget($args, $instance)
    {
        $viewed_products = !empty($_COOKIE['woocommerce_recently_viewed']) ? (array) explode('|', wp_unslash($_COOKIE['woocommerce_recently_viewed'])) : array();
        $viewed_products = array_reverse(array_filter(array_map('absint', $viewed_products)));
        if (empty($viewed_products)) {
            return;
        }
        ob_start();
        $number = !empty($instance['number']) ? absint($instance['number']) : $this->settings['number']['std'];
        $query_args = array('posts_per_page' => $number, 'no_found_rows' => 1, 'post_status' => 'publish', 'post_type' => 'product', 'post__in' => $viewed_products, 'orderby' => 'post__in');
        if ('yes' === get_option('woocommerce_hide_out_of_stock_items')) {
            $query_args['tax_query'] = array(array('taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'outofstock', 'operator' => 'NOT IN'));
        }
        $r = new WP_Query(apply_filters('woocommerce_recently_viewed_products_widget_query_args', $query_args));
        if ($r->have_posts()) {
            $this->widget_start($args, $instance);
            echo wp_kses_post(apply_filters('woocommerce_before_widget_product_list', '<ul class="product_list_widget">'));
            $template_args = array('widget_id' => isset($args['widget_id']) ? $args['widget_id'] : $this->widget_id);
            while ($r->have_posts()) {
                $r->the_post();
                wc_get_template('content-widget-product.php', $template_args);
            }
            echo wp_kses_post(apply_filters('woocommerce_after_widget_product_list', '</ul>'));
            $this->widget_end($args);
        }
        wp_reset_postdata();
        $content = ob_get_clean();
        echo $content;
    }
}