Я недавно столкнулся с проблемой, из-за которой я немного запутался. В моей настройке WP у меня есть базовое решение WooCommerce (для темы я использую стартовую тему Timber, чтобы использовать шаблоны веточек). Кроме того, я использую пользовательский тип записи под названием «сайты». Сайты представляют собой список строительных площадок, которые не следует путать с сайтами.
CPT Сайтов имеет X полей расширенных настраиваемых полей, а также стандартное название, поля ACF:
- Номер PO (номер_позиции) -> Строка -> обязательно / не равно нулю
- Номер задания (номер_ообщества) -> Строка -> обязательно / не равно нулю
- Адрес улицы (street_address) -> Строка -> обязательный / не нулевой
- Название офиса (office_name) -> Строка -> обязательный / не нулевой
- Город (город) -> Строка -> обязательно / не пусто
- округ (графство) -> Строка -> необязательно / обнуляемо
- Почтовый индекс (почтовый индекс) -> String -> обязательный / не нулевой
Таким образом, требуется большинство из вышеперечисленного со стороны администраторов, поэтому мы знаем, что данные будут присутствовать.
Проблема, с которой я сталкиваюсь, заключается в том, что при оформлении заказа нам нужны поля, соответствующие вышеуказанному, а также поле адреса электронной почты (обязательно) и поле контактного номера (обязательно).
Цель состоит в том, чтобы, когда клиент вводит свой «Номер задания» и нажимает кнопку «Найти», запускается запрос на сопоставление этого номера задания с полем «Номер задания» в пользовательском типе записи, а также в случае совпадения. найдены, остальные поля из этой записи заполняются в оставшейся части формы оформления заказа.
С точки зрения опробования решения, единственное, что я мог сказать, - это запрос к базе данных для сопоставления и возврата данных, но я довольно новичок в WP в целом и, похоже,В таких понятиях, как Ajax, имеющий конкретный вариант использования в WP, структура БД кажется довольно сложной, поэтому я подумал, что я хотел бы спросить здесь и посмотреть, есть ли у кого-нибудь решение.
На данный момент нет кода, который можно было бы показать иначе, и я бы сказал, что с точки зрения шаблонов WooCommerce они все стандартные и не были изменены.
Просто подытожим, цельis:
Клиент переходит к оформлению заказа -> вводит свой уже известный номер задания и нажимает «Найти» -> Запускается какой-то запрос, чтобы сопоставить этот номер задания с полем CPT ACF номера задания -> Еслисовпадение найдено, верните эти поля и заполните поля Woo Checkout этими данными.
Любые идеи решения или предложения приветствуются, заранее спасибо.