如何在 Woocommerce 管理订单列表自定义列中显示用户名?

2023-12-26

我正在尝试创建一个自定义的 Woocommerce 订单概述列来显示 WordPress 用户。

这是驻留在functions.php file:

// ADDING A NEW COLUMN
add_filter( 'manage_edit-shop_order_columns', 'k2i_extra_column_eldest_players', 20 );
function k2i_extra_column_eldest_players($columns)
{
    $reordered_columns = array();

    // Inserting columns to a specific location
    foreach( $columns as $key => $column){
        $reordered_columns[$key] = $column;
        if( $key ==  'order_status' ){
            // Inserting after "Status" column
            $reordered_columns['skb-client'] = __( 'Oudste Speler','theme_domain');
        }
    }
    return $reordered_columns;
}

// Adding custom fields meta data for the column
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 20, 2 );
function custom_orders_list_column_content( $column, $post_id )
{
    switch ( $column )
    {
        case 'skb-client' :
            // Get custom post meta data
            $my_var_one = get_post_meta( $post_id, 'user_name', true );
            if(!empty($my_var_one))
                echo $my_var_one;

            // Testing (to be removed) - Empty value case
            else
                echo '<small>(<em>no value</em>)</small>';

            break;
    }
}

我认为我的错误在于这行代码:

$my_var_one = get_post_meta( $post_id, 'user_name', true );

元键'user_name'可能不是合适的...但我似乎找不到合适的。

对此的任何帮助将不胜感激。


Updated:正确的meta_key得到user ID在 woocommerce 订单中是_customer_user, so:

$user_id = get_post_meta( $post_id, '_customer_user', true );

或者你可以使用$the_order全局对象为:

global $the_order;
$user_id = $the_order->get_customer_id();

之后就可以从这个用户ID获取WordPress用户数据了:

$user_data = get_userdata( $userid );

echo 'Username: ' . $user_data->user_login . "<br>";
echo 'User email: ' . $user_data->user_email . "<br>";
echo 'User roles: ' . implode(', ', $user_data->roles) . "<br>";
echo 'User ID: ' . $user_data->ID . "<br>";
echo 'User full name: ' . $user_data->last_name .  ", " . $user_data->first_name . "<br>";

所以在你的代码中:

// Adding a custom new column to admin orders list
add_filter( 'manage_edit-shop_order_columns', 'custom_column_eldest_players', 20 );
function custom_column_eldest_players($columns)
{
    $reordered_columns = array();

    // Inserting columns to a specific location
    foreach( $columns as $key => $column){
        $reordered_columns[$key] = $column;
        if( $key ==  'order_status' ){
            // Inserting after "Status" column
            $reordered_columns['skb-client'] = __( 'Oudste Speler','theme_domain');
        }
    }
    return $reordered_columns;
}

// Adding custom fields meta data for the column
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 20, 2 );
function custom_orders_list_column_content( $column, $post_id )
{
    if ( 'skb-client' != $column ) return;

    global $the_order;

    // Get the customer id
    $user_id = $the_order->get_customer_id();

    if( ! empty($user_id) && $user_id != 0) {
        $user_data = get_userdata( $user_id );
        echo $user_data->user_login; // The WordPress user name
    }
    // Testing (to be removed) - Empty value case
    else
        echo '<small>(<em>Guest</em>)</small>';
}

