Контактная форма 7 выдает ошибку "wpcf7.initForm не является функцией" при загрузке страницы через AJAX (smoothstate.js)
Я пытаюсь реализовать контактную форму 7 на моем WordPress-сайте с smoothstate.js. Контактная форма отлично работает, когда страница, на которой она используется, загружается напрямую. Однако, если страница загружается через AJAX, появляется ошибка "wpcf7.initForm не является функцией".
Я не гений в AJAX, но я подумал о том, чтобы повторно инициализировать функцию AJAX onAfter. Я попытался это с помощью wpcf7InitForm(); но все равно не повезло.
Любая помощь по этой теме будет принята с благодарностью!
Вот мой текущий код AJAX:
//SmoothState Page Transitions
$(function(){
'use strict';
var $page = $('#main'),
options = {
debug: true,
prefetch: true,
onStart: {
duration: 800, // Duration of our animation
render: function ($container) {
// Add your CSS animation reversing class
$container.addClass('is-exiting');
// Restart your animation
smoothState.restartCSSAnimations();
}
},
onReady: {
duration: 0,
render: function($container, $newContent) {
// Remove your CSS animation reversing class
$container.addClass('is-loaded');
setTimeout(function(){
$container.addClass('unload');
}, 600);
setTimeout(function(){
$container.removeClass('is-loaded unload');
}, 900);
// Inject the new content
$container.html($newContent);
}
},
onAfter: function($container) {
$container.removeClass('is-exiting');
$('div.wpcf7 > form').wpcf7InitForm();
$(window).data('plugin_stellar').refresh();
}
},
smoothState = $("#main").smoothState(options).data("smoothState");
});
1 ответ
В версии 4.8 была изменена контактная форма 7, которая избавилась от jquery.form.js, поэтому функция wpcf7InitForm() больше не работает. Однако новая функция init была возвращена в v4.8.1
wpcf7.initForm
Используйте эту функцию вместо:
function initContactForm() {
$( 'div.wpcf7 > form' ).each( function() {
var $form = $( this );
wpcf7.initForm( $form );
if ( wpcf7.cached ) {
wpcf7.refill( $form );
}
});
}
Позвони в onAfter
и это должно решить вашу проблему.
Вот обсуждение на форуме поддержки Контактной формы 7: https://wordpress.org/support/topic/init-function-wpcf7initform/