我正在为该网站编码,用户可以在其中创建订单(自定义帖子类型),然后选择该订单并添加其他课程(自定义帖子类型)。他们可以向订单中添加无限数量的课程,并且可以多次选择相同的课程。然后它发送电子邮件并将数据保存在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);
我只想使其工作而不必对其进行硬编码。我希望它可以循环工作。