В файле sage_theme/app/setup.php добавьте: add_theme_support('woocommerce');
с поддержкой темы почвы.
В папке sage_theme/resources/views создайте файл woocommerce.blade.php. Добавьте в этот новый файл следующий код:
@php if ( !defined( 'ABSPATH' ) ) { exit; } @endphp
@extends( 'layouts.app' )
@section( 'content' )
@if ( is_product() ) {{-- if single product --}}
@php
/**
* woocommerce_before_main_content hook.
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
*/
do_action( 'woocommerce_before_main_content' );
@endphp
@while ( have_posts() ) @php the_post(); @endphp
@php wc_get_template_part( 'content', 'single-product' ); @endphp
@endwhile
@php
/**
* woocommerce_after_main_content hook.
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action( 'woocommerce_after_main_content' );
@endphp
@else {{-- if product archive (any) --}}
@if ( woocommerce_product_loop() )
@php
/**
* Hook: woocommerce_before_shop_loop.
*
* @hooked woocommerce_output_all_notices - 10
* @hooked woocommerce_result_count - 20
* @hooked woocommerce_catalog_ordering - 30
*/
do_action( 'woocommerce_before_shop_loop' );
woocommerce_product_loop_start();
@endphp
@if ( wc_get_loop_prop( 'total' ) )
@while ( have_posts() ) @php the_post(); @endphp
@php
/**
* Hook: woocommerce_shop_loop.
*
* @hooked WC_Structured_Data::generate_product_data() - 10
*/
do_action( 'woocommerce_shop_loop' );
wc_get_template_part( 'content', 'product' );
@endphp
@endwhile
@endif
@php
woocommerce_product_loop_end();
/**
* Hook: woocommerce_after_shop_loop.
*
* @hooked woocommerce_pagination - 10
*/
do_action( 'woocommerce_after_shop_loop' );
@endphp
@else
@php
/**
* Hook: woocommerce_no_products_found.
*
* @hooked wc_no_products_found - 10
*/
do_action( 'woocommerce_no_products_found' );
@endphp
@endif
@endif
@endsection
Создайте новую папку в папке sage_theme/resources/ с именем woocommerce. В этой папке вам понадобятся два файла: archive-product.php и single-product.php. В обоих этих файлах должно быть: <?php echo App\Template('woocommerce'); ?>
.
Теперь вы можете идти.
Весь трафик Woo будет фильтроваться через страницу sage_theme/resources/views/woocommerce.blade.php, которая затем перенаправляет его в папку sage_theme/resources/woocommerce, где вы можете перезапишите файлы шаблонов Woo, как обычно.
Если вам нужно отредактировать что-то, что обычно находится в archive-product.php или single-product.php, вы можете сделать это в sage_theme/resources/ views/woocommerce.blade.php.
В sage_theme/resources/woocommerce/archive-product.php и sage_theme/resources/woocommerce/single-product.php может быть способ вместо ссылки на отдельные файлы того же файла woocommerce.blade.php, но у меня еще не было времени попробовать его.
person
Nick Hogan
schedule
10.12.2018