Я пытаюсь создать несколько настраиваемых полей профиля пользователя, чтобы позволить нашим пользователям добавлять больше программных навыков на страницу своего профиля.
Проблема, с которой я сталкиваюсь, заключается в том, чтобы всегда сохранять только одну мета для "skills"
и одна мета для "skills_percent"
, даже если я добавлю больше входных данных!
Что мне нужно сделать, чтобы сохранить все из них при добавлении дополнительных полей?
И как отобразить все из ниха также в интерфейсе!
вот что я сделал.
<table class="skills-table">
<tr>
<th><label for="skills"><?php _e("Skills"); ?></label></th>
<td>
<div class="multi-field-wrapper">
<button type="button" class="add-field">+</button>
<div class="multi-fields">
<div class="multi-field">
<input type="text" name="skills" id="skills" value="<?php echo esc_attr( get_the_author_meta( 'skills', $current_user->ID ) ); ?>" class="textbox" />
<input type="text" name="skills_percent" id="skills_percent" value="<?php echo esc_attr( get_the_author_meta( 'skills_percent', $current_user->ID ) ); ?>" class="textbox" /><br />
<button type="button" class="remove-field">-</button>
</div>
</div>
</div>
<span class="description"><?php _e("Please enter your programs or software in the first box and how many percent in the second box ."); ?></span>
</td>
</tr>
</table>
скрипт для динамического добавления / удаления полей.
<script type="text/javascript">
jQuery(document).ready(function($) {
$('.multi-field-wrapper').each(function() {
var $wrapper = $('.multi-fields', this);
$(".add-field", $(this)).click(function(e) {
$('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
});
$('.multi-field .remove-field', $wrapper).click(function() {
if ($('.multi-field', $wrapper).length > 1)
$(this).parent('.multi-field').remove();
});
});
});
</script>
обновление пользовательской мета
if ( !empty( $_POST['skills'] ) )
update_user_meta( $current_user->ID, 'skills', esc_attr( $_POST['skills'] ) );
if ( !empty( $_POST['skills_percent'] ) )
update_user_meta( $current_user->ID, 'skills_percent', esc_attr( $_POST['skills_percent'] ) );
с отображением мета автора в переднем конце
<dt class="j-s-m">Skills</dt><dd class="text-intro"><?php echo get_the_author_meta('skills', $curauth->ID); ?> <?php echo get_the_author_meta('skills_percent', $curauth->ID); ?></dd>