首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用户再次登录WooCommerce时,从购物车中删除以前的项目

当用户再次登录WooCommerce时,从购物车中删除以前的项目
EN

Stack Overflow用户
提问于 2018-06-04 16:47:32
回答 3查看 3.2K关注 0票数 4

我有我们自己的主题的WordPress版本4.9.5,和WooCommerce作为网上商店的解决方案。

想象一下,一些用户登录到网站并在购物车中添加了一些商品。然后他退出网站,无论他是关闭网页还是注销。一段时间后(无论他是否在同一台计算机上),当同一用户访问网站(作为访客,没有登录),并在购物车中添加一些项目并去结账时,WordPress合并两个购物车(过去的项目和当前添加到购物车中的项目)。我需要删除旧项目,只保留新项目。

示例:(用户登录时购物车内容)

  • Item 1
  • Item 2

(用户为访客/注销时的购物车内容)

  • Item 3
  • Item 4

(结帐时登录后的购物车内容)

  • 项目1
  • 项目2
  • 项目3
  • 项目4

我只需要cart来保存:

  • Item 3
  • Item 4

我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-10 02:09:10

结合塞迪姆的答案和链接中的一段代码:你问题的https://gist.github.com/maxrice/7dc500cd07fa70e2fb5251293d22e485解决方案可能是这样的:

代码语言:javascript
复制
<?php
function clear_persistent_cart_after_login( $user_login, $user ) {
    $blog_id = get_current_blog_id();
    // persistent carts created in WC 3.1 and below
    if ( metadata_exists( 'user', $user->ID, '_woocommerce_persistent_cart' ) ) {
        delete_user_meta( $user->ID, '_woocommerce_persistent_cart' );
    }

    // persistent carts created in WC 3.2+
    if ( metadata_exists( 'user', $user->ID, '_woocommerce_persistent_cart_' . $blog_id ) ) {
        delete_user_meta( $user->ID, '_woocommerce_persistent_cart_' . $blog_id );
    }
}
add_action('wp_login', 'clear_persistent_cart_after_login', 10, 2);
?>
票数 5
EN

Stack Overflow用户

发布于 2019-11-25 04:19:08

试试这个:

代码语言:javascript
复制
add_filter( 'woocommerce_persistent_cart_enabled', '__return_false' );

我测试了它,它对我来说是有效的。我希望它能帮助你!

票数 3
EN

Stack Overflow用户

发布于 2018-06-05 17:50:50

  1. 如果您想要在检测到登录时清除购物车,请将以下代码添加到函数文件中。
  2. 如果您想要为woocomerce expiration

设置常规过期时间,请使用下面的链接

https://www.tmdhosting.com/kb/question/how-to-set-cart-expiration-in-woocommerce/

如果这有帮助,请让我知道,不要忘记将其标记为答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50676645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档