Как получить значение из таблицы wp_usermeta в базе данных?
Я создаю одну настраиваемую регистрационную форму и добавляю дополнительные поля адреса, номера мобильного телефона, но все подписчики делают таблицу своей, но как получить столбец адреса значения в моей таблице,
<?php
global $wpdb;
// $authors = $wpdb->get_results("SELECT * from $wpdb->usermeta WHERE meta_key = 'wp_capabilities' AND meta_value = 'a:1:{s:10:\"subscriber\";b:1;}'");
$mysqli=NEW mysqli('localhost','root','','wp1');
$sql = "SELECT wp_users.ID, wp_users.user_nicename, wp_users.user_email,wp_users.user_registered FROM wp_users INNER JOIN wp_usermeta
ON wp_users.ID = wp_usermeta.user_id
WHERE wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%subscriber%'
-- AND wp_users.user_email
ORDER BY wp_users.user_nicename";
$result = $mysqli->query($sql);
// var_dump($resultl);
// var_dump($result);
echo "<table class='table table-striped table-class' id= 'table-id'>
<thead>
<tr>
<th style='padding:20px;border:1px solid;color:#489ACF;width:150px; '>Email</th>
<th style='padding:20px;border:1px solid;color:#489ACF; '>Username</th>
<th style='padding:20px;border:1px solid;color:#489ACF; '>Date</th>
<th style='padding:20px;border:1px solid;color:#489ACF; '>Address</th>
<th style='padding:20px;border:1px solid;color:#489ACF; '>Mobileno</th>
</tr> <thead>";
while($rows=$result->fetch_assoc()){
// $user_email=$rows['user_email'];
// $user_login=$rows['user_nicename'];
// $date=$row['user_registered'];
// $user_id=$rows['ID'];
// echo $user_id;
echo " <tbody> <tr>";
// echo "<td>" . $row['id'] . "</td>";
echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" . $rows['user_email']. "</td>";
echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" .$rows['user_nicename']. "</td>";
echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" .$rows['user_registered']. "</td>";
// echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" .$rows['address']. "</td>";
// echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" .$rows['mobile_no']. "</td>";
echo "</tr> <tbody>";
}
echo "</table>";
?>
как получить значение и сделать таблицу.... внутреннее соединение работает на полную, но как
1 ответ
Поскольку вы используете wordpress, имеет смысл использовать Wordpress API. Вот как вы находите пользователей по определенным мета-атрибутам:
$users = get_users(array(
'meta_key' => 'wp_capabilities',
'meta_value' => 'subscriber',
...any other keys => values...
));
Если вам нужно получить пользователя по ролям, вы можете получить таких пользователей
$users = get_users( array(
'role' => 'subscriber',
'orderby' => 'user_nicename',
'order' => 'ASC'
));
...
foreach ( $users as $user ) ...
Таким образом вы получите массив WP_User s. Выполните итерацию массива и извлеките из него все необходимые данные.
Дополнительную информацию можно найти в документации Wordpress о функции, а также об объекте WP_User. Чтобы добавить пользовательские метаданные, вам также необходимо использовать предоставленный wordpress api, это всего лишь образец добавления метаданных, но не правильный метод добавления ролей:
add_user_meta( $user_id, 'wp_capabilities', 'subscriber', false /*non unique*/ );
Предположим, что указанный выше $user_id вы получили с помощью функции вроде wp_insert_user или любого другого способа получить идентификатор.
Чтобы правильно добавить любые роли, используйте функцию add_role или любые другие функции ролей https://developer.wordpress.org/reference/functions/add_role/