如何在Wordpress中存储和保存用户动态生成的输入字段?

时间:2019-04-23 17:56:49

标签: php arrays ajax wordpress

我正在为该网站编码,用户可以在其中创建订单(自定义帖子类型),然后选择该订单并添加其他课程(自定义帖子类型)。他们可以向订单中添加无限数量的课程,并且可以多次选择相同的课程。然后它发送电子邮件并将数据保存在Wordpress中

到目前为止,我可以使用AJAX进行所有操作(见下文),每次我单击按钮添加课程时,它都会在新字段中附加一个唯一的ID。

我将选择的数据存储到输入name []数组中,因此我可以指向它以访问meta_value(请参见下文)。但是我只是不明白如何生成meta_keys,然后可以使用“ For Each”循环填充它。由于我不想限制可以添加的课程数量,因此我想编写一些代码来保存每个动态生成的字段。我将其粘贴在可以工作的硬编码版本下,但我想通过循环动态地进行。

我曾考虑过使用数组存储我的meta_keys,但我只是不知道那会如何...

我的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);

我只想使其工作而不必对其进行硬编码。我希望它可以循环工作。

0 个答案:

没有答案