Я пытаюсь создать сообщение с post_content, отображающим конкретные значения метаданных элемента заказа, которые представляют собой данные события бронирования (из плагина Операции бронирования ). В конце концов, я хочу поместить 'start_date'
в настраиваемое поле appt_datetime
, но сейчас даже само получение start_date
в post_content
не работает. Я могу передать метаданные другого элемента и передать весь массив события, но не отдельные элементы этого массива событий.
Мне также нужно будет выполнить это, только если заказ включает одно из этих событий (этот продукт бронирования имеет категорию new-tutor
)
Мой код, который до сих пор успешно создает сообщение, выводит полный массив событий (и другие метаданные для пользовательских полей, которые я добавил отдельно от этого плагина Деятельности при бронировании):
add_action( 'woocommerce_payment_complete', 'create_ctsession_post' );
function create_ctsession_post($order_id){
$order = wc_get_order($order_id);
// Loop through order line items
foreach( $order->get_items() as $item ){
// get order item meta data (unprotected)
$item_meta_data = $item->get_meta_data();
$meta_value_student = $item->get_meta( 'Student Name', true );
$meta_value_tutor = $item->get_meta( 'tutor', true );
$meta_value_event = $item->get_meta( 'bookacti_booked_events', true );
$meta_value_start = $meta_value_event->event_start;
$testing_post = array(
'post_title' => 'Testing Session 6',
'post_content' => 'HelloWorld ' . $meta_value_tutor . $meta_value_event . $meta_value_start ,
'post_status' => 'draft',
'post_author' => 1,
'post_type' => 'ct_student_appt',
);
$post_id = wp_insert_post($testing_post);
console.log($item_meta_data);
console.log($meta_value_event);
}
}
Это вывод, который я получаю от этого (где настраиваемое поле для 'tutor'
имело значение "Alpha Tutor" в следующем порядке):
HelloWorld Alpha Tester[{"id":"19","event_id":"10","event_start":"2019-05-09 13:00:00","event_end":"2019-05-09 13:30:00","title":"Tutor Session","activity_id":"1","template_id":"1"}]