2016-09-14 34 views
2

我展示这个我更新用户在荟萃行动wp_footer之前登录的用户与下面的代码,当然最近浏览过的产品:秀最近查看的产品非登录用户WordPress的

$rv = get_user_meta(get_current_user_id(), 'recently_viewed', true); 

但是,即使用户未登录,我也需要显示最近查看过的产品。有什么方法可以通过get_option()/ update_option()或其他方式来实现吗?

回答

1

我决定使用cookie显示最近查看的未登录用户的产品列表。我在下面的代码中我functions.php文件,并在单品页,我从饼干越来越ID值,并使用get_post()函数来显示信息:

function rv_products_non_logged_in(){ 
    $rv_posts = array(); 
    if (is_singular('product-items') && !is_user_logged_in()){ 
     if(isset($_COOKIE['rv_products']) && $_COOKIE['rv_products']!=''){ 
      $rv_posts = unserialize($_COOKIE['rv_products']); 
      if (! is_array($rv_posts)) { 
       $rv_posts = array(get_the_ID()); 
      }else{ 
       $rv_posts = array_diff($rv_posts, array(get_the_ID())); 
       array_unshift($rv_posts,get_the_ID()); 
      } 
     }else{ 
      $rv_posts = array(get_the_ID()); 
     } 
     setcookie('rv_products', serialize($rv_posts) ,time() + (DAY_IN_SECONDS * 31),'/'); 
    } 
} 
add_action('template_redirect', 'rv_products_non_logged_in'); 

我希望这会帮助别人!

相关问题