php - Woocommerce 自定义订单状态更改日期
问题描述
在 Woocommerce 中,我想在为自定义订单状态更新订单状态时显示日期和时间。我正在使用$order->get_date_modified();
,但它不适合:
$order_transporte = wc_get_order_status_name( $order->get_status() );
if($order_transporte == "Transporte"){
$date_modified = $order->get_date_modified();
echo sprintf( '<tr><td>%s</td><td>Transporte</td></tr>', $date_modified->date("d/M/Y g:i:s"));
}
woocommerce 中是否有任何功能可以从特定状态中获取更新日期?
解决方案
对于自定义订单状态,您可以使用woocommerce_order_status_{$status_transition[to]}
复合操作挂钩,您将在其中替换{$status_transition[to]}
为自定义状态 slug 以设置此自定义状态的更改日期,例如:
add_action( 'woocommerce_order_status_transporte', 'action_on_order_status_transporte', 10, 2 );
function action_on_order_status_transporte( $order_id, $order ) {
// Set your default time zone (http://php.net/manual/en/timezones.php)
date_default_timezone_set('Europe/Paris');
$order->update_meta_data('_date_transporte', strtotime("now") );
$order->save();
}
代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。
然后,您将使用以下内容显示您的自定义状态日期/时间更改:
if( $order->has_status('transporte') ){
// Set your default time zone (http://php.net/manual/en/timezones.php)
date_default_timezone_set('Europe/Paris');
$date_transporte = date( "d/M/Y g:i:s", $order->get_meta('_date_transporte') );
echo '<tr><td>'.$date_transporte.'</td><td>'.__("Transporte").'</td></tr>';
}
推荐阅读
- apache-zookeeper - 是否可以在单台机器上运行多个具有不同端口的 Zookeeper 实例?
- flutter - 颤振:堆栈内的警报对话框
- json - 如何根据以数组形式给出的键使用python过滤json字符串?
- java - 在spring boot中显示jsp页面时,它与jsp头文件一起显示
- python - 如何在 Windows 上使用 python 与 AMD GPU 交互
- c++ - C++ - 返回调用对象的引用
- python - 加载自定义指标失败
- kubernetes - 我可以从文件中创建 openshift 4.3 中的秘密吗?
- wiremock - 用于 https 调用的 Wiremock json 存根
- elasticsearch - 如何在 Laravel 中实现弹性搜索以自动完成