Здравствуйте. Подскажите пожалуйста как правильно сделать submit формы профиля из jQuery?
У меня свой обработчик на стандартной кнопке обновления профиля, и если я делаю простой сабмит:
$('#your-profile').submit();
то поля не сохраняются в базе. Я так понял там в POST должен передаваться параметр "submit_user_profile", который проверяется в файле /wp-recall/add-on/profile/index.php и у меня он соответственно не передается при обычном сабмите. Вроде как в форме должно быть скрытое поле для проверки (как в инструкции вот тут:
), но я его не нахожу. Подскажите как можно выйти из ситуации. Заранее спасибо.
Да, эта кнопка осталась, и name у нее "submit_user_profile". Но я перехватываю событие click на этой кнопке и ставлю ей event.preventDefault();
Далее делаю свои манипуляции и после хочу отправить форму. Делаю форме сабмит вручную из JS, но видимо этого недостаточно, раз данные не сохраняются, в переменной POST нет параметра "submit_user_profile". Форма сабмитится, но без редиректа и без записи данных.
Вот мой обработчик. По сути это перехват отправки и проверка моих полей, в зависимости от значения которых форма должна либо сразу отправляться, либо выводить всплывающее окно и не отправляться.
$('#cpsubmit').on('click', function(event) {
event.preventDefault();
var check_form = rcl_check_profile_form();
console.log('Сохраняем данные... ')
var city = $('#user_field_city').val();
var category = $('#user_field_category').val();
// Проверяем обязательные поля
if ( check_form ) {
// Если есть значения в полях города и категории...
if ( city && category ) {
$.ajax({
url: myajax.url,
type: 'POST',
data: 'action=busy_category&city=' + city + '&category=' + category + '',
beforeSend: function( xhr ) {
$('#cpsubmit').addClass('button-wait');
}
})
.done(function(data) {
console.log(data);
var user_data = JSON.parse(data);
// Если категория свободна
if ( user_data.is_free ) {
// Обновлем профиль
$('#your-profile').submit();
}
// Если категория занята, то
else {
// Проверяем что это категория не пользователя и выводим окно о занятости категории с уведолением на почту
if ( !user_data.current_user ) {
$.magnificPopup.open({
items: {
src: '#busy-srvice-popup',
type: 'inline'
}
});
}
// Если это категория пользователя (оплаченная), то обновляем профиль
else {
$('#your-profile').submit();
}
}
})
.fail(function() {
console.log("error");
})
.always(function() {
$('#cpsubmit').removeClass('button-wait');
console.log("complete");
});
}
// Если нет значений в полях города и категории (заблокированы у оплаченных), тогда просто обновляем профиль
else {
$('#your-profile').submit();
}
}
});