我正在建立一个woocommerce网站,我需要一个产品可供客户(用户)购买,这些客户具有与产品品牌名称相同的自定义功能(品牌名称是产品属性)。通过这种方式,我可以决定哪个用户可以购买每个品牌的产品。
在线搜索我发现了一些我根据自己的需求调整的代码:
// Disable purchase based on users capabilities
function check_brand_purchase_capability( $purchasable, $product ) {
// Don't run on parents of variations,
// this will already check variations separately
if ( $product->is_type( 'variable' ) ) {
return $purchasable;
}
global $product;
$brand_name = strtolower ( $product->get_attribute( 'pa_brand' ) );
// Check if user has the capability corresponding to the brand name
if ( current_user_can( $brand_name ) ) {
$purchasable = true;
} else {
$purchasable = false;
}
// Double-check for variations: if parent is not purchasable, then variation is not
if ( $purchasable && $product->is_type( 'variation' ) ) {
$purchasable = $product->parent->is_purchasable();
}
return $purchasable;
}
add_filter( 'woocommerce_variation_is_purchasable',
'check_brand_purchase_capability', 10, 2 );
add_filter( 'woocommerce_is_purchasable', 'check_brand_purchase_capability',
10, 2 );
使用此代码,无论用户是否具有正确的功能,我都会正确启用/禁用“添加到购物车”按钮。
问题是当按钮启用并且我点击“添加到购物车”时,按钮挂起并且没有任何反应。 有谁知道为什么会这样?谢谢你的帮助