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

23 февр. 2013 г., 10:42:24
Просмотры: 143K
Голосов: 10

Прежде чем задать вопрос, хочу сообщить, что я уже спрашивал об этом на https://stackoverflow.com/questions/15025213/wordpress-woocommerce-template-file-overiding

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

Теперь я заметил, что 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; // конец цикла ?>

на

<?php woocommerce_content(); ?>

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

Мой код для отображения 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.

6
Комментарии

Возможно, в документации WC есть подсказки.

brasofilo brasofilo
23 февр. 2013 г. 11:27:59

@brasofilo Я просмотрел документацию, но не нашел там никаких подсказок...

NewUser NewUser
23 февр. 2013 г. 13:47:10

Проверь, поможет ли это.

brasofilo brasofilo
23 февр. 2013 г. 13:52:10

да, я пробовал это, но выводится такая ошибка Fatal error: Cannot redeclare show_template() (previously declared

NewUser NewUser
23 февр. 2013 г. 13:56:47

Была ошибка в названии функции, только что исправил.

brasofilo brasofilo
23 февр. 2013 г. 14:17:45

нет, у меня та же проблема Fatal error: Cannot redeclare so_9405896_show_template()

NewUser NewUser
23 февр. 2013 г. 14:22:49
Показать остальные 1 комментариев
Все ответы на вопрос 3
0
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/ вашей темы.

27 февр. 2013 г. 10:35:16
0

Изучив ваш вопрос, хочу пояснить, что WooCommerce не будет использовать ваш пользовательский шаблон. Он использует свои собственные шаблоны.

Так как вы хотите использовать плагин Advanced Custom Fields для WordPress, хочу уточнить, что эта функция работает только на страницах и записях. Поскольку WooCommerce не позволяет использовать собственные пользовательские шаблоны, вы не сможете использовать функционал Advanced Custom Fields.

Предлагаю другой вариант. Создайте свой собственный шаблон, где вы хотите отображать товары. Затем перейдите на сайт http://docs.woothemes.com/document/woocommerce-shortcodes/ Здесь вы найдете шорткоды для WooCommerce, с помощью которых можно легко отображать почти все товары с вашей собственной кастомизацией. Используйте эти шорткоды для отображения товаров. Таким образом, вы добьетесь того, что WooCommerce будет использовать ваш собственный шаблон. А раз это ваш шаблон, вы сможете легко использовать Advanced Custom Fields. Все понятно? Если что-то осталось неясным, дайте мне знать. Надеюсь, это поможет вам.

1 мар. 2013 г. 07:04:41
2
-4

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

1 мар. 2013 г. 05:14:40
Комментарии

ты правильно прочитал мои вопросы?

NewUser NewUser
1 мар. 2013 г. 05:44:27

Да. Возможно, тебе потребуется некоторое время, чтобы понять мой ответ.

Box Box
1 мар. 2013 г. 08:28:21