我们使用 WooCommerce 运行自存储系统,并使用 WooCommerce 订阅插件。我们的存储单元是具有可变订阅的独特产品。每个变体都有不同的计费周期(1 个月、3 个月、6 个月和 12 个月)。如果一个变体缺货,我需要整个父产品或至少所有变体都缺货。
我没有找到任何相关的设置,也没有找到如何实现这一点。
任何帮助表示赞赏。
我们使用 WooCommerce 运行自存储系统,并使用 WooCommerce 订阅插件。我们的存储单元是具有可变订阅的独特产品。每个变体都有不同的计费周期(1 个月、3 个月、6 个月和 12 个月)。如果一个变体缺货,我需要整个父产品或至少所有变体都缺货。
我没有找到任何相关的设置,也没有找到如何实现这一点。
任何帮助表示赞赏。
当一种变体缺货时(也适用于 WooCommerce 订阅),以下内容将使所有变体都缺货(对于特定的可变产品):
add_filter('woocommerce_available_variation', 'set_all_variations_out_of_stock', 10, 3 );
function set_all_variations_out_of_stock( $data, $product, $variation ) {
// Set the Id(s) of the related variable product(s) below in the array
if( in_array( $product->get_id(), array(738) ) ){
$out_of_stock = false; // initializing
// Loop through children variations of the parent variable product
foreach( $product->get_visible_children() as $_variation_id ) {
if( $_variation_id != $data['variation_id'] ) {
$_variation = wc_get_product($_variation_id);
if( ! $_variation->is_in_stock() ) {
$out_of_stock = true; // Flag as out of stock
break;
}
}
}
if ( $out_of_stock ) {
$data['availability_html'] = '<p class="stock out-of-stock">'. __('Out of stock', 'woocommerce') .'</p>';
$data['is_in_stock'] = false;
}
}
return $data;
}
代码在您的活动子主题(活动主题)的 function.php 文件中。测试和工作。
重要的提示:
可以在父变量产品上管理库存。
- 在可变产品上启用库存管理(在库存选项卡上)并在那里设置库存。
- 禁用此可变产品的每个变体的库存管理。
你完成了。现在对可变产品进行库存管理。