Как изменять WooCommerce. Эпизод #5. Страница оформления заказа

Артем Абрамович

Меня зовут Артем Абрамович и я являюсь фрилансером-вордпресером. Занимаюсь настройкой и редактированием сайтов созданных на CMS WordPress. Это основная моя специализация, есть еще несколько работ, которыми я занимаюсь, но обо этом вы можете более подробно узнать из моего портфолио.

94 комментария к “Как изменять WooCommerce. Эпизод #5. Страница оформления заказа”

  1. Какие все таки шикарные видео! Желаю тебе удачи и спасибо за такие видосы.

  2. Спасибо за отличные уроки по woocommerce) Проблема с объединением корзины и checkout, на странице спасибо теперь тоже отображает корзину, как можно это решить) ?

    • Хм, специально проверил, у меня на Storefront ничего не вылезает, все четко. Видимо у вас так тема сделана, попробуйте на другой теме проверить

  3. ну а как быть с премиум темой FLATSOME, там очередность не меняеться етим способом

    • Ну раз не работает, значит тема так сделана и в ней слишком многое переопределение. Пробуйте плагин использовать для управления полями.

    • Проверил на этой теме, у меня все четко меняется без проблем

    • Спасибо что посмотрели, переписал ещё раз код и тожет поменялось, наверно где то был ошибку сделал впервый раз, ещё раз спасибо

  4. Приветствую!

    Отдельный респект за то что ткнул носом в yoast лайфхак — немного разнообразил тайтлы полями и аттрибутами.

    Вопросик такой. Ставил плагин по доставкам — он делает аналогичное скрытие полей (город,отделение почты берет по апи для расчета доставки), но фигня в том, что когда ставишь галочку появление этих полей нифига не видно (выше на странице вылазят, ведь галочка доставки в самом низу после контактного инфо и корзины. Верстка такова что блок корзины на всю ширину экрана под конт. информацией). Покупатели тупо не видят.
    можно ли их перевесить на другой хук?
    В «своем» плагине я так понял, что просто массив чекаут_филдс меняется через фильтр … как выводить поля доставки внизу возле чекбокса, чтото пока ума не хватает)

    • Привет! Не очень понял, в чем проблема. Если в зависимости от доставки на чекауте поля выводить, то вот так можно https://wpruse.ru/woocommerce/hiding-fields-on-chosen-delivery/

      Похоже у тебя с версткой проблемы… Перевесить можно, толко тут не полями надо оперировать, а файлами. Найди функцию которая выводит поля и переподключи ее

    • Приветствую.
      попробую объяснить иначе. На твоем примере, если верстка адаптивна, то на мобайле 2 колонки превращаются в одну (блок «ваш заказ» уплывает под «оплата и доставка»). при выборе доставки покупатели тупо не видят выше всплывающих полей.
      Возможно ли вывести поля с адресом доставки.. ну где угодно.. перед выбором формы оплаты… или после купона?

    • Можно конечно. Переподключи блок Ваш заказ и выводи его на мобилках через is_wp_mobile где хочешь

  5. Еще вопрос, если можно… маюсь второй день.. вроде все очевидно но.. не работает нифига

    add_filter(«woocommerce_checkout_fields», «zzz_order_fields»);

    function zzz_order_fields( $fields ) {
    $fields[‘billing’][‘billing_phone’][‘priority’] = 31;
    $fields[‘billing’][‘billing_email’][‘priority’] = 32;
    return $fields;
    }
    но при выводе ничего не меняется.

    Хотя судя по коду в атрибутах data-priority присвоение явно происходит !
    уже не знаю куда копать…

    • Артем, уже голову сломал, но ПОБЕДИЛ.
      и знаешь в чем засада? тебе тож на заметку, может столкнешься или прольешь свет! чисто woo-шная заморочка.

      как только убрал
      unset($fields[‘billing’][‘billing_country’]);

      все заработало!!! приоритеты начали строиться как надо через woocommerce_checkout_fields. правда, чтобы адрес_1 задвинуть в конец пришлось еще и woocommerce_default_address_fields задействовать.
      +country тупо css убрал

      капут. вырванные годы.

    • Ну я про это вообще в видео сказал, что это поле нельзя удалять, на него много проверок завязано

    • Не говори. Надеюсь пригодится не только мне.)

      а вушникам я бы уши пооткрутил))
      костыль какойто дурацкий.

  6. Вопрос, а можно после ФИО и номера телефона поставить выбор способа доставки а потом сразу оплаты, что бы пользователю было удобно, и форма менялась по логической цепочке? А то выходит покупатель дошёл до конца формы и когда меняет способ оплаты и доставки в конце формы меняется сама форма…

    • Можно при желании, тут многое от самого сайта зависит и его оформления. А так, нет проблем перенести куда нужно

  7. Можно все поля .val() формы записывать в объект localstorage, а при последующих кликах на оплату восстанавливать их по ее id, вставляя из сохраненного объекта.

  8. Добрый день.
    Мне нужно сделать чтобы при выборе оплаты после доставки была предоплата и при оформление заказа вибрасывало на лигпей опачевалась эта предоплата и формировался заказ тоесть с оплатой после доставки — стоимость предоплаты.
    На сайте уже работает лигпей и два вида оплаты. Нужно доделать предоплату для варианта когда оплата при получении.
    Раньше с таким не сталкивался.
    Спасибо за видео!
    Буду благодарен за помощь.

    • Добрый! Обычно предоплата используется. Но если предоплата.. Никогда такого не делал, но как вариант — Получаем стоимость заказа на чекауте
      Вычисляем процент предоплаты при выборе нужного способа оплаты.

      Как-то так

  9. если глобал объект сохранить в переменную а после обновления вернуть?

  10. Добрый день. Помогите пожалуйста. При нажатии кнопки «Оформление заказа» вдруг ни с того ни с сего Появляется страница ошибки, где написано «Попытка соединения не удалась

    Firefox не может установить соединение с сервером mayson-lingerie.ru.

    Возможно, сайт временно недоступен или перегружен запросами. Подождите некоторое время и попробуйте снова.
    Если вы не можете загрузить ни одну страницу – проверьте настройки соединения с Интернетом.
    Если ваш компьютер или сеть защищены межсетевым экраном или прокси-сервером – убедитесь, что Firefox разрешён выход в Интернет.»

    В код я не лез, ничего не настраивал. Страницу Оформление заказа пробовал удалять и ставить заново. Не помогает. Что с этим можно сделать?

    • Добрый! Похоже хостинг не не справляется. Или поддержку пинать или попробовать сменить тему, может быть тема лишнее что-то генерирует

  11. Добрый день, занимаюсь как раз сейчас изменением страницы заказа, очень полезные курсы!
    Вот только подскажите как например вставить дополнительный блок на эту страницу, в моем магазине есть самовывоз, и для самовывоза я хочу вставить карту с моим местонахождением. Ну или любой другой блок, было бы очень инетресно.

    • Добрый! Как дополнительное поле добавляйте. При желании можно что угодно добавить. Можно плагином, можно кодом, тут как удобнее

  12. Добрый день. Подскажите, пожалуйста, на некоторых шаблонах страниц, там где указано количество товаров в строке выводится × В русскоязычной версии это отображается как Ч, а должно быть х. Т.к оно выводится через sprintf, проблемно написать фильтр, как решаете проблему?)

    • Добрый! Никогда не встречал такой проблемы. Обычно это означает что на компьютере не загружаются шрифты или браузер криво отрабатывает

      И что-то не помню чтобы в количестве подобный знак отображался. Это же просто крестик. На какой страние вы его видите?

  13. Добрый день, проблема в том, что после оформления заказа с телефона высвечивается вместо нормальных данных (адреса доставки) всякие буквы а и е (это со стороны покупателя) как это исправить?

  14. Добрый день! Подскажите, пожалуйста, как убрать пометку поля «НЕОБЯЗАТЕЛЬНОЕ»

    • Добрый! Только label править через хуки. Через фильтр woocommerce_default_address_fields можно изменить

  15. Нашел то что мне нужно корзина в форме + различные поля )))

  16. в файле class-wc-countries я в ручную расставил поля формы и приоритеты. Файл class-wc-order выводит значения Billing и shipping в админ панель. Не могу получить отображение значения поля в админ панели! Те поля которые я создал их значения не выводятся в админ панели! Пример: существующие поле address_2 я по такому же принципу добавил address_3, но значение поля address_3 не отображается а админке! Помогите решить проблему?

    • Плохая идея — править файлы плагина…
      Используйте плагин WooCommerce Checkout Fields. Должно помочь

    • @WPRUSe · Финты WordPress все через код получилось полностью без плагина

  17. Скажите, пожалуйста, у меня отображается «Ваши личные данные будут использоваться для обработки ваших заказов…» А фразы «я соглашаюсь» нет. В чем проблема.
    И как можно реализовать страницу оформления заказа в одну колонку? Чтобы Ваш заказ отображался ниже раздела оплата и доставка, а не справа. У меня на этой странице размещена боковая панель и плохо смотрятся эти две колонки. …В кодах совсем не сильна. Спасибо за подробные видео!

    • Эти настройки есть в консоли WordPress woocommerce-настройки вкладка-Учётки и приватность.
      а расположение блоков можете поискать в настройках страницы.

    • Скорее всего в кастомайзере «я соглашаюсь» надо включить
      И как можно реализовать страницу оформления заказа в одну колонку — только править файлы темы или использовать уже готовую тему. Например в теме OceanWP уже есть функционал пошагового оформления заказа

  18. Как можно изменить значение subtotal для товара, не общий, а именно товара(хочу написать свои скидки)

  19. Добрый день! Подскажите как убрать ненужные поля с блока-Детали оплаты. например: Фамилия, Почтовый индекс, Область/регион ?

    • Добрый! Можно, собственно в видео и рассказано как это сделать. Или можно воспользоваться плагином типа WooCommerce Checkout Fields

  20. как насчёт сделать видео о том, как можно сделать собственную систему скидок? такого в интернете не нашёл, а плагины не всегда удовлетворяют все потребности. Думаю многим была бы интересна эта тема.

    • Это разработка, такое видео записать не так просто, а отдачи от него минимум… Как насчет просто купить готовый плагин или использовать купоны?

    • ​@WPRUSe · Финты WordPress
      не мой случай, слишком специфические условия скидок, ни один готовый плагин не подходит.

  21. У меня все получилось при помощи кода! Есть только одна проблема! У меня подключен ключ google API к Billing полю address_2 для автоматического поиска адреса и номера дома клиента. Этот ключ перестает работать когда обновляется форма, проблема заключается в первом шаге кода! Когда Billing делает запрос на обновление формы при переключении. Вот примерно в этой строке проблема woocommerce_update_order_review_fragments. Может как то можно решить проблему ?

    • Любую проблему можно решить при желании. Только при чем тут мой код? Логично что ключ перестает работать, не думаю что это проблема моего кода. Скорее всего надо ключ обновлять при переключении. Но это не точно

    • @WPRUSe · Финты WordPress да, верно ключ нужно обновлять, но как это сделать пока голову ломаю за что его цеплять не пойму.

  22. Что нужно сделать?

    Все просто: как изменить гребаную структуру вывода филдов?

    Так как то что сделали разрабы — прото ппц

    p -> label + span->input и все это с кучей своих класов

  23. Все инфу не могу найти как изменить слово «Купон» на «Промокод». Понимаю что вроде мелочь, а мозгов не хватает пока

    • Проще перевод просто изменить. Например плагином Loco Translate

  24. Не подскажите, как добавить разные виды доставки в страницу оформления заказа (самовывоз, быстрая доставка и т.д.)?

    • Через настройки можно добавить нужные способы доставки

  25. Добрый день, не очень поняла, в каком файле Вы пишете код на 16:30. Это файл в теме или в плагине? Только начала в этом разбираться, подскажите, пожалуйста. Использую тему Oceanwp

    • Добрый! В файле functions.php дочерней темы. Я об этом говорю в начале видео. Так что, вам для начала надо сделать дочернюю тему для вашей Oceanwp или скачать готовую у них на сайте

  26. Убрал поле Страна через фильтр без CSS, заказ проходит, версия Woocommerce 3.6.4

  27. Добрый день, при выборе любой оплаты через сайт (кроме оплаты при получении) не приходит письмо о заказе на почту ни администратору, ни покупателю, то есть если выбрать оплату картой то оплата проходит, после оплаты покупателя перекидывает на страницу с заказом, заказ отображается в админке со статусом «в ожидании оплаты», а письма не приходят. Подскажите пожалуйста какие есть варианты решения этой проблемы?

    • @WPRUSe · Финты WordPress Спам проверили, писем там нет ни у клиента, ни у админа. Забыл также уточнить, что все онлайн платежи проходят через систему «Онлайн чеки» подключенную к кассе, если «Онлайн чеки» включены, то клиенту приходит письмо с чеком от ОФД, но админу письмо не приходит, по этому вопросу уже обратились в поддержку, но все равно как я понимаю, помимо ОФД письмо также должно приходить и с сайта. По настройкам тоже пробежались проверили, отправка писем и админу и клиенту включена на пунктах: «Новый заказ», «Отмененный заказ» и «Неудавшийся заказ», остальные пункты как я понимаю редактировать нельзя, они отправляются только клиенту. Подскажите, может есть возможность вручную создать новое уведомление на почту о всех действиях с заказами и с новыми поступившими заказами, или возможно есть другие варианты решения проблемы?

    • @Александр Зорин Хм, тогда надо проверить вообще письма с сайта уходят или нет и настроить SMTP

  28. При создании страницы заказа таким образом у меня не отображаются апсейлы, пробовал на нескольких темах.
    Если разносишь страницы корзины и заказа, то апсейлы отображаются на странице корзины.
    Подскажите пожалуйста, в чем может быть дело?

    • В том, что апселы по дефолту выводятся на корзине, через хук. Если корзина и чекаут разносятся то апселы надо переключать

  29. А как быть с тем, что в дополнительных настройках Woo в Корзине нельзя назначить «Оформление заказа», потому что нет ее в раскрывающемся меню?

    • Не понял вопроса. На оформлении заказа по дефолту вообще нет корзины. В чем задача состоит?

  30. Привет) я пилю свой первый интернет магазин и ничего не понимаю. Где вообще находятся все эти коды?

Добавить комментарий

%d такие блоггеры, как: