Я унаследовал сайт, построенный на Woo-Commerce, с которым я помогаю некоммерческим организациям. У меня есть несколько проблем, которые я исправляю, но вижу некоторые странные ошибки, когда они редактируют заказы.
Кажется, что все теги метаданных биллинга заказа появляются дважды, один раз с подчеркиванием и один раз без, например:
_billing_first_name
billing_first_name
Они оба содержат значение, введенное клиентом при оформлении заказа, однако версия с подчеркиванием — это то, что редактируется, если вы используете панель администратора для редактирования информации для выставления счета, а версия с подчеркиванием NON отображается в настраиваемых полях.
Это вызывает некоторую путаницу, и я довольно много искал и не понял, почему.
Заранее спасибо, если у кого-нибудь есть какие-либо подсказки, иначе я буду тыкать в код.
Это совершенно нормально (и это не ошибка).
Поскольку woocommerce представляет собой плагин WordPress, он использует классические таблицы пользовательских данных. Но Заказы — это пользовательский тип записей, в которых хранятся собственные пользовательские данные.
В woocommerce вы можете купить опционально без регистрации, в этом случае пользовательские данные находятся только в данных Postmeta заказа.
Когда незарегистрированный пользователь совершает свою первую покупку (регистрация одновременно) данные сохраняются в обоих wp_usermeta
а также wp_postmeta
столы.
Когда пользователь регистрируется перед покупкой чего-либо, данные будут зарегистрированы только в wp_usermeta
Таблица.
По всем этим причинам есть 2 места для пользовательских данных:
1) billing_first_name
— Пользовательские данные хранятся на wp_usermeta
таблица и редактируемая от пользователя страницы моего аккаунта (или на бэкенде от страницы редактирования пользователя).
2) _billing_first_name
(начинайте всегда с подчеркивания) — Данные клиента заказа хранятся в wp_postmeta
таблица и редактируется только через бэкенд. Страницы редактирования заказа от администраторов и менеджеров магазинов. Эти данные отображаются во всех заказах и в уведомлениях по электронной почте …
Подчеркните в начале, чтобы эти данные не отображались в пользовательских полях Meta BOX (на страницах редактирования заказа).
Таким образом, у Заказа могут быть другие поля выставления счета или доставки, чем в пользовательских данных, поскольку клиент может иметь другие данные выставления счета / доставки, если он этого хочет.
Woocommerce нуждается в них обоих.
Вы не должны вносить никаких изменений, связанных с этим, потому что это будет настоящий кошмар для тебя…
Других решений пока нет …