Здравствуйте. Подскажите пожалуйста как правильно сделать 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(); } } });