Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Создание сайтов Харьков

Используем шаблон в плагине отзывов на сайте WP Customer Reviews

4 декабря 2015 в 11:15 Автор: Nikita_Sp в категории Плагины и модули 11 комментариев

При создании сайта, разработчики не редко сталкиваются с задачей создания отдельной страницы для отзывов о компании или продукте. Учитывая невысокую популярность такого функционала, бесплатных модулей, реализующих отдельную страницу с отзывами, не много, и если вы создаете сайт на CMS WordPress, то скорей всего вы придете к плагину WP Customer Reviews.

Плагин отзывов на сайт WP Customer Reviews

Данный плагин является частично бесплатным — вы можете приобрести Premium версию, которая даст вам больше возможностей, среди прочих будет возможность использования шаблонов. Однако, ваш покорный слуга, нашел способ изменять шаблон вывода отзывов плагина WP Customer Reviews без приобретения лицензии.

Начнем, пожалуй, с того, что я не являюсь сторонником пиратства и с уважением отношусь к чужому труду, однако, по моему скромному мнению, уж если ты решился распространять модуль бесплатно — то дай возможность настроить его вид! Обрежь функционал, запрети добавлять дополнительные поля к отзывам, да что угодно, но дай возможность настроить вывод соответственно дизайну сайта.

Данная статья является ознакомительной и я настоятельно рекомендую приобретать лицензии на Premium версии плагина WP Customer Reviews.

Итак, вышло обновление плагина WP Customer Reviews и в новой (3.x) версии почему-то внезапно настройка внешнего вида попала под Premium лицензию, хотя в предыдущих версиях 2.x настроить вывод отзывов данного плагина было можно, изменяя файлы в директории самого дополнения (wp-content/plugins/wp-customer-reviews).

Шаблон WP Customer Reviews 3.x

Чтобы изменить вид отзывов в плагине WP Cusomer Reviews 3.x, придется модифицировать и исполнимые файлы модуля, чтобы заставить его использовать шаблоны в соответствующей папке wp-content/plugins/wp-customer-reviews/include/templates. Сами шаблоны для бесплатной лицензии хранятся в базе данных в таблице wp_options с ключом option_name = wpcr3_options, и выглядят как показано на рис. 1. Но хранение и редактирование шаблона в БД, в моем понимании, крайняя степень мазохизма.

Шаблон WP Customer Reviews в настройках в таблице wp_options

CSS стили также генерируются из базы данных. Также, обратите внимание, что при каждом обновлении вам необходимо будет повторять процедуру, т.к. файлы шаблонов будут перезаписаны, а CSS файлы сгенерированы заново! Поэтому рекомендую стили указывать в вашем основном CSS файле, и сделать бекап модифицированного модуля.

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

wpcr_Goatee::fill($this->options['templates']['frontend_review_item'], $data)

Таким образом, в функцию передается HTML шаблон из базы данных, а также данные из массива $data. Наша же с вами задача просто заменить источник HTML кода с базы данных на файл шаблона.

Используем шаблон WP Customer Reviews

Для того чтобы использовать непосредственно файлы шаблонов, которые расположены в директории самого плагина в папке include/templates, нам необходимо установить источник HTML кода, передаваемого в функцию wpcr_Goatee::fill на эти файлы. Для этого ищем строчки, содержащие следующий код:

wpcr_Goatee::fill($this->options['templates']

Таких строчек мы должны найти 9 штук. И каждую из них необходимо модифицировать путем замены переменной $this->options[‘templates’][‘TEMPLATE_NAME’] на file_get_contents($this->getplugindir() . ‘include/templates/TEMPLATE_NAME.html’). Таким образом из строчки:

wpcr_Goatee::fill($this->options['templates']['frontend_review_pagination'], $pagination);

мы получаем:

wpcr_Goatee::fill(file_get_contents($this->getplugindir() . 'include/templates/frontend_review_pagination.html'), $pagination);

И так далее все девять строчек, где встречается wpcr_Goatee::fill($this->options[‘templates’]. Таким образом мы заменяем HTML из базы данных HTML-кодом из файлов. Также вы можете использовать любой другой файл, который вам удобно — вы можете вынести эти файлы в папку вашей темы WordPress и хранить их там, чтобы предотвратить из перезапись.

Итог

Теперь вы можете редактировать HTML-код в файлах, хранящихся в папке шаблонов include/templates и внешний вид ваших отзывов будет изменен согласно вашим правкам. Но не забудьте, что данная модификация будет работать до следующего обновления плагина WP Customer Reviews, когда файлы перезапишутся (а карета превратится обратно в тыкву 🙂 )!

Вот таким простым способом вы можете настроить вид отзывов на WordPress сайте, использующем плагин WP Customer Reviews. Лично я считаю что такая возможность как изменение внешнего вида плагина не должна попадать под список «привилегированных функций» для Premium лицензии, поэтому собственно и решил поделиться этой маленькой инструкцией. А что думаете вы по этому поводу?

11 комментариев

  • В более новых версиях также в строку ‘template’ => $this->options[‘templates’][‘frontend_review_item_aggregate’], заменить на ‘template’ => file_get_contents($this->getplugindir() . ‘include/templates/frontend_review_item_aggregate.html’),

    • Еще не обновлялся до последней версии — лень)
      Спасибо за комментарий!

    • Ребят помогите, у меня после замены отображается это:

      %—NOTICE: Changes made to this file do nothing. Additionally, this file will be overwritten with each plugin update and/or activation.If you have the Pro version, you can edit this file via plugin settings without it being overwritten.—%

      • откройте файлы шаблона (include/templates/) и удалите ненужные строчки оттуда, или скопируйте из базы данных код шаблона.

  • спасибо за статью!
    так же можно поменять строки (их две):
    ‘template’ => $this->options[‘templates’][‘frontend_review_item_reviews’],
    на
    ‘template’ => file_get_contents($this->getplugindir() . ‘include/templates/frontend_review_item_reviews.html’),

    • Так же можно поменять
      ‘template’ => $this->options[‘templates’][‘frontend_review_item_aggregate’],
      на
      ‘template’ => file_get_contents($this->getplugindir() . ‘include/templates/frontend_review_item_aggregate.html’),

  • Notepad++ в режиме рег. выражения меняем всё сразу:

    $this->options[‘templates’][‘(w+?)’]
    на
    file_get_contents($this->getplugindir() . ‘include/templates/$1.html’)

      • у меня еще почему-то проблема с кавычкой была, использовал вместо одинарной ‘ двойную «, все успешно заработало. То есть менял на:
        file_get_contents($this->getplugindir() . «include/templates/$1.html»)

        может у кого аналогичная проблема будет, на заметку.

  • Ошибки говорят о делении на ноль в опред. строке и о том, что вы прописали не верный путь у файлов, что и вызывает ошибку.
    Перепроверьте все.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вверх!

Меню блога

Категории блога

Облако тегов