class — PHP создает классы для того, чтобы разделить значения полей

Итак, теперь у меня есть основы PHP, и я пишу плагин для расширения Woocommerce.
Я добавил пользовательскую вкладку в настройки своего продукта, и внутри вкладки я могу добавить динамическое количество пользовательских сборов, связанных с продуктом. По сути, я использую JQuery для создания div с 4 элементами select внутри. Я могу добавить любое количество элементов div (таким образом, любое количество пользовательских сборов за продукт).
Я нашел способ сделать это, но я считаю, что должен быть лучший способ (в настоящее время я использую переменную ‘counter’ и присваиваю каждому div и выбираю числовой суффикс).
Я говорю лучше, потому что, когда я удаляю div (таким образом, удаляю ‘Custom Charge’), я обнаруживаю, что мне нужно перенумеровать все существующие div и выбирать элементы (в противном случае мой процесс сохранения update_post_meta завершится неудачно.

Вот как я сейчас сохраняю данные:

//Additional Charge Types
$i = $_POST['count_of_charge_types']; <-this is a hidden field
$counter = 1;
if ($i>0){
while($counter <= $i){
$add_charge_sub = array("Description" =>
esc_attr($_POST['_add_charge_desc_'. $counter]),"Charge_Type" =>
esc_attr($_POST['_add_charge_type_'. $counter]),"Charge_Value" =>
esc_attr($_POST['_add_charge_value_'. $counter]),"Charge_Method" =>
esc_attr($_POST['_add_charge_method_'. $counter]));
$add_charges[]=$add_charge_sub;
$counter++;
};

update_post_meta($post_id,'_product_add_charges',$add_charges);

Это пример HTML, чтобы вы могли понять, как называются элементы и как они сохраняются:

<div id="add_charges_1" class="options_group">

<div id="add_charges_header_1" class="desc_header">
<button id="but_remove_charge_type_1" type="button">Remove Charge Type</button>

<input type="text" class="short" style="" name="_add_charge_desc_1"id="_add_charge_desc_1" value="Fuel Surcharge">
</div>

<input type="text" class="short" style="" name="_add_charge_value_1" id="_add_charge_value_1" value="4">

<select id="_add_charge_method_1" name="_add_charge_method_1">
<option value="unit" selected="selected">Per Unit</option>
<option value="group">Per Product Group</option>
</select>

</div>

это работает нормально, но, как я уже сказал, когда я удаляю ‘Custom Charge’, у меня может остаться пробел в нумерации элементов, который отбрасывает мои циклы.

Может ли кто-нибудь указать мне правильное направление на то, как генерировать элементы таким образом, чтобы я мог покончить с системой нумерации и просто сериализовать поля.

Я читал кое-что о сериализации PHP Вот, и это говорит о создании классов. Создание классов является новым для меня, и я понятия не имею, с чего начать и является ли это правильным и простым подходом в любом случае.

Причина, по которой я смотрю на классы, заключается в том, что, как вы можете видеть из кода update_post_meta, я создаю массивы и сохраняю их в БД. Я не могу просто перебрать каждый элемент в форме, используя foreach ($ _ POST как $ name => $ value), потому что мне нужны опции, чтобы оставаться вместе в массивах.

У меня есть еще один повод, чтобы попытаться решить эту проблему, и это потому, что на следующем этапе разработки сайта будет создано множество пользовательских опций, и я хочу сделать разработку быстрой и эффективной.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector