Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Внесение изменений в файлы шаблонов WooCommerce

Тема в разделе "WooCommerce - основы, описания, уроки.", создана пользователем Валерий, 6 ноя 2013.

  1. Stork.71

    Stork.71 Местный

    Сообщения:
    1.034
    Симпатии:
    254
    Баллы:
    83
    И еще вопрос: у Вас платная версия или халявная? Если второе, то она вообще woocommerce не поддерживает!
     
  2. Jacky-boom

    Jacky-boom

    Сообщения:
    28
    Симпатии:
    1
    Баллы:
    3
    Спасибо, дочерняя тема - идея хорошая.
    Качал отсюда (https://ru.wordpress.org/themes/flat-responsive/). Тема таки да, халявная. Но в корне темы есть файл woocommers.php, нормально работает всё, кроме моей этой проблемы.
    Если бы я не пытался её сделать под себя, то никогда бы и не узнал про проблему.
     
  3. Stork.71

    Stork.71 Местный

    Сообщения:
    1.034
    Симпатии:
    254
    Баллы:
    83
    на сайте темы есть четкая таблица функций, где написано, что поддержка woocommerce только в платной версии.
     
  4. Jacky-boom

    Jacky-boom

    Сообщения:
    28
    Симпатии:
    1
    Баллы:
    3
    Чтобы там не было написано, я установил тему бесплатно и пользуюсь. Но оказалось, что проблема не в теме, а в том, что в принципе нельзя категории товаров кастомизировать, копируя archive-product.php себе в папку темы. Вот тут страдания англоязычных пользователей по этому поводу https://wordpress.org/support/topic/archive-productphp-template-overwrite-not-working?replies=8 Там даже код приводят, который типа это исправляет.
    Если быть кратким - не пытайтесь редактировать archive-product.php. Только время потеряете. Я так 3 часа убил.
    Изменения надо вносить в файлы самого плагина и после обновы заново вносить эти же изменения. Другого пути пока нет.
     
  5. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Инструментов кастомизации, в том числе и для категорий товаров, достаточно (файлы шаблонов в своей теме, хуки).
    А вот править исходники плагина неверно.
     
  6. Jacky-boom

    Jacky-boom

    Сообщения:
    28
    Симпатии:
    1
    Баллы:
    3
    searchingman, да так делать нельзя. Но пришлось. Я же не зря несколько часов потратил на изучение вопроса.
    Ну если Вы можете в моей теме изменить - велком.
    Спорю на 500 р., что Вы не сможете нормально кастомизировать файл скопированный в папку flat-responsive/woocommerce/archive-product.php. Достаточно просто изучить структуру archive-product.php
    Ну конечно минимально что-то поменять можно. Но это не позволит что-то глобально изменить в оформлении рубрики. Как минимум сайдбар будет в футере под контентом. и тут нужны особые пляски с бубном, чтобы его переделать.
    Итак я хочу, чтобы сайдбар был справа от контента.
    Ну так что? Ставки сделаны?
     
  7. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Хорошо, решаем конкретную задачу.
    Для темы Flat-responsive нужно на странице категории товаров сайдбар сделать слева от контента (по-умолчанию у меня он справа).
    На остальных страницах магазина (каталог + "карточка" товара) оставить сайдбар в старом расположении.


    Кроме этого нужно понять почему не работает кастомизация в вышеуказанной теме через шаблоны WooCommerce.
    Для этого нужно пойти на первоисточник к официальной документации по адаптации темы Wordpress для WooCommerce.
    Есть перевод статьи на этом форуме, но ключевой фразы я не увидел.

    В теме Flat-responsive в корне есть woocommerce.php, значит, вывод для плагина нужно смотреть в нем.
    Его содержимое.
    PHP:
    <?php
    /**
     * Description: A page template with the right column for WooCommerce
     * @package flat-responsive
     * @since 1.0.0
     */

    get_header(); ?>

    <section id="fr-content-area" class="fr-contents" role="main">
        <div class="container">
            <div class="row">
                <div class="col-md-9">
                    <?php woocommerce_content(); ?>
                </div>
                <div class="col-md-3">
                    <?php get_sidebar'right' ); ?>
                </div>
            </div>  
        </div>
    </section>

    <?php get_footer(); ?>
    Путем правки файла woocommerce.php на странице категорий товара меняем местами сайдбар и контент.
    PHP:
    <?php
    /**
     * Description: A page template with the right column for WooCommerce
     * @package flat-responsive
     * @since 1.0.0
     */

    get_header(); ?>

    <?php  
        $is_category 
    = (is_product_category()) ? true false;
    ?>
    <section id="fr-content-area" class="fr-contents" role="main">
        <div class="container">
            <div class="row">
                <div class="col-md-9<?php echo ($is_category) ? " col-md-push-3" ""?>">
                    <?php woocommerce_content(); ?>
                </div>
                <div class="col-md-3<?php echo ($is_category) ? " col-md-pull-9" ""?>">
                    <?php get_sidebar'right' ); ?>
                </div>
            </div>  
        </div>
    </section>

    <?php get_footer(); ?>
    Как видите, никаких "плясок с бубнами" здесь нет.
     
    • Нравится Нравится x 1
  8. Jacky-boom

    Jacky-boom

    Сообщения:
    28
    Симпатии:
    1
    Баллы:
    3
    Спасибо за код и потраченное время, но на данный момент сайдбар и так справа. Он "съезжает" если скопировать archive-product.php в папку с темой. Ну т.е. редактировать woocommerce.php нет необходимости
    Про то что редактировать archive-product.php нельзя я читал, но пытался проверить.
    Почему мне не подходит Ваш метод? Он не позволяет "влезть", например, в заголовок пользовательской такономии. Мне надо к определённым таксономиям дописывать фразу. В таксономиях WP я это делал элементарно:
    делаю проверку
    if( is_tax( 'vuz' ) )
    и добавляю
    <h1 class="page-title">Все работы сданные в <?php тут вызываем заголовок; ?></h1>
    И как мне это сделать редактированием woocommerce.php????
    Моих знаний не хватает.
    Опять же хотел реализовать описание разделённое на 2 части типа как тут https://talk.pr-cy.ru/topic/16912-razdelnyj-vyvod-opisaniya-rubrik-wordpress-dlya-seo/
    Снова непонятно как тут это сделать. У Sahali правда плагин под это есть за 1000 р.
     
    Последнее редактирование: 11 мар 2016
  9. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Если хотите редактировать файлы шаблонов WooCommerce, то удаляйте из темы woocommerce.php .
    После этого копируйте шаблоны плагина в свою тему и правьте.
     
  10. Jacky-boom

    Jacky-boom

    Сообщения:
    28
    Симпатии:
    1
    Баллы:
    3
    А вот про этот способ не знал. Спасибо!
    Но ведь везде написано "если хотите чтобы тема поддерживала woocommerce, то скопируйте в папку с темой файл woocommerce.php и т.д. и т.п.". Теперь Вы пишите его надо удалить. Так а как тогда поддержка woocommerce?
     
  11. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Наличие в теме woocommerce.php - это один из самых простых способов поддержкой темой плагина WooCommerce.
    Иначе говоря, если разработчику темы не важна "глубокая" кастомизация свой темы с WooCommerce, то он создает woocommerce.php .
    В этом случае вывод для всех страниц плагина (каталог, категория товара, карточка товара и т.д. ) идет через woocommerce.php, т.е их дизайн однотипный.

    Если нужна возможность более "глубокой" кастомизации и требуется кастомизировать несколько шаблонов вывода плагина, то файла woocommerce.php в корне темы быть не должно. Для этого в теме создают каталог 'woocommerce', в который копируют нужные шаблоны с сохранением структуры из \wp-content\plugins\woocommerce\templates.
    Тогда при работе плагина WooCommerce будет использоваться шаблоны не из папки \wp-content\plugins\woocommerce\templates, но из папки 'woocommerce' своей темы.
    Данный механизм нужен для того, чтобы не править файлы плагина и не затереть их при его очередном обновлении.
     
    • Нравится Нравится x 1
    • Информативно Информативно x 1
  12. Jacky-boom

    Jacky-boom

    Сообщения:
    28
    Симпатии:
    1
    Баллы:
    3
    Вот, спасибо!
    Ну так это же другое дело
     
  13. Stork.71

    Stork.71 Местный

    Сообщения:
    1.034
    Симпатии:
    254
    Баллы:
    83
    ставок больше нет? :(
     
  14. gurin77

    gurin77

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Подскажите пожалуйста, скачал тоже тему Megashop и на страницах корзина и оплата дублируются таблицы. У Вас было также? Если да, то как исправляли.
     
  15. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Тему нужно использовать совместимую с версией WooCommerce. Если не покупали, но нашли на "просторах интернета", то она может быть устаревшей.
     
    • Согласен Согласен x 1
  16. zloyleva

    zloyleva

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Всем привет. Проблема такая. Оплата в магазе идет через Paypal но не мой а сторонней фирмы. При оплате заказа деньги поступают на счет этой фирмы. Заказ ставится в "On hold", но письма о заказе мне на почту не приходит. Если провести заказ с другой формой оплаты - все норм. Как сделать так чтобы письма о заказах ВСЕГДА приходили продавцу. А то постоянно заглядывать - не удобно СПС
     
  17. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.269
    Симпатии:
    724
    Баллы:
    113
    Думаю, стоит просто настроить PAYPAl в зависимости от ваших пожеланий.
     
  18. todo

    todo

    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    А когда оплачиваете другой формой, заказ какой статус имеет?
     
  19. todo

    todo

    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Попробуйте добавить данный код в файл functions.php в папку с вашей темой. /themes/name-theme

    Код:
    add_filter( 'woocommerce_payment_complete_order_status', 'wc_skip_processing' );
    function wc_skip_processing( $status, $order_id ) {
    return 'completed';
    }