php 在Woocommerce管理订单中显示已完成订单的用户名列表

yuvru6vn  于 2024-01-05  发布在  PHP
关注(0)|答案(1)|浏览(106)

在woocommerce如何显示在管理员订单列表中的用户已标记为“完成”的订单,如在此屏幕截图:


的数据

mwecs4sa

mwecs4sa1#

这可以通过以下代码来完成.

  1. // Save backend user and time for completion order
  2. add_action('woocommerce_order_status_completed', 'user_has_completed_order');
  3. function user_has_completed_order( $order_id ) {
  4. if ( ! is_admin() ) return;
  5. $user_id = get_current_user_id();
  6. if ( ! empty( $user_id ) && $user_id != 0 ) {
  7. $now = date('Y-m-d H:i:s');
  8. update_post_meta( $order_id, '_completed_by_user', $user_id );
  9. update_post_meta( $order_id, '_completed_datetime', $now );
  10. }
  11. }
  12. // Adding 1 new columns to backend order list
  13. add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column',11);
  14. function custom_shop_order_column($columns)
  15. {
  16. $reordered_columns = array();
  17. // Woocommerce version 3.3+ compatibility
  18. $location_after = version_compare( WC_VERSION, '3.3', '<' ) ? 'order_notes' : 'order_status';
  19. // Inserting the new column in a specific location
  20. foreach( $columns as $key => $column){
  21. $reordered_columns[$key] = $column;
  22. if( $key == $location_after ){
  23. $reordered_columns['completed_by'] = __( 'Completed by','woocommerce');
  24. }
  25. }
  26. return $reordered_columns;
  27. }
  28. // Adding the data for the additional column (example)
  29. add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 10, 2 );
  30. function custom_orders_list_column_content( $column, $post_id )
  31. {
  32. if( 'completed_by' == $column )
  33. {
  34. // Get custom post meta data
  35. $user_id = get_post_meta( $post_id, '_completed_by_user', true );
  36. $date_time = get_post_meta( $post_id, '_completed_datetime', true );
  37. $date = date('Y-m-d', strtotime($date_time));
  38. if( ! empty($user_id) ){
  39. $user_data = get_userdata( $user_id );
  40. $user_url = get_edit_user_link( $user_id );
  41. echo '<a href="'.$user_url.'" title="'.$date_time.'">'.$user_data->user_login.'</a>';
  42. }
  43. }
  44. }

字符串
代码放在你的活动子主题(或活动主题)的function.php文件中。测试和工作。
它可以在所有woocommerce版本中工作,包括最后一个版本3.3,其中订单列表略有改进:


的数据

展开查看全部

相关问题