Я работаю над процессом WordPress, но это больше похоже на общий вопрос о манипуляции с PHP и массивом, имеющий особое отношение к WordPress, в данном случае относящееся к WooCommerce.
Если у меня есть форма, которая может подавать от 1 до примерно 35 записей одного типа, то, насколько я понимаю, я могу создать ее следующим образом. Я использую имя и фамилию.
Входы форм, упрощенные, выглядят следующим образом:
echo ' <input type="text" name="first_name[]" id="first_name" />'; echo ' <input type="text" name="last_name[]" id="last_name" />';
В полной версии выше строки повторяются столько раз, сколько необходимо, с повторяющейся переменной, различающей идентификаторы последовательно друг от друга, и с другими значениями, предварительно заполненными и скрытыми. Существует параллельная версия, предназначенная для публикации переменных как скрытых полей.
Пост-действие выглядит следующим образом:
if (isset($_POST) == true) { $att_data = array( 'last_name' => $_POST['last_name'], 'first_name' => $_POST['first_name'] );
Затем функция WordPress add_post_meta должна добавить $ att_data в базу данных. Он отлично работает как прямое действие «добавить» без формы, или с помощью фиктивной переменной вместо $ _POST […]. К сожалению, однако, что использование версий формы / submit / $ _ POST дает мне на моей консоли отладки
["last_name"]=> NULL ["first_name"]=> NULL
Таким образом, форма отправляет или, по крайней мере, отправляет сообщение, и массив отправляется, но переменные $ _POST не захватываются. Почему нет?
ДОПОЛНИТЕЛЬНО: Подождите секунду – мне интересно, очищает ли WooCommerce все переменные $ _POST перед перенаправлением … Изучаю сейчас.