Переменная плагина PHP Wordpress, не отражающая встроенный стиль - PullRequest
0 голосов
/ 01 июня 2018

Я разрабатываю плагин Wordpress, и у него есть шорткод, который я использую для распечатки содержимого на страницу / пост.

В моем файле плагина я инициализировал все страницы меню и настройки, у меня 2настройки на странице администрирования плагина, и одним из них является Brand Color, так что пользователи могут изменять цвет фирменного стиля формы, которую выдает шорткод.

Данные сохраняются в таблице параметров wp в WordPress и все работаетХорошо, проблема в том, что когда я пытаюсь отобразить содержимое переменной, ничего не происходит?

Что я сделал:

Сначала я добавил глобальную переменную массива в верхней части моего php-файла плагина.:

    $options = array();

    options_init(){

        if(current_user_can('manage_options')):

           global  $options;

            if(isset($_POST['form_submitted'])){

              $hidden = esc_html($_POST['form_submitted']);

                if($hidden == 'Y'){

                    $Brand = $_POST['brand_color'];
                    $options['brand_color'] = $Brand;

                    update_option('general_info', $options);
                }   

            }
                $options = get_option('general_info');

         endif
     }

Итак, теперь я сохранил данные, затем извлек их и сохранил в своей переменной options.В другой функции я создаю функцию шорткода и контент, который отображается на экране, когда шорткод используется.

Сначала я вызываю свою глобальную переменную, а затем вывод для содержимого шорткода.

add_shortcode('my-form', 'budget_form');
function budget_form() {
global  $options;   
  ?>
<div class="monkey-budget-planner-wrapper">
        <div class="monkey-header-wrapper" style="background:<?php echo $options['brand_color'] ?>">
       </div>
</div>

    <?php
}

Проблема в том, что стиль не выводится, ошибок нет, и в инспекторе я вижу, что вывод пуст.Я не уверен, что я делаю не так?

1 Ответ

0 голосов
/ 02 июня 2018

Почему бы и нет?Вы также можете комбинировать некоторые из ваших условий.

  options_init(){

        if(current_user_can('manage_options') && isset($_POST['form_submitted'])):

              $hidden = esc_html($_POST['form_submitted']);

                if( $hidden == 'Y'){

                    $brand = $_POST['brand_color'];

                    update_option('brand_color', $brand);
                }   


         endif
     }

Чем вы можете использовать

    add_shortcode('my-form', 'budget_form');

        function budget_form() { 

          $color = get_option('brand_color'); ?>

          <div class="monkey-budget-planner-wrapper">
                 <div class="monkey-header-wrapper" style="background:<?php echo $color ?>"></div>
          </div>

    <?php } ?>

, если вам нужно более одного набора параметров, чем просто создать больше с помощью update_option(),, если высобираемся установить конкретные значения страницы, я бы предложил update_post_meta и get_post_meta().update_option() обычно для данных на уровне темы.

...