在常规单个产品页面的自定义选项卡中显示“相关产品”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在常规单个产品页面的自定义选项卡中显示“相关产品”相关的知识,希望对你有一定的参考价值。

在WooCommerce中,我有以下代码,用于将“相关产品”添加到自定义选项卡,并使其适用于在页面和帖子上使用短代码[product_page id="99"]的帖子。

我在functions.php中使用的代码正在运行:

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
/*
 * Register custom tab
 */
function woo_custom_product_tab( $tabs ) {

    $custom_tab = array( 
        'custom_tab' =>  array( 
            'title' => __('Custom Tab','woocommerce'), 
            'priority' => 9, 
            'callback' => 'woo_custom_product_tab_content' 
        )
    );
    return array_merge( $custom_tab, $tabs );
}
add_filter( 'woocommerce_product_tabs', 'woo_custom_product_tab' );

/*
* Place content in custom tab (related products in this sample)
*/
function woo_custom_product_tab_content() {
    global $product;
    $product->get_related();
}

现在问题是我在普通产品单页中得到一个空白标签。

如何才能使其在普通产品单页上运行?

谢谢

答案

要使其在单个产品页面上也能正常工作,您需要添加一些条件,并仅针对单个产品页面重用woocommerce_related_products()

所以你的代码现在将是:

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
/*
 * Register custom tab
 */
add_filter( 'woocommerce_product_tabs', 'woo_custom_product_tab', 20, 1 );
function woo_custom_product_tab( $tabs ) {

    $custom_tab = array( 
        'custom_tab' =>  array( 
            'title' => __('Custom Tab','woocommerce'), 
            'priority' => 9, 
            'callback' => 'woo_custom_product_tab_content' 
        )
    );
    return array_merge( $custom_tab, $tabs );
}

/*
* Place content in custom tab (related products in this sample)
*/
function woo_custom_product_tab_content() {
    global $product;
    if(!is_product())
        $product->get_related();
    else
        woocommerce_related_products();
}

这应该适用于您的产品短代码页面和一方发布,也适用于单个woocommerce普通产品页面。

代码位于活动子主题(或主题)的function.php文件中。或者也可以在任何插件php文件中。

以上是关于在常规单个产品页面的自定义选项卡中显示“相关产品”的主要内容,如果未能解决你的问题,请参考以下文章

在Woocommerce单个产品页面中显示高于产品价格的自定义字段

使用带有选项卡布局的自定义视图时无法从选项卡中删除填充

如何显示 WooCommerce 产品的自定义分类?

php 在单个产品页面上删除相关产品

在单个产品页面上增加相关产品(woocommerce)

单个产品页面上的 Woocommerce 钩子溢出