WordPress如何从Dokan供应商设置的对象数组中提取seller_url值
实现方法
你查询到的meta_value是PHP序列化后的数组字符串,需要先反序列化才能读取内部的seller_url字段,以下是适配你现有查询逻辑的实现代码:
global $wpdb; $result = $wpdb->get_results("SELECT `meta_value` FROM `wp_usermeta` WHERE `meta_key` = 'dokan_profile_settings'"); $seller_url = ''; // 先校验索引3的对象是否存在,避免下标越界报错 if (isset($result[3])) { // 使用WordPress原生函数反序列化,兼容非序列化格式的异常情况 $profile_settings = maybe_unserialize($result[3]->meta_value); // 校验字段存在性后取值 if (isset($profile_settings['seller_url'])) { $seller_url = $profile_settings['seller_url']; } } // 输出或使用拿到的seller_url echo $seller_url;
更推荐的规范写法
如果已知目标供应商的用户ID,无需手写SQL查询,直接使用WordPress原生的元数据查询函数更安全简便:
// 将下方的$vendor_id替换为目标供应商的实际用户ID $profile_settings = get_user_meta($vendor_id, 'dokan_profile_settings', true); $seller_url = isset($profile_settings['seller_url']) ? $profile_settings['seller_url'] : '';
内容的提问来源于stack exchange,提问作者VishakhaNehe
相关产品推荐
相关产品推荐

