0xsec Shell
0xSec


Server : LiteSpeed
System : Linux webbox1.ncrdns.net 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64
User : rahcos ( 1533)
PHP Version : 8.4.23
Disable Function : NONE
Directory :  /home/rahcos/.trash/wp-content/themes/hara/inc/vendors/woocommerce/modules/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/rahcos/.trash/wp-content/themes/hara/inc/vendors/woocommerce/modules/recently-viewed.php
<?php

if ( !hara_woocommerce_activated() ) return;


if (! function_exists('hara_tbay_recently_viewed_set_cookie_meta')) {
    function hara_tbay_recently_viewed_set_cookie_meta($products_list)
    {
        $user_id            = get_current_user_id();
        $meta_products_list = 'hara_recently_viewed_product_list';
        $cookie_name        = 'hara_recently_viewed_products_list';

        // if user also exists add meta with products list
        if( $user_id ) {
            update_user_meta( $user_id, $meta_products_list, $products_list );
        } else {
            // Store for session only.
            wc_setcookie( $cookie_name, implode( '|', $products_list ) );
        }
    }
}

if (! function_exists('hara_tbay_wc_track_user_get_cookie')) {
    function hara_tbay_wc_track_user_get_cookie()
    {
        $user_id            = get_current_user_id();
        $cookie_name        = 'hara_recently_viewed_products_list';
        $meta_products_list = 'hara_recently_viewed_product_list';

        if (! $user_id) {
            if ( empty( $_COOKIE[ $cookie_name ] ) ) { // @codingStandardsIgnoreLine.
                $products_list = array();
            } else {
                $products_list = wp_parse_id_list( (array) explode( '|', wp_unslash( $_COOKIE[ $cookie_name ] ) ) );
            }
        } else {
            $meta = get_user_meta($user_id, $meta_products_list, true);
            $products_list = ! empty($meta) ? $meta : array();
        }

        return $products_list;
    }
}

if (! function_exists('hara_tbay_wc_track_user_viewed_produts')) {
    function hara_tbay_wc_track_user_viewed_produts()
    {
        if ( ! is_singular( 'product' ) ) {
            return;
        }

        global $post;

        $products_list      = hara_tbay_wc_track_user_get_cookie();

        // Unset if already in viewed products list.
        $keys = array_flip( $products_list );

        if ( isset( $keys[ $post->ID ] ) ) {
            unset( $products_list[ $keys[ $post->ID ] ] );
        }

        $products_list[] = $post->ID;

        // set cookie and save meta
        hara_tbay_recently_viewed_set_cookie_meta($products_list);
    }
    add_action('template_redirect', 'hara_tbay_wc_track_user_viewed_produts', 99);
    add_action('init', 'hara_tbay_wc_track_user_viewed_produts', 99);
}

if (! function_exists('hara_tbay_get_products_recently_viewed')) {
    function hara_tbay_get_products_recently_viewed($number_post = 8)
    {
        $products_list      = hara_tbay_wc_track_user_get_cookie();

        if (empty($products_list)) {
            return '';
        }

        $products_list_value    = array_reverse(array_values($products_list));

        if ($number_post  !== -1 && count($products_list_value) > $number_post) {
            $products_list_value    = array_slice($products_list_value, 0, $number_post);
        }

        $type = 'products';
 
        $atts['ids'] = implode(',', $products_list_value);

        $shortcode = new WC_Shortcode_Products($atts, $type);

        $query = $shortcode->get_query_args();

        $query['orderby'] = 'post__in';
        $query['post__in'] = $products_list_value; 

        return $query;
    }
}

/*The list product recently viewed*/
if (! function_exists('hara_tbay_wc_get_recently_viewed')) {
    function hara_tbay_wc_get_recently_viewed()
    {
        $num_post           =   hara_tbay_get_config('max_products_recentview', 8);
            
        $args = hara_tbay_get_products_recently_viewed($num_post);
        $args = apply_filters('hara_list_recently_viewed_products_args', $args);


        $products = new WP_Query($args);

        ob_start(); ?>
                <?php while ($products->have_posts()) : $products->the_post(); ?>

                    <?php wc_get_template_part('content', 'recent-viewed'); ?>

                <?php endwhile; // end of the loop.?>

            <?php

            $content = ob_get_clean();

        wp_reset_postdata();

        return $content;
    }
}

c0oded By c0rpz