merge tabs in woocommerce

时间:2019-03-13 作者:LovinQuaQua

我合并了描述和附加信息选项卡。其他信息内容显示在“说明”选项卡中。

它工作正常,但来自其他信息的内容显示在描述内容的上方。我不明白为什么。。。

add_filter( \'the_content\', \'customizing_woocommerce_description\' );
function customizing_woocommerce_description( $content ) {

    // get attributes
    global $product;
    $attributes = do_action( \'woocommerce_product_additional_information\', $product );


    // Only for single product pages (woocommerce)
    if ( is_product() ) {

        // The custom content
        $custom_content = $attributes;

        // Inserting the custom content at the end
        $content .= $custom_content;
    }
    return $content;
}



// Manipulating product tabs
add_filter(\'woocommerce_product_tabs\', \'change_product_tab\', 98);
function change_product_tab($tabs){
    global $product;

    // Remove tabs
    unset($tabs[\'additional_information\']);

    return $tabs;
}

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

附加信息的内容显示在描述内容的上方

因为下面的代码调用wc_display_product_attributes() 显示“附加信息”选项卡的默认内容:

do_action( \'woocommerce_product_additional_information\', $product );
要修复它,可以打开输出缓冲,运行do_action() 然后使用ob_get_clean():

function customizing_woocommerce_description( $content ) {

    // get attributes
    global $product;

    // Only for single product pages (woocommerce)
    if ( is_product() ) {

        // The custom content
        ob_start();
        do_action( \'woocommerce_product_additional_information\', $product );
        $custom_content = ob_get_clean();

        // Inserting the custom content at the end
        $content .= $custom_content;
    }

    return $content;
}

相关推荐