Гравітаційні форми додавання показу нічого

I'm creating a custom template inside my WordPress theme, since my template is a completely different layout than my active theme, the template has it's own header & footer and inside of both I have properly declared wp_head(); and wp_footer(); respectively.

У моєму шаблоні коду я намагаюся відобразити гравітаційну форму, використовуючи do_shortcode, але не показує форми. Коли я перевіряю область, я бачу код форми, але до .gform_wrapper div додано style = "display: none" .

Як ще одна примітка, гравітаційні форми працюють відмінно на всьому місці мого сайту (всі сторінки/повідомлення використовують активну тему).

Будь-які пропозиції дуже цінуються.

Дякую

3

12 Відповіді

Хоча це старе питання, воно все-таки з'явилося першим, коли я шукав цю проблему, тому я додаю своє рішення у випадку, якщо інші шукають теж. Якщо ваша тема переміщує сценарії до нижнього колонтитула (часто рекомендується з міркувань продуктивності), включивши одну або більше з наступних рядків коду в functions.php:

remove_action('wp_head', 'wp_print_scripts'); 
remove_action('wp_head', 'wp_print_head_scripts', 9);
add_action('wp_footer', 'wp_print_scripts', 5);
add_action('wp_footer', 'wp_print_head_scripts', 5);

Вам також знадобиться перенести сценарії Gravity Forms на нижній колонтитул, тому вони викликаються після jQuery. Для цього можна додати наступний код до файлу functions.php своєї теми:

add_filter('gform_init_scripts_footer', 'init_scripts');
function init_scripts() {
    return true;
}
15
додано
Біт add_filter фіксував це для мене також
додано Автор BIOSTALL, джерело
Частина add_filter - це все, що мені потрібно - спасибі за це @Linn :)
додано Автор Simon Pollard, джерело

Це тому, що у вашій формі використовується умовна логіка. Будь-яка умовна логіка присутня, вся форма задана для відображення: none; а потім JavaScript використовується тільки для показу полів, які повинні бути показані.

Однак це вимагає Gravity Forms здатність виводити необхідний Javascript за допомогою WordPress, побудованої в функції enqueue ... яка виводить Javascript у нижній колонтитул.

Ваша тема, ймовірно, не має виклику цієї функції у файлі footer.php вашої теми:

<? PHP wp_footer(); ?>

Цей виклик функції, який повинні мати всі теми (але багато хто забув включити), дозволяє динамічно виводити плагіни в колонці теми. Якщо його немає, тема не може вивести потрібний код.

Цілком ймовірно, чому ваша форма не відображається належним чином.

Answer from: http://www.gravityhelp.com/question/why-is-there-a-style-attribute-of-displaynone-being-added-my-form-isnt-showing-up/

5
додано
Велика порада! @SarahLewis прибив його.
додано Автор Fydo, джерело
Для тих, хто більше не може дістатися до наданого посилання (оскільки вони переїхали), тут посилання на webarchive
додано Автор semihcosu, джерело
Це дало мені поняття, яке мені потрібно було подивитися на інші помилки Javascript на сторінці. Позбавлення від помилок зробило форми знову.
додано Автор Sarah Lewis, джерело
Те ж проблема тут. Для мене немає нічого спільного з wp_footer (). Я також змушений до CSS рубати.
додано Автор Mike Averto, джерело
Дякуємо за спробу допомогти, wp_footer знаходиться в нижній частині теми і немає умовних логічних полів.
додано Автор user1776729, джерело

Чи встановлено "display: none" для самого класу .gform_wrapper? Потім просто змініть його в CSS-файлі Gravity Forms.

Проте, обгортка може мати ідентифікатор або інший клас, для якого не можна встановити жодного дисплея.

І останнє, але не менш важливе, може бути розбита анімація jQuery для обгортки, яка може бути причиною того, що вона залишається прихованою.

2
додано
Якщо ви зміните гравітаційні форми css, ваші зміни будуть перезаписані відразу після оновлення плагіна. Ви повинні додати зміни до CSS вашої теми, використовуючи більш специфічні селектори css.
додано Автор McNab, джерело
<div class = "gf_browser_chrome gform_wrapper" id = "gform_wrapper_4" style = "display: none"> - це автоматично додається до форми при використанні коду. Для мене немає місця, щоб зняти його. Крім того, його додають до сторінки власного шаблону. Одна й та ж форма, той самий шорткод на інших сторінках/посадах працює нормально "без відображення: немає стилю"
додано Автор user1776729, джерело

