分享笔记:

限制访客查看价格后无法添加产品到购物车

未登录的用户无法加产品到购物车里

文章目录

一个客户说她网站上的访客(没在网站上登录的用户)无法添加任何产品到购物车上,显示无库存。

woocommerce无法添加产品到购物车

由于这个网站不是我做的,她只是找我做网站维护而已,所以看到这个问题时,我的第一反应是用了什么插件,看了下后并没有找到什么。竟然不是插件的问题,那就剩下代码了,最后在主题编辑器里面的 functions.php 找到了对于的设置。

解决方法

woocommerce无法添加产品到购物车

上面的php代码是对访问者隐藏产品价格的,只有登录后才会显示对应价格。

隐藏价格完全没问题,不过使用的方式不对。使用的 woocommerce_is_purchasable 过滤器影响了产品的购买能力,设置false来针对未注册用户时,也阻止了他们将产品添加到购物车的权限,WooCommerce会将产品视为不可购买的。

居然找到了问题,那么修改这代码就行了。

add_filter( 'woocommerce_variable_sale_price_html', 'update_price_html', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'update_price_html', 10, 2 );
add_filter( 'woocommerce_get_price_html','update_price_html', 999, 2 );

function update_price_html( $price_html, $product ) {

    if( !is_user_logged_in() ) {  // 如果用户未登录
        $price_html = "需要登录才能查看价格";
    }
    
    return $price_html;
}

我这就是单纯修改价格的HTML,而不干预产品的购买能力。

这段代码会修改未注册用户看到的价格HTML,将实际价格替换为显示消息“需要登录才能查看价格”,但不会影响产品的购买能力。用户可以将产品添加到购物车并正常购买,但在没登录时不会看到价格。

为笔记评分

平均评分 0 / 5. 摘星者: 0

有疑问?留个言吧!

更多结果...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

更多结果...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors