如果没有相关产品,请删除WooCommerce自定义相关产品标签

时间:2017-09-14 16:28:22

标签: php wordpress woocommerce product related-content

在WooCommerce中我使用" WPB WooCommerce相关产品Sli​​der"和#34; WooCommerce的定制相关产品"第三方插件。

使用下面的代码我添加了一个自定义选项卡来显示相关产品:

remove_action( 'woocommerce_after_single_product_summary', 'wpb_wrps_related_products',22 );
add_filter( 'woocommerce_product_tabs', 'wpb_wrps_adding_related_products_slider_to_product_tab' );
if( !function_exists('wpb_wrps_adding_related_products_slider_to_product_tab') ){
    function wpb_wrps_adding_related_products_slider_to_product_tab( $tabs ) {
        $tabs['wpb_wrps_related_products_slider'] = array(
            'title'       => __( 'Related Products','wpb-wrps' ),
            'priority'    => 30,
            'callback'    => 'wpb_wrps_related_products'
        );
        return $tabs;
    }
}

由于我的某些产品没有相关产品,如何在有相关产品时显示此标签?

1 个答案:

答案 0 :(得分:0)

以下是获取当前产品相关产品的方法。有了这些信息,我们可以有条件地根据这个数量显示您的自定义标签:

if( !function_exists('wpb_wrps_adding_related_products_slider_to_product_tab') ){
    add_filter( 'woocommerce_product_tabs', 'wpb_wrps_adding_related_products_slider_to_product_tab' );
    function wpb_wrps_adding_related_products_slider_to_product_tab( $tabs ) {
        global $product;
        // Get the related products count
        $related_count = count( maybe_unserialize( get_option( '_transient_wc_related_'.$product->get_id() ) ) );
        // If no related products we exit
        if( empty( $related_count ) || $related_count == 0 ) return $tabs;

        $tabs['wpb_wrps_related_products_slider'] = array(
            'title'       => __( 'Related Products','wpb-wrps' ),
            'priority'    => 30,
            'callback'    => 'wpb_wrps_related_products'
        );
        return $tabs;
    }
    // Just for testing
    function wpb_wrps_related_products() {
        echo '<h3>HERE your custom related products loop (fake)</h3>';
    }
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码在Woocommerce 3+上测试并正常工作