Объединить описание продукта WooCommerce и вкладки дополнительной информации, отображающие описание последними

Aug 19 2020

Я хотел бы спросить дополнительную информацию по этой теме: как объединить вкладки «Описание» и «Дополнительная информация» в WooCommerce?

Моя единственная проблема в том, что я хочу, чтобы сначала отображалась дополнительная информация. Это скриншот:https://i.stack.imgur.com/UTIbf.png Вот ссылка на сайт: https://adisport.hu/termek/adidas-xz-torsion/

Это код, который я использовал в function.php:

// Remove Additional Info tab
add_filter('woocommerce_product_tabs', 'remove_tab_additional_info', 30);
function remove_tab_additional_info($tabs){ unset( $tabs['additional_information'] );
    return $tabs; } // Add original Additional Info tab info to the end of the_content add_filter('the_content','add_details_to_content', 10, 1); function add_details_to_content($content){
    if ( is_product() ){
        global $product; $content = '<div class="product-description">'.$content.'</div>'; ob_start(); ?><div class="product-additional-info"><?php $heading = apply_filters( 'woocommerce_product_additional_information_heading', __( 'Additional information', 'woocommerce' ) );
        if ( !empty($heading) ) { ?> <h3><?php echo esc_html( $heading ); ?></h3>
        <?php }

        do_action( 'woocommerce_product_additional_information', $product ); ?></div><?php $content .= ob_get_clean();
    }
    return $content;
}

Ответы

LoicTheAztec Aug 19 2020 at 00:12

Попробуйте следующее:

// Remove Additional Info tab
add_filter( 'woocommerce_product_tabs', 'remove_tab_additional_info', 30 );
function remove_tab_additional_info( $tabs ){ unset( $tabs['additional_information'] );
    return $tabs; } add_filter( 'the_content', 'add_additional_info_before_content' ); function add_additional_info_before_content( $content ){
    if ( is_product() ){
        global $product; ob_start(); echo '<div class="product-additional-info">'; $hook    = 'woocommerce_product_additional_information_heading';
        $heading = apply_filters( $hook, __( 'Additional information', 'woocommerce' ) );
        
        if ( !empty($heading) ) { echo '<h3>' . esc_html( $heading ) . '</h3>';
        }

        do_action( 'woocommerce_product_additional_information', $product ); echo '</div>'; $content = ob_get_clean() . '<div class="product-description">' . $content . '</div>'; } return $content;
}

Проверено и работает.

Связано: Добавить пользовательский контент в описание продукта WooCommerce