Я пытаюсь перезаписать файлы шаблонов Woocommerce новым WordPress Sage. Моя проблема в том, что новая версия Sage с расширением blade-сервера не распознает старые файлы шаблонов Woocommerce.
Раньше я копировал шаблоны Woocommerce в папку с темой, чтобы перезаписывать шаблоны, которые всегда работали, но после выхода нового Sage 9 это больше не работает.
Это версия Sage, которую я использую: https://github.com/roots/sage (9)
Это версия Woocommerce, которую я использую: https://github.com/woocommerce/woocommerce (3.3.4)
Ты можешь проверить https://github.com/mtx-z/Sage9-Woocommerce-Integration, до Sage 9.0.1, Woocommerce 3.4.3 (это моё).
Я использую его для использования функций Sage с темой, совместимой с Woocommerce.
Во-первых, попробуйте положить его в resources/woocommerce
,
Если это не сработает, вам может потребоваться вручную зарегистрировать путь к шаблону с лопасть:
Добавьте следующий код в Приложение / filters.php и обновите его, указав путь к WooCommerce (resources/views/woocommerce/{your-template}.php
) соответственно.
Комплименты @mmirus в Корни форумов по схожему вопросу я разместил там.
Отказ от ответственности: Я еще не проверял это и буду на этой неделе. Но теория регистрации его в Blade верна.
Полезные ссылки по теме:
В вашем sage_theme / приложение / setup.php добавление файла:
add_theme_support('woocommerce');
с вашей почвой тема поддерживает.
В вашем sage_theme / ресурсы / виды папка создать 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 / ресурсы / папка называется WooCommerce. В этой папке вам нужно два файла, архив-product.php а также одного product.php. Оба этих файла должны иметь: <?php echo App\Template('woocommerce'); ?>
в них.
Теперь ты в порядке.
Весь трафик Woo будет проходить через sage_theme / ресурсы / виды / woocommerce.blade.php страница, которая затем подталкивает их к sage_theme / ресурсы / WooCommerce папка, в которой вы можете перезаписать файлы шаблона Woo, как обычно.
Если вам нужно отредактировать что-то, что обычно находится в архив-product.php или же одного product.php вы будете делать это в sage_theme / ресурсы / виды / woocommerce.blade.php файл.
Там может быть способ, в sage_theme / ресурсы / WooCommerce / архив-product.php а также sage_theme / ресурсы / WooCommerce / одного product.php ссылаться на отдельные файлы вместо того же woocommerce.blade.php файл, но я еще не успел его опробовать.