Ich habe ein benutzerdefiniertes Plugin erstellt und ich muss benutzerdefinierte Meta zum Benutzerprofil Bildschirm hinzufügen können.WordPress benutzerdefinierte user_meta nicht speichern
Ich habe die Meta-Anzeige, aber sie scheinen nicht zu aktualisieren. Dies ist die erste Instanz dieser Meta, so dass sie nicht bereits in der DB existiert.
Die Dateien befinden sich in meinem Plugin-Verzeichnis und nicht in meinem Thema.
<?php
add_action('show_user_profile', 'add_extra_social_links');
add_action('edit_user_profile', 'add_extra_social_links');
function add_extra_social_links($user)
{
?>
<h3>Web App Information</h3>
<table class="form-table">
<tr>
<th><label for="companyname">Company Name</label></th>
<td>
<?php
$args = array(
'post_type' => array('operators','clients'),
'posts_per_page' => -1,
'orderby' => 'title',
);
$myposts = get_posts($args);
echo '<select id="companyname"name="companyname">';
echo '<option value="' . esc_attr(get_the_author_meta('companyname', $user->ID)) . '">';
foreach ($myposts as $post) : setup_postdata($post); ?>
<option value="<?php echo $post->post_title; ?>">
<?php echo $post->post_title; ?>
</option>
<?php endforeach;
echo '</select>';
wp_reset_postdata();?>
</td>
</tr>
<tr>
<th><label for="companyadmin">Is this user a company admin.</label></th>
<td>
<?php
echo '<select id="companyadmin" name="companyadmin">';
echo '<option value="' . esc_attr(get_the_author_meta('companyadmin', $user->ID)) . '">';
echo '<option value="Y">Yes, is admin.</option>';
echo '<option value="N">No, is not admin.</option>';
echo '</select>';
?>
</td>
</tr>
</table>
<?php
}
add_action('personal_options_update', 'save_extra_social_links');
add_action('edit_user_profile_update', 'save_extra_social_links');
function save_extra_social_links($user_id)
{
update_user_meta($user_id,'companyname', $_POST['companyname']);
update_user_meta($user_id,'companyadmin', $_POST['companyadmin']);
}
?>
Das hat nicht funktioniert in Haken senden. Trotzdem danke. –