如何通过add_to_cart将WooCommerce私有商品加入购物车?
解决WooCommerce私有商品无法通过代码加入购物车的问题
WooCommerce默认限制私有商品的购买权限,所以直接调用WC()->cart->add_to_cart($product_id)无法将私有商品加入购物车。要在保持商品私有状态的前提下实现需求,需要先通过钩子解除权限限制,再执行添加操作。
步骤1:添加权限解除钩子
将以下代码添加到主题的functions.php文件或自定义插件中:
// 允许私有商品被加入购物车 add_filter( 'woocommerce_is_purchasable', 'allow_private_products_purchasable', 10, 2 ); function allow_private_products_purchasable( $purchasable, $product ) { if ( $product->is_private() ) { $purchasable = true; } return $purchasable; } // 针对商品变体,解除私有商品的购买限制 add_filter( 'woocommerce_variation_is_purchasable', 'allow_private_variations_purchasable', 10, 2 ); function allow_private_variations_purchasable( $purchasable, $variation ) { if ( $variation->is_private() ) { $purchasable = true; } return $purchasable; }
步骤2:执行添加购物车操作
添加完钩子后,再调用原有代码即可成功将私有商品加入购物车:
$product_id = 1234; WC()->cart->add_to_cart($product_id);
这段代码仅修改WooCommerce的可购买规则,不会改变商品的私有状态,商品依然对外隐藏。
内容的提问来源于stack exchange,提问作者matead
相关产品推荐
相关产品推荐

