В настоящее время я использую плагин Woocommerce Event Manager с woocommerce для продажи билетов на мой веб-сайт. Я хотел бы внести некоторые изменения на своем веб-сайте, чтобы веб-администратор мог обновлять информацию об участнике всякий раз, когда клиент запрашивает изменение.
В настоящее время информация об участнике хранится в виде мета-элемента элемента заказа woocommerce в виде массива.
снимок экрана страницы заказа
Ниже приведен код отображения формы информации о посетителе в заказе
add_action( 'woocommerce_after_order_itemmeta', 'edit_attendee_list', 10, 3);
function edit_attendee_list( $item_id, $item, $_product){
?>
<style type="text/css">
.th__title{
text-transform: capitalize;
display: inline-block;
min-width: 140px;
}
ul.attendee_list {
border: 1px solid #ddd;
padding: 20px;
margin-bottom: 20px;
width: 100%;
}
ul.attendee_list li {
border-bottom: 1px dashed #ddd;
padding: 5px 0 10px;
}
ul.attendee_list li h3 {
padding: 0;
margin: 0;
}
</style>
<?php
$user_info_arr = wc_get_order_item_meta($item_id,'_event_user_info',true);
if($user_info_arr){
$event_id = wc_get_order_item_meta($item_id,'event_id',true);
$counter = 1;
if(!empty($user_info_arr)){
foreach ($user_info_arr as $key => $value) {
echo '<ul class="attendee_list">';
echo "<li><h3>Attendee: $counter</h3></li>";
foreach ($value as $_key => $_value) {
//echo '<li><span class="th__title">'.mep_string_beauty($_key).':</span> '.$_value.'</li>';
woocommerce_wp_text_input( array(
'id' => $_key,
'label' => __(mep_string_beauty($_key)),
'value' => $_value,
'wrapper_class' => 'form-field-wide',
) );
}
echo '</ul>';
$counter++;
}
}
}
Теперь у меня возникла проблема с сохранением этой формы. Есть ли подходящий крючок, который я могу использовать для сохранения обновленной мета позиции заказа?
Кроме того, как я могу сохранить приведенную выше динамическую форму в виде массива, чтобы заменить предыдущий пользовательский информационный массив в моей мета-позиции порядка woocommerce?