作为一名开发人员,我尝试开发一个基于 WooCommerce 的插件。我想在单个产品页面的 woocommerce_after_add_to_cart_button
Hook 中添加相关产品:
function custom_popup_on_add_to_cart(){
global $product;
$related_products=wc_get_related_products($product->get_id());
var_dump($related_products); // Is empty
}
add_action('woocommerce_after_add_to_cart_button','custom_popup_on_add_to_cart');
最佳答案
请注意,产品可以通过三种方式相互关联:追加销售、交叉销售或通过具有相同的标签或类别,这是“相关产品”。
参见:Set up Related Products, Up-Sells and Cross-Sells
因此,如果函数 wc_get_lated_products()
未输出相关产品 ID 数组,那是因为您需要为每个产品设置类别和标签。
在单个产品页面的“添加到购物车”按钮后有两种方法添加相关产品。
更简单的方法:
// Remove related products from their default location
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
// Add back related products in a different location
add_action('woocommerce_after_add_to_cart_button', 'woocommerce_output_related_products', 10);
或其他方式(允许更改参数):
// Remove related products from their default location
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
// Add back related products in a different location
add_action('woocommerce_after_add_to_cart_button', 'custom_output_related_products');
function custom_output_related_products() {
woocommerce_related_products( array(
'posts_per_page' => 4,
'columns' => 4,
'orderby' => 'rand', // @codingStandardsIgnoreLine.
));
}
两种方法都有效。
如果您想删除标题“相关产品”,请使用:
add_filter( 'woocommerce_product_related_products_heading', '__return_false' );
如果您想更改标题“相关产品”,请使用:
add_filter( 'woocommerce_product_related_products_heading', 'custom_related_products_heading' );
function custom_related_products_heading( $heading ) {
return __( 'Similar products', 'woocommerce' );
}
关于php - WooCommerce wc_get_lated_products 功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76938118/