Php 在Woocommerce管理订单预览中显示自定义数据
我想在Woocommerce订单列表页面的预览订单末尾添加一些自定义数据 为此,我尝试了钩子“woocommerce\u admin\u order\u preview\u end”。但是没有办法把任何论点传递给那个动作Php 在Woocommerce管理订单预览中显示自定义数据,php,wordpress,woocommerce,metadata,orders,Php,Wordpress,Woocommerce,Metadata,Orders,我想在Woocommerce订单列表页面的预览订单末尾添加一些自定义数据 为此,我尝试了钩子“woocommerce\u admin\u order\u preview\u end”。但是没有办法把任何论点传递给那个动作 add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' ); function custom_display_order_data_in_admin( $or
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\u admin\u order\u preview\u end
操作挂钩的参数
相反,过滤器挂钩woocmerce\u admin\u order\u preview\u get\u order\u details
将允许您首先添加一些自定义数据,您可以在woocmerce\u admin\u order\u preview\u 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>';
}
//添加自定义订单元数据以使其在订单预览模板中可访问
添加过滤器('woocommerce\u admin\u order\u preview\u get\u order\u details'、'admin\u order\u preview\u add\u custom\u meta\u data',10,2);
函数管理\命令\预览\添加\自定义\元数据($data,$order){
//将“_custom_meta_key”替换为正确的postmeta_key
如果($custom\u value=$order->get\u meta(“'u custom\u meta\u key'))
$data['custom_key']=$custom_value;//如何将自定义值放在预览窗口中的Shipping列或其他任何位置下?我必须使用CSS还是有办法使用PHP?