Я использую плагин FooEvents для сбора информации о посетителях событий о продуктах событий WooCommerce. При размещении заказа этот плагин сохраняет информацию о посетителе в метаданные заказа WooCommerce в виде настраиваемого поля Array.
Используя плагин Post Meta Inspector, я вижу, что информация об участнике сохраняется как мета-ключ WooCommerceEventsOrderTickets
со значением:
'a:1:{i:1;a:1:{i:1;a:18:{s:26:"WooCommerceEventsProductID";i:454;s:24:"WooCommerceEventsOrderID";i:4609;s:27:"WooCommerceEventsTicketType";s:0:"";s:23:"WooCommerceEventsStatus";s:6:"Unpaid";s:27:"WooCommerceEventsCustomerID";s:2:"64";s:29:"WooCommerceEventsAttendeeName";s:13:"AttendeeFirst";s:33:"WooCommerceEventsAttendeeLastName";s:12:"AttendeeLast";s:30:"WooCommerceEventsAttendeeEmail";s:19:"jon@freshysites.com";s:34:"WooCommerceEventsAttendeeTelephone";s:12:"607-123-4567";s:32:"WooCommerceEventsAttendeeCompany";s:0:"";s:36:"WooCommerceEventsAttendeeDesignation";s:0:"";s:27:"WooCommerceEventsVariations";a:1:{s:33:"attribute_pa_registration-options";s:14:"nassgap-member";}s:28:"WooCommerceEventsVariationID";i:4078;s:22:"WooCommerceEventsPrice";s:118:"<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>675.00</span>";s:35:"WooCommerceEventsPurchaserFirstName";s:3:"Jon";s:34:"WooCommerceEventsPurchaserLastName";s:6:"Fuller";s:31:"WooCommerceEventsPurchaserEmail";s:19:"example@gmail.com";s:37:"WooCommerceEventsCustomAttendeeFields";a:6:{s:24:"fooevents_custom_address";s:15:"123 Attendee St";s:21:"fooevents_custom_city";s:13:"Attendee City";s:31:"fooevents_custom_state/province";s:6:"Nevada";s:28:"fooevents_custom_postal_code";s:5:"13813";s:29:"fooevents_custom_organization";s:12:"Attendee LLC";s:22:"fooevents_custom_title";s:14:"Attendee Title";}}}}'
Я хочу получить значения в массиве, чтобы использовать эту информацию - чтобы иметь возможность отображать определенные значения полей в пределах:
- Электронная почта заказа WooCommerce
- на экране таблицы внутренних заказов (как новый столбец)
- в разделе "Сведения о заказе" при просмотре / редактировании заказа, чтобы данные были более легко видны (например, под деталями выставления счета или доставки)
Я хотел бы иметь возможность получать определенные мета-значения из массива, такие как WooCommerceEventsAttendeeName
, WooCommerceEventsAttendeeLastName
, fooevents_custom_state/province
, fooevents_custom_address
, fooevents_custom_title
и т. Д.
Этот фрагмент PHP добавит поле к электронным письмам с заказами, но как мне отредактировать это, чтобы я мог отобразить часть мета из этого массива ?
/**
* Add a custom field (in an order) to the emails
*/
add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
$fields['meta_key'] = array(
'label' => __( 'Label' ),
'value' => get_post_meta( $order->id, 'meta_key', true ),
);
return $fields;
}
Обновление:
Я повторил мета-значение этого ключа для определенного заказа WooCommerce с помощью
<code>echo '<pre>'; print_r( get_post_meta( '4609', 'WooCommerceEventsOrderTickets', true ) ); echo '
';
Вот что показывает:
Array
(
[1] => Array
(
[1] => Array
(
[WooCommerceEventsProductID] => 454
[WooCommerceEventsOrderID] => 4609
[WooCommerceEventsTicketType] =>
[WooCommerceEventsStatus] => Unpaid
[WooCommerceEventsCustomerID] => 64
[WooCommerceEventsAttendeeName] => AttendeeFirst
[WooCommerceEventsAttendeeLastName] => AttendeeLast
[WooCommerceEventsAttendeeEmail] => jon@freshysites.com
[WooCommerceEventsAttendeeTelephone] => 607-123-4567
[WooCommerceEventsAttendeeCompany] =>
[WooCommerceEventsAttendeeDesignation] =>
[WooCommerceEventsVariations] => Array
(
[attribute_pa_registration-options] => nassgap-member
)
[WooCommerceEventsVariationID] => 4078
[WooCommerceEventsPrice] => $675.00
[WooCommerceEventsPurchaserFirstName] => Jon
[WooCommerceEventsPurchaserLastName] => Fuller
[WooCommerceEventsPurchaserEmail] => freshyjon@gmail.com
[WooCommerceEventsCustomAttendeeFields] => Array
(
[fooevents_custom_address] => 123 Attendee St
[fooevents_custom_city] => Attendee City
[fooevents_custom_state/province] => Nevada
[fooevents_custom_postal_code] => 13813
[fooevents_custom_organization] => Attendee LLC
[fooevents_custom_title] => Attendee Title
)
)
)
)