首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果用户在特定组中,则禁用单个更改。

问如果用户在特定组中,则禁用单个更改。
EN

Stack Overflow用户
提问于 2021-03-31 08:30:22
回答 1查看 226关注 0票数 1

我有一个有6个变体成员的产品(会员,会员,会员.)如果登录用户是成员组的“专门成员”,则可以启用或禁用整个产品的购买(所有变体)。

代码语言:javascript
复制
if ( user_can( $current_user, "specialmember" )) {
     return true;
     }
else {
     return true;
     }

怎么可能只禁用一个变化(成员) für这个用户组?

非常感谢你帮助一个初学者!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-31 11:01:16

通过使用这些钩子标记中的任何一个,您可以禁用特定的变体。

  1. woocommerce_available_variation
  2. woocommerce_variation_is_active

解决方案1

代码语言:javascript
复制
add_filter(
    'woocommerce_available_variation',
    function ( $data, $product, $variation ) {

        if ( 'green' === strtolower( $variation->get_attribute( 'pa_color' ) ) ) {
            $data['variation_is_active'] = false;
        }

        return $data;
    },
    10,
    3
);

解决方案2

代码语言:javascript
复制
add_filter(
    'woocommerce_variation_is_active',
    function( $data, $variation ) {
        if ( 'green' === strtolower( $variation->get_attribute( 'pa_color' ) ) ) {
            return false;
        }

        return $data;
    },
    10,
    2
);

在这两种解决方案中,我们都检查变量属性pa_color是否为green,如果是,则通过为variation active属性指定false来禁用该选项。

因此,变体将被禁用,如下图所示。

​

过滤器钩源代码

变化

活动的

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

https://stackoverflow.com/questions/66884215

复制
相关文章

相似问题

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