ID ] ) ) { unset( $viewed_products[ $keys[ $post->ID ] ] ); } $viewed_products[] = $post->ID; if ( count( $viewed_products ) > 15 ) { array_shift( $viewed_products ); } // Store for session only. wc_setcookie( 'woocommerce_recently_viewed', implode( '|', $viewed_products ) ); } remove_action( 'template_redirect', 'wc_track_product_view', 20 ); add_action( 'template_redirect', 'botiga_wc_track_product_view', 20 ); /** * Recently viewed products output */ function botiga_woocommerce_output_recently_viewed_products( $args = array() ) { global $product; if ( ! $product || ! isset( $_COOKIE['woocommerce_recently_viewed'] ) ) { return; } $enable = get_theme_mod( 'single_recently_viewed_products', 0 ); if( ! $enable ) { return; } $posts_per_page = get_theme_mod( 'shop_single_recently_viewed_products_number', 3 ); $columns = get_theme_mod( 'shop_single_recently_viewed_products_columns_number', 3 ); $slider = get_theme_mod( 'shop_single_recently_viewed_products_slider', 0 ); $slider_nav = get_theme_mod( 'shop_single_recently_viewed_products_slider_nav', 'always-show' ); $defaults = array( 'posts_per_page' => $posts_per_page, 'orderby' => apply_filters( 'botiga_recently_viewed_products_orderby', 'rand' ), 'order' => apply_filters( 'botiga_recently_viewed_products_order', 'desc' ) ); $args = wp_parse_args( $args, $defaults ); // Get visible recently viewed products then sort them at random. $args['products'] = array_filter( array_map( 'wc_get_product', explode( '|', sanitize_text_field( wp_unslash( $_COOKIE['woocommerce_recently_viewed'] ) ) ) ), 'wc_products_array_filter_visible' ); // Handle orderby. $products = array_slice( wc_products_array_orderby( $args['products'], $args['orderby'], $args['order'] ), 0, $posts_per_page ); if( count( $products ) === 0 ) { return; } ?>

'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- previously escaped echo ''; echo ''; ?>