在您的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文件,但我没有还没来得及试一试。