Как хранить и сохранять поля ввода, динамически генерируемые пользователями в Wordpress? - PullRequest
0 голосов
/ 23 апреля 2019

Я кодирую этот веб-сайт, где пользователи могут создать Заказ (Пользовательский тип сообщения), а затем выбрать и добавить различные Курсы (Пользовательский тип сообщения) к этому Заказу.Они могут добавлять и бесконечное количество Курсов в Орден и могут выбирать один и тот же более одного раза.Затем он отправляет электронное письмо и сохраняет данные в Wordpress

. Пока я могу делать все это с помощью AJAX (см. Ниже), он добавляет новое поле с уникальным идентификатором каждый раз, когда я нажимаю кнопку, чтобы добавить курс.

Я сохраняю выбранные данные во входных массивах name [], чтобы иметь возможность указывать на них для доступа к meta_value (см. Ниже).Но я просто не понимаю, как генерировать meta_keys, которые я мог бы затем заполнить циклом «Для каждого».Поскольку я не хочу ограничивать количество курсов, которые они могут добавить, я хочу написать код, который будет сохранять все динамически сгенерированные поля.Я вставил ниже свою версию в жестком коде, которая работает, но я хотел бы сделать это динамически, с циклом.

Я думал об использовании массивов для хранения моих meta_keys, но я просто не знаю, как это будетgo ...

Моя функция AJAX

$(function () {
    $('#add_course').on('click', function () {
var id = $(".course_title option:selected").val();

 $.ajax({
        method : 'POST',
        url    : ajaxurl,
    dataType: 'json',
        data   : {
            action     : 'my_action',
            id: id
        },
    })
    .done( function( response ) {
    var title = response.title;
    var price = response.price;
    var time = response.time;
$("#course"+total_number_of_course+"").append('
    <input type="text" name="title[]" value="'+title+'" readonly><br>
    <input type="text" name="time[]" value="'+time+'" readonly>
    <input type="text" name="price[]" value="'+price+'" readonly>
');

    })
    .fail( function() {
        console.log( "error" );

    })
    });
});

PHP при отправке

$my_post = array(
    'post_type' => 'Order',
    'post_title' => $_POST['entreprise'],
    'post_status' => 'publish',
    'post_author' => $user_id,
    'meta_input' => array(
        'title1' => $_POST['title'][0],
        'time1' => $_POST['time'][0],
        'price1' => $_POST['price'][0],
        'title2' => $_POST['title'][1],
        'time2' => $_POST['time'][1],
        'price2' => $_POST['price'][1]
    )
);
$newpost_id = wp_insert_post($my_post);

Я просто хочу, чтобы она работала без необходимости жестко ее кодировать.Я хочу, чтобы это работало в цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...