WooCommerce/Wordpress 中自定义字段的数据存储在哪里

Where is the data stored for custom fields in WooCommerce/Wordpress

我有一个插件可以将自定义字段添加到 WooCommerce 帐户页面。以下面的apikey字段为例(这只是一个随机字段,可以是任何东西)

add_action( 'woocommerce_edit_account_form', 'add_api_info_to_account_form' );
function add_api_info_to_account_form() {
  $user = wp_get_current_user();
  ?>
  <fieldset>
    <legend><?php esc_html_e( 'GHL/MBO Sync', 'woocommerce' ); ?></legend>

    <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
        <label for="apikey"><?php _e( 'MBO API Key', 'woocommerce' ); ?></label>
        <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" 
         name="apikey" id="apikey" value="<?php echo esc_attr( $user->apikey ); ?>" />
    </p>

每当我进入个人资料页面时,我都会看到值 $user->apikey 是从 wp_get_current_user()

加载的

但是,在我的其他文件中,我试图使用 get_users() 访问每个用户的 API 密钥,并且 apikey 信息是未 returned.

有没有办法 return 使用所有用户的数组来自定义字段?

这是第二个文件中的代码:

$users = get_users();
print_r($users);

它return是一个大数组,但没有 apikey 字段

欢迎使用 Whosebug,要加载用户元数据(自定义字段),您需要使用此函数 get_user_meta($user_id, $meta_key).

所以简单来说,让用户API键使用这条线

global $current_user; 
$user_api_key = get_user_meta($current_user->id, 'apikey' );

您可以将 $user_api_key 放在任何您想要显示 apikey 的地方。 请试试这个,让我知道它是否适合你。我是来帮忙的。

WordPress 使用 wp_users table 将用户数据存储在其数据库中。 wp_userstable中只存储了最基本的用户信息。它仅包括每个用户的用户名 (user_login)、密码 (user_pass) 和电子邮件 (user_email)。为了存储额外的用户数据,使用 wp_usermeta table。来自用户 table 的 ID 字段和来自 wp_usermeta table 的 user_id 字段用于 link 同一用户的记录。 要检索用户元数据,您可以使用 get_user_meta 函数。

有关更多详细信息,请查看 WordPress 文档 https://developer.wordpress.org/reference/functions/get_user_meta/