Я не думаю, що це допоможе, але, можливо, спробуйте це:

.gform_wrapper{
   display:block !important;
}

Я знаю, що вбудовані стилі перекривають будь-які таблиці стилів, але ! Important допоміг мені перекрити деякі стилі плагінів.

Спробуйте також шукати стиль style = "display: none" у файлах плагінів. Використовуйте Textwrangler або інший редактор, де можна шукати декілька файлів. Це також допомагає мені дуже багато для редагування тем і плагінів.

1
додано
так! його робота це правильне рішення? або будь-яким іншим способом вирішення проблеми.
додано Автор balamurugan, джерело

Я нарешті отримав це до роботи.

Для того, щоб умовна логіка працювала, jQuery, що поставляється з WordPress, має бути скасовано, 1.8.3 треба завантажити в заголовок і gravityforms.min.js, conditional_logic.min.js і jquery.maskedinput.min.js повинні бути завантажені в колонтитул:

<?php
 function modify_jquery_version() {
 if (!is_admin()) {
     wp_deregister_script('jquery');
     wp_register_script('jquery',
     'https://code.jquery.com/jquery-1.8.3.min.js', false, '1.8.3');
     wp_register_script('migrate',
     'https://code.jquery.com/jquery-migrate-1.4.1.min.js', false, '1.4.1');

     wp_enqueue_script('jquery');
     wp_enqueue_script('migrate');
     }
 }
 add_action('wp_enqueue_scripts', 'modify_jquery_version');

 function footer_load() {
 if (!is_admin()) {
wp_enqueue_script('gravity','/wp-content/plugins/gravityforms/js/gravityforms.min.js','','',true);
wp_enqueue_script('conditional','/wp-content/plugins/gravityforms/js/conditional_logic.min.js','','',true);
wp_enqueue_script('masked','/wpcontent/plugins/gravityforms/js/jquery.maskedinput.min.js','','',true);
    }
}

 add_action('wp_enqueue_scripts', 'footer_load');
?>
1
додано

Have you tried removing style="display:none" from the .gform_wrapper div? Or changing it to style="display:block"

1
додано
Для мене немає місця, щоб зняти його. Крім того, його додають до сторінки власного шаблону. Одна й та ж форма, той самий шорткод на інших сторінках/посадах працює нормально "без відображення: немає стилю"
додано Автор user1776729, джерело
Можливо, вам доведеться шукати файли плагінів і шукати gform_wrapper або весь дисплей. Це де-небудь де тільки питання знахідки це.
додано Автор Adam G, джерело

Моя тема WP викликала стару версію jQuery (розміщена на Google), і це викликало відображення: none property для застосування до моїх Gravity Forms. Я оновив сценарій enqueue до останньої версії jQuery і вирішив проблему.

1
додано

Я мав цю проблему теж, фактичне рішення полягає в тому, щоб додати     gravity_form_enqueue_scripts ($ form_id) у ваш файл header.php.

From the Gravity forms support doc itself: https://www.gravityhelp.com/documentation/article/embedding-a-form/#enqueue-scripts-and-styles

1
додано

Цю проблему може спричинити будь-який інший скрипт на сторінці, що викидає помилку. Перевірте консоль, щоб переконатися, що не існує зламаних скриптів

0
додано

Мені вдалося виправити свою проблему, просто вимкнувши плагіни під назвою Autoptimize, які оптимізують веб-сайти, пов'язані з кодом CSS і JavaScript, і стискають його.

Досить очевидним, як тільки ви його знайшли.

0
додано
Було б краще, щоб усунути неполадки, як на AO FAQ дійсно, деактивація є таким ... крайня міра ;-)
додано Автор futtta, джерело

Я зіткнувся з цим питанням тільки зараз.

Дві проблеми: Ця стара тема використовувала jQuery 1.5.1 і всі додані в неї додатки були написані для старіших jQuery. Умовна логіка у формах Gravity Forms не працювала через стару версію jQuery І тому, що я перейменував поле умовної логіки.

Після видалення/виправлення деяких невірних логічних умов падіння і оновлення версії jQuery на сайті, все почалося знову.

0
додано

Для мене причиною була помилка консолі в FireFox, пов'язана з

jQuery(document).bind('gform_post_render', function(ev){
     console.log(event, ev);
});
0
додано