Woocommerce后台添加cross sell、up sell时仅展示有库存商品方法咨询
WooCommerce后台交叉/向上销售搜索仅展示有库存商品实现方案
WooCommerce后台编辑商品时,交叉销售(cross sell)、向上销售(up sell)的关联商品搜索走的是AJAX查询接口,我们可以通过钩子拦截返回的产品列表,过滤掉无库存且不允许背单的商品。你之前找到的代码仅作用于前端商品页的关联商品输出环节,无法干预后台接口返回的搜索结果,下述代码专门针对后台搜索逻辑做拦截,完全匹配需求。
将以下代码添加到你的WordPress主题functions.php文件,或自定义功能插件的代码文件中即可生效:
add_filter( 'woocommerce_json_search_found_products', 'filter_backend_cross_upsell_search_instock_only' ); function filter_backend_cross_upsell_search_instock_only( $products ) { foreach ( $products as $product_id => $product_name ) { $product = wc_get_product( $product_id ); // 仅保留有库存,或允许缺货下单的商品 if ( ! $product->is_in_stock() && ! $product->backorders_allowed() ) { unset( $products[$product_id] ); } } return $products; }
该过滤会作用于所有后台WooCommerce产品AJAX搜索场景,除交叉销售、向上销售外,其他后台产品搜索框也会遵循仅展示可售商品的规则,无需额外适配。
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

