Страница магазина WooCommerce для использования моего пользовательского шаблона [закрыто]

9

Прежде чем задать вопрос, я хочу сказать вам, что я уже задавал вопрос в /programming/15025213/wordpress-woocommerce-template-file-overiding

Я использую плагин WooCommerce для разработки веб-сайта. Все хорошо с WooCommerce. В соответствии с моим требованием я настроил свою домашнюю страницу как базовую страницу магазина на панели инструментов WooCommerce, чтобы сделать мою домашнюю страницу страницей магазина. Теперь мое требование - разместить несколько изображений, которые должны быть загружены со стороны администратора, и показать текст поверх изображений. Для этой функции я искал в Google, и некоторые люди предложили использовать расширенные настраиваемые поля WordPress . Я только что установил его.

Теперь я увидел, что WooCommerce не использует мою собственную тему. Он использует свою собственную тему. Поскольку я хочу показывать изображения и текст с помощью плагина Advanced Custom Fields , мне действительно нужен собственный шаблон для использования запросов к изображениям и тексту. Тогда я снова искал через Google для решения , и я получил предложение , чтобы просто сделать копию ТЕМЫ page.phpв , woocommerce.phpа затем просто заменить код:

     <?php while ( have_posts() ) : the_post(); ?>

      <?php get_template_part( 'content', 'page' ); ?>

      <?php comments_template( '', true ); ?>

    <?php endwhile; // end of the loop. ?>

с

<?php woocommerce_content(); ?>

Я сделал это, но все еще не получаю свои настраиваемые поля из Advanced Custom Fields . Пожалуйста, помогите мне. Любые предложения и помощь будут заметны. Спасибо.

Мой код для отображения расширенных пользовательских полей для изображения и текста выглядит следующим образом:

<?php $product_tab_banner = get_field('product_tab_banner');
    if($product_tab_banner): ?>
   <?php var_dump($product_tab_banner); ?>
    <div class="nt-highlighted-products">
    <img src="<?php echo $product_tab_banner['url']; ?>" alt="<?php echo $product_tab_banner['alt']; ?>"  width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>" height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>" title="<?php echo $product_tab_banner['title']; ?>" />
    </div>
  <?php endif; ?>

Я использую тему WordPress TwentyEleven.

Новый пользователь
источник
Может быть, в документации WC есть какие-то подсказки.
brasofilo
@brasofilo Я искал документацию, но не получил никакой подсказки ...
NewUser
Проверьте, помогает ли это .
brasofilo
да, я пробовал это, но это показывает, как этоFatal error: Cannot redeclare show_template() (previously declared
NewUser
Произошла ошибка с именем функции, просто исправили ее.
brasofilo

Ответы:

5

Проанализировав ваш вопрос, я хочу сказать, что woocommerce не будет использовать ваш пользовательский шаблон. Он будет использовать свой собственный шаблон. Поскольку вы хотите использовать плагин для расширенных пользовательских полей Wordpress, я хочу вам сказать, что эта функция работает только на странице и в публикации. Так как woocommerce не позволит использовать ваш собственный шаблон, вы не сможете использовать расширенные функции пользовательских полей.

Теперь просто сделайте что-то другое. Просто сделайте свой собственный шаблон, где вы хотите показать свои продукты. Тогда просто зайдите на сайт http://docs.woothemes.com/document/woocommerce-shortcodes/ Здесь вы можете увидеть шорткоды для woocommerce . Где вы можете легко показать практически все продукты с вашей собственной настройкой. Теперь используйте эти шорткоды, чтобы показать продукты. Здесь вы добились того, что woocommerce использует ваш собственный шаблон. Теперь, поскольку это ваш собственный шаблон, вы можете легко использовать расширенные настраиваемые поля с этим. Это понятно? Если что-то не понятно, ответь мне. Надеюсь, что это поможет вам.

user159377
источник
11

Я не совсем уверен, правильно ли я понимаю вашу проблему, но вот моя попытка воспроизвести ее.

Сначала рассмотрим эту часть документации WooCommerce :

Если вы хотите отредактировать один из этих шаблонов, просто скопируйте его в каталог с именем вашей темы /woocommerce, сохраняя ту же структуру файлов, например, перейдите /templates/cart/cart.phpв themename/woocommerce/cart/cart.php. Скопированный файл теперь будет переопределять файл шаблона WooCommerce по умолчанию.

Во-вторых , это шаги репликации:

  • Использование WP 3.5.1, TwentyEleven 1.5, WooCommerce 1.6.6 и AdvancedCustomFields 4.0.0
  • Установите страницу "Магазин" в качестве статической главной страницы в Настройках чтения ( /wp-admin/options-reading.php)
  • Установите группу полей ACF, которая содержит поле изображения ( product_tab_banner), с возвращаемым значением в качестве «объекта изображения» и должно отображаться в типе записи «Продукт»

Решение :

  • Создайте следующую папку: /wp-content/twentyeleven/woocommerce/
  • Скопируйте файл: /wp-content/plugins/woocommerce/templates/content-product.php в эту вновь созданную папку
  • Поместите свой код в эту копию content-product.php
$product_tab_banner = get_field('product_tab_banner');
if($product_tab_banner): ?>
    <div class="nt-highlighted-products">
    <img src="<?php echo $product_tab_banner['url']; ?>" 
        alt="<?php echo $product_tab_banner['alt']; ?>"  
        width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>" 
        height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>" 
        title="<?php echo $product_tab_banner['title']; ?>" />
    </div>
<?php endif; ?>

Вот страница продукта:

страница продукта
нажмите, чтобы увеличить

И вот результат на сайте:

результат сайта


Если вы хотите настроить страницу «Магазин», скопируйте файл /wp-content/plugins/woocommerce/templates/archive-product.phpв /woocommerce/папку вашей темы .

brasofilo
источник
-2

Пожалуйста, попробуйте заменить используемый вами плагин на официальные расширения WooCommerce, такие как «Дополнения к продукту» ( http://www.woothemes.com/products/product-add-ons/ ).

коробка
источник
вы правильно прочитали мои вопросы?
NewUser
1
Я делаю. Хотя вам может понадобиться некоторое время, чтобы понять мой ответ.
Коробка