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

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

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

102 комментария к “Как изменять 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. Привет) я пилю свой первый интернет магазин и ничего не понимаю. Где вообще находятся все эти коды?

    Ответить
  31. После совмещения страниц корзины и оформления, кросселы не будут выводиться?

    Ответить
  32. Подскажите, как сделать, чтобы при нажатии на Подтвердить заказ вело сразу на оплату, а не на страницу Подтверждения заказа? Используем woocommerce, storefront

    Ответить
    • Для этого какой нибудь шлюз для оплаты надо подключить

      Ответить
  33. Добрый день. А можно поле второго адреса использовать под например НДС и разместить его под полем «название фирмы? Как это лучше сделать, какие нюансы?

    Ответить
  34. Добрый день, подскажите для чайков, как все-таки убрать повторяющее поле «оформить заказ» в мини корзине? в самом конце видео.

    Ответить
  35. Здравствуйте!

    Возможно ли реализовать переключение не по методу доставки, а при переключении страны?
    Как я понимаю нужно это править в Обновление формы.

    Если делали уже такое подскажите как или возможно ли такое реализовать?

    Ответить

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

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