Я хотел бы добавить некоторые пользовательские данные в конец заказа предварительного просмотра на странице списка заказов Woocommerce.
Для этого я попробовал хук «woocommerce_admin_order_preview_end». Но нет способа передать какие-либо аргументы в пользу этого действия.
add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' );
function custom_display_order_data_in_admin( $order ){
//$order is empty here
}
У кого-нибудь есть идеи по этому поводу? Я застрял на этом.
Вы не можете получить объект заказа так как это шаблон, который загружает конкретные данные через Ajax и нет аргументов для woocommerce_admin_order_preview_end
действие крюк.
Вместо крючка фильтра woocommerce_admin_order_preview_get_order_details
позволит вам сначала добавить некоторые пользовательские данные, которые вы сможете вызвать и отобразить их после woocommerce_admin_order_preview_end
действие крюк.
Код:
// Add custom order meta data to make it accessible in Order preview template
add_filter( 'woocommerce_admin_order_preview_get_order_details', 'admin_order_preview_add_custom_meta_data', 10, 2 );
function admin_order_preview_add_custom_meta_data( $data, $order ) {
// Replace '_custom_meta_key' by the correct postmeta key
if( $custom_value = $order->get_meta('_custom_meta_key') )
$data['custom_key'] = $custom_value; // <= Store the value in the data array.
return $data;
}
// Display custom values in Order preview
add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' );
function custom_display_order_data_in_admin(){
// Call the stored value and display it
echo '<div>Value: {{data.custom_key}}</div><br>';
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Других решений пока нет …