代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并有效

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Woocommerce 管理订单列表自定义列中显示用户名? 的相关文章

  • 在 CodeIgniter、SQL 中调用布尔值的成员函数 result()

    我试图根据搜索关键字查看 data results 中有哪些数据 但每次都会出现上述致命错误 有人可以帮助我吗 我的控制器 public function execute search search term this gt input g
  • AppCache清单错误

    Edit 我不得不删除一些链接 我的清单页面似乎导致我的网页出现错误 当您第一次访问该页面时 所有内容似乎都已成功缓存 但刷新后无法获取存在的文件 我在这里制作了一个快速测试页面来查看 这是我的清单文件 这是一个由 php 和 javasc
  • bbPress 有 API 吗?

    我正在寻找 bbPress 的 API 我在这里搜索过 但我看到的帖子很旧 那么有没有 bbPress 的 api 如果是 请问如何访问 如果没有 我是否可以通过 Android 应用程序实现用户注册和登录 另外 检查这个存储库 https
  • 为什么php邮件功能在xampp中不起作用

    我在使用 xampp 时遇到问题 我想检查邮件表格 但看不到任何结果 我像本网站中的教程一样配置 Mercury 32 http system66 blogspot com 2010 01 how to send mail from loc
  • 无限滚动启用(wordpress)

    因此 我发现本教程可以启用无限滚动 http wptheming com 2012 03 infinite scroll to wordpress theme http wptheming com 2012 03 infinite scro
  • XMLHttpRequest() 并输出 csv 文件

    我可以通过向新窗口发出 html 表单 POST 并使用 PHP 响应来成功生成 csv 文件 header Content type text csv header Content Disposition attachment filen
  • PHP静态函数

    我有一个关于 php 中的静态函数的问题 假设我有一堂课 class test public function sayHi echo hi if I do test sayHi 它工作没有问题 class test public stati
  • JS 中的模板?

    我们都喜欢简单 结构化且易于遵守的代码 我们试图在外观和逻辑之间带来差异 例如 在 PHP 中 我们可以使用模板机制 即创建一个带有 php 标签的 html 格式的文件 该文件使用一些预定义的变量 这些变量可以通过逻辑负责任的脚本来使用
  • php-fpm 需要在监狱环境中放置哪些系统文件才能在 ubuntu 上正常运行?

    我在 ubuntu 12 04 上使用 php5 fpm 并且为 nginx 托管的每个域都有单独的池和 chroot 位置 不过 我知道有些系统文件需要直接放在jail中 但是我需要哪些呢 我知道 dns 解析当前不起作用 并且我读过一些
  • 在 Symfony2 (Doctrine) 和 MySQL 中启用微秒

    我有一个具有一列 日期时间 类型的实体来存储时间戳 ORM Column type datetime protected timestamp 我有 MySQL 5 5 40 我发现它不存储微秒 所以我切换到 5 6 21 并导入了所有表格和
  • Monolog - 仅记录特定级别的错误

    我在普通 PHP 应用程序中使用 Monolog 我只想记录特定级别的错误 INFO 和不高于 因为我还有其他处理程序 这是我的代码
  • 仅限使用一张优惠券,删除 Woocommerce 中之前使用的其他优惠券

    我正在动态制作优惠券以使用用户电子邮件作为优惠券 但如何限制用户每个购物车仅使用一张优惠券 如果使用多个自动从购物车中删除前一个 add filter woocommerce get shop coupon data generate co
  • 致命错误:在非对象上调用成员函数 FetchRow()

    这是我的错误消息致命错误 Call to a member function FetchRow on a non object in C AppServ www hfix include care api classes class min
  • PHP 中的延迟加载类方法

    我有一堂课 里面有一些相当大的方法 在它的基本和最常见的状态下 大多数功能并不是必需的 所以我想知道是否有一种方法可以延迟加载类的一部分 这些方法需要能够访问私有 受保护的成员 因此如果这些方法是类的本机方法 那将是理想的选择 但是在寻找其
  • 从套接字读取数据,发送响应并关闭

    我正在开发一个 c 和 php 项目 其中 PHP 脚本打开一个到 c 程序的套接字 c 程序将读取数据 然后发回响应 在 PHP 脚本中我有以下内容 echo Opening Client fp fsockopen 127 0 0 1 1
  • 无法在 PHP 中接收 JSON POST 请求

    我正在将 JSON 对象从 Java 传递到 PHP 我正在使用 jdk 1 8 和 WAMPserver 下面是Java代码 import java io IOException import org apache http client
  • WordPress 本地主机[重复]

    这个问题在这里已经有答案了 2个人如何在不同计算机的本地主机上开发一个网站 我们想为一家公司创建一个网站 但不在主机上运行 理想情况下 我们希望在完成后立即启用它 但我们是在两台不同的计算机上工作 有谁知道我们如何用不同的计算机同时处理这个
  • PHP 中的随机排列对象

    如何在 PHP 中对对象进行排序 我试过shuffle 但这需要一个数组 Warning shuffle expects parameter 1 to be array object given in var www index php o
  • 构建、部署、配置和回滚所需的 Jenkins 指南,保留 5 个版本

    我对詹金斯很陌生 有一定的了解 但需要进一步的指导 我在 Git 存储库上有一个 PHP 应用程序 它使用 Composer 具有资产 具有用户上传的媒体文件 使用 Memcache Redis 具有一些代理 工作人员 并且具有迁移文件 到
  • Laravel 5 中的两个登录表单

    我一直想知道如何在 laravel 5 中制作两个登录表单一段时间 原因是因为我有一个多站点项目 我在一个项目中拥有管理站点和公共站点 我对路由进行了分组 以便管理路由回答一个域 公共路由回答另一个域 如下所示 Route group ar

随机推荐