2016-06-02 21 views
0

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']); 

} 

?>

Antwort

0

try Funktion get_current_user_id in $ user_id

Ich glaube, Sie Parameter verwenden, aber nicht

+0

Das hat nicht funktioniert in Haken senden. Trotzdem danke. –