Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
woocommerce
/
includes
/
widgets
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?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; } }