wordpress 当变化数量(可变产品)很大时,“从目录中隐藏缺货项目”在WooCommerce中不起作用

fiei3ece  于 2023-02-15  发布在  WordPress
关注(0)|答案(1)|浏览(163)

在WooCommerce中,有一个选项可以在产品缺货时使用WooCommerce设置页面中的"从目录中隐藏缺货项目"复选框来隐藏产品。只要变化的数量在一定的限制范围内,它就可以很好地工作,如果变化超过限制,它不会隐藏它。
我观察到,当变异数为24时,它对一个产品很有效。但当我将变异数改为48时,它就停止工作了。尽管我不知道超过它就停止工作的确切上限。
例如,我有一个产品变体"颜色=红色"和"尺寸= 34B"。如果该产品缺货,那么当用户在单个产品页面中选择"红色"颜色时,尺寸34B应被禁用/交叉标记。当变体数量为24时,会发生这种情况。但当我将变体数量更改为48时,它不起作用。当用户选择"红色"和"34B"时,然后显示"缺货"。
这是WooCommerce插件方面的问题吗?有任何挂钩来避免这种限制吗?
WordPress版本--〉6.0.3
WooCommerce版本--〉版本7.1.1
谢谢!!!
注:还观察到以下事件用于禁用/交叉标记/隐藏变化,但在变化较大时不起作用:

$( ".variations_form" ).on( "woocommerce_variation_has_changed", function () {...});
8xiog9wr

8xiog9wr1#

您可以使用woocommerce_product_query钩子来防止缺货产品将从目录中隐藏。

function hide_out_of_stock_products( $q ) {
    $meta_query = $q->get( 'meta_query' );
    $meta_query[] = array(
        'key'     => '_stock_status',
        'value'   => 'outofstock',
        'compare' => '='
    );
    $q->set( 'meta_query', $meta_query );
}
add_action( 'woocommerce_product_query', 'hide_out_of_stock_products' );

相关问题