php - 在 Woocommerce 管理员订单预览中显示自定义数据
问题描述
我想在 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 文件中。测试和工作。
注意:如果需要,您也可以使用
woocommerce_admin_order_preview_start
钩子...</p>
推荐阅读
- ios - 根据设备Swift的方向更改对象的字体、样式等
- java - 在原生 spring @Query 中使用应用程序属性
- python - 从字典生成熊猫数据框,其值是不同数量的字典列表
- list - 将 2 个列表与包含 2 个列表元素的每个不同顺序的第三个列表连接起来
- c++ - 在 C++ 中使用“find”函数的简单 for 循环代码的奇怪行为(如果找到某个子字符串,则增加值)
- python - 尝试创建与 Gmail API 兼容的消息什么都不做,也不会出错
- python - 如何将两个数据帧与日期时间索引合并,以便将一个数据帧的 a 值分配给整个时期,直到没有给出新数据?
- php - PHP允许来自数组中MySQL查询列的特殊字符
- .net - 使用 VB.NET (Visual Basic) 将文件上传到 SFTP 服务器
- android - Android Q - 从后台启动前台定位服务