WooCommerce中wc_get_related_products函数无法正常工作求助
可能原因及对应解决方案
商品未设置有效关联关系
- 手动关联:进入商品编辑页,切换到「关联产品」标签,手动添加需要关联的商品。
- 自动关联:前往WooCommerce后台→设置→产品→显示,确认“相关产品”的数量设置不为0;同时检查当前商品的分类、标签下是否存在其他商品(自动关联默认基于同分类/同标签)。
函数参数或调用方式问题
默认的wc_get_related_products可能因商品类型或规则限制返回空,可改用产品对象的内置方法,或调整参数:function custom_popup_on_add_to_cart(){ global $product; // 校验产品对象有效性 if ( ! is_a( $product, 'WC_Product' ) ) { return; } // 使用产品对象的get_related方法获取相关商品(指定最多5个) $related_products = $product->get_related( 5 ); var_dump($related_products); } add_action('woocommerce_after_add_to_cart_button','custom_popup_on_add_to_cart');自定义关联规则(替代默认逻辑)
如果默认关联逻辑不满足需求,可手动查询同分类/同标签的商品:function custom_popup_on_add_to_cart(){ global $product; if ( ! is_a( $product, 'WC_Product' ) ) { return; } // 获取商品所属分类ID $product_cat_ids = wp_get_post_terms( $product->get_id(), 'product_cat', ['fields' => 'ids'] ); $related_products = []; if ( ! empty( $product_cat_ids ) ) { // 查询同分类下的其他商品 $related_query = new WP_Query([ 'post_type' => 'product', 'posts_per_page' => 5, 'post__not_in' => [$product->get_id()], 'tax_query' => [ [ 'taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => $product_cat_ids, ] ], 'no_found_rows' => true, // 提升查询性能 ]); $related_products = $related_query->posts; } var_dump($related_products); } add_action('woocommerce_after_add_to_cart_button','custom_popup_on_add_to_cart');
内容的提问来源于stack exchange,提问作者FERDAUS SK
相关产品推荐
相关产品推荐

