WooCommerce 按用户角色删除购物车

Posted

技术标签:

【中文标题】WooCommerce 按用户角色删除购物车【英文标题】:WooCommerce remove shopping cart by user role 【发布时间】:2019-08-29 07:00:54 【问题描述】:

在 Woocommerce 中,我有一个功能,将添加到购物车按钮替换为商店和存档页面中产品的链接按钮:

function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) 
if ( ! current_user_can('customer') ) 
    $link = get_permalink($product_id);
    $button_text = __( "View product", "woocommerce" );
    $html = '<a href="'.$link.'" class="button alt add_to_cart_button">'.$button_text.'</a>';

return $html;

add_filter( 'woocommerce_loop_add_to_cart_link', 'conditionally_change_loop_add_to_cart_link', 10, 2 );

如果用户未作为客户登录,我想删除所有页面上的添加到购物车按钮。

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

代替您的实际代码,尝试以下将在任何地方执行所有操作并在用户未登录时删除添加到购物车按钮:

add_filter('woocommerce_is_purchasable', 'woocommerce_is_purchasable_filter_callback', 10, 2 );
function woocommerce_is_purchasable_filter_callback( $purchasable, $product ) 
    if ( ! is_user_logged_in() ) 
        $purchasable = false;

    return $purchasable;

代码进入您的活动子主题(或活动主题)的 function.php 文件中。

【讨论】:

谢谢你,但我添加这个时还有一个问题。我认为这也可以解决它,但显然这不是问题。我根据用户角色“客户”隐藏产品图像,这有效,但对于变量产品,当我选择变量时,图像会重新出现。知道如何解决这个问题吗?或者当用户不是客户时隐藏产品变体?

以上是关于WooCommerce 按用户角色删除购物车的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 中添加到购物车之前清空购物车

php [WooCommerce Core]删除WooCommerce页面上的面包屑(On Woo主题)

php [WooCommerce Core]删除WooCommerce页面上的面包屑(On Woo主题)

php [WooCommerce Core]删除WooCommerce页面上的面包屑(On Woo主题)

将 JavaScript 变量传递给 PHP,然后传递给 woo commerce 支持的电子商务网站中的购物车和订单项

php [WooCommerce Core]删除Woo主题中的面包屑(非店面)