Создавая полезные jQuery улучшения, вы должны обязательно учитывать тот факт, что пользователь всегда может отключить выполнение Javascript в своем браузере. Это никоим образом не должно влиять на функционирование сайта: он обязан находиться в рабочем состоянии даже при блокированных сценариях.
Наш клиент оказался очень доволен представленным регистрационным решением. Процесс регистрации великолепно работает даже при отключенном Javascript. Единственный недостаток, которой я вижу — это то, что форма регистрации загружается за пределами стандартной WordPress темы. Однако это обусловлено использованием плагина Colorbox и загрузкой формы в модальное окно.
В целом же, я не считаю, что это является такой уж серьезной проблемой. Проанализировав статистику посещений моих ресурсов, я могу с уверенностью сказать, что отыскать пользователя с отключенным Javascript очень сложно. Два или три человека, которые сделали это, скорее всего, использовали браузеры, отображающие только текстовую информацию. Таким образом, выход за пределы темы WordPress может быть вообще не замечен посетителями.
Однако всегда существует шанс, что клиент попросит сделать так, чтобы форма работала без Colorbox в пределах шаблона WordPress, при отключенном Javascript. Чтобы реализовать это, я придумал следующее решение.
Во-первых, нам понадобится расположить форму на двух страницах WordPress. Первая страница будет называться register (мы уже создавали ее на базе специального шаблона), а вторая — register-b. Для страницы register-b мы не будем создавать отдельный шаблон (оставим шаблон по умолчанию). Вы можете разместить cform на любом количестве страниц и записей, следовательно, расположение формы на двух страницах не должно вызывать никаких проблем.
Во-вторых, нам необходимо будет открыть шаблон category-3.php и изменить ссылку для вызова стандартной страницы темы:
... <p><a class="register" href="/wp-jqury/register-b/?evnt=<?php the_ title(); ?>">Register</a></p> ...
Наконец, в файле custom-jquery.js нам понадобится создать простой jQuery скрипт, который будет перезаписывать ссылку на модальное окно формы при помощи удаления «-b». Удостоверьтесь в том, что данный скрипт помещен перед вызовом скрипта colorBox, чтобы href трансформировался до установки функций Colorbox.
... jQuery("a[href*='register']").each(function(){ this.src = this.src.replace(/register\-b/, "/register/"); }); ...
Если Javascript будет включен, jQuery изменит все регистрационные href и весь процесс пойдет как было запланировано, при непосредственном участии Colorbox. В противном случае, пользователь пройдет регистрацию с помощью обычной формы WordPress. Как вы можете увидеть на следующем скриншоте, форма просто бы загрузилась как часть сайта (при отключенном Javascript).