Собственные шаблоны и пользовательские функции

Если вы решили как-то улучшить наши стандартные шаблоны, поменять цвета, кнопки, расположение элементов, все что угодно, то вы попали на правильную страницу! Сейчас мы расскажем как все работает.

  1. Плагин использует шесть шаблонов:
    • Шаблон раздела каталога — это страница, на которой расположена группа товаров, находящихся в одном разделе каталога
      taxonomy-p_cat.php
    • Шаблон товарного тэга — это страница, на которой расположена группа товаров, объединенных одним общим товарным тэгом
      taxonomy-p_tag.php
    • Шаблон страницы товара — это стандартная конечная страница товара
      single-p_products.php
    • Шаблон лэндинга — это альтернативная страница товара
      single-p_products-landing.php
    • Шаблон используемый шорткодом [p_products] и функцией papi_get_products()
      p_products_template.php
    • Шаблон блока апселов — блок выводится теми же способами ([p_products] и papi_get_products()), но только на странице подтверждения заказа.
      p_upsells_template.php
  2. Хранятся шаблоны в папке themefiles. Эта папка находится в главной папке плагина P-API-Shop.
    ВНИМАНИЕ!!! Не редактируйте эти файлы прямо тут! При обновлении плагина вы потеряете все сделанные в них изменения!
  3. Скопируйте все файлы (или только те из них, которые собираетесь редактировать) в папку своей темы. И уже там делайте с ними все что хотите. В первую очередь плагин ищет шаблоны именно в папке текущей темы и только если не находит, использует стандартные из папки themefiles.
  4. Функции, которые можно использовать в шаблонах: 
    Функция Описание
    papi_get_articul ( $post_id = null )
    Возвращает: артикул товара (не путать с id товара) или FALSE
    На входе: $post_id (не обязательный) — post_id для которого нужно получить цену, если не передан, используется id текущего поста
    papi_price_str ( $post_id = null, $type= '' )
    Возвращает: html-строка: текущая цена + знак валюты
    На входе:

    • $post_id (не обязательный) — post_id для которого нужно получить цену, если не передан, используется id текущего поста
    • $type (не обязательный) — единственное возможное значение ‘full’, в этом случае будет возвращена полная цена (в момент когда действует скидка полная цена больше чем текущая)
    papi_get_price ( $post_id = null )
    Возвращает: текущую цену (полная или специальная, зависит от заданного времени действия спеццены) (только цифры) или FALSE
    На входе: $post_id (не обязательный) — post_id для которого нужно получить цену, если не передан, используется id текущего поста
    papi_get_curr()
    Возвращает: обозначение валюты, заданное в настройках плагина
    На входе:
    papi_get_full_price ( $post_id = null )
    Возвращает: значение, установленное в поле «Полная цена» (только цифры). Если значение не установлено или меньше текущей цены, возвращает текущую цену.На входе: $post_id (не обязательный) — post_id для которого нужно получить цену, если не передан, используется id текущего поста
    papi_get_special_price ( $post_id = null )
    Возвращает: Текущая цена товара (только цифры) при условии что действует акция, иначе FALSEНа входе: $post_id (не обязательный) — post_id для которого нужно получить цену, если не передан, используется id текущего поста
    papi_get_last_date ( $post_id = null )
    Возвращает: дату в формате YYYYmmdd до которой действует скидка или FALSE
    На входе: $post_id (не обязательный) — post_id для которого нужно получить цену, если не передан, используется id текущего поста
    papi_is_special ( $post_id = null )
    Возвращает: TRUE в случае если на товар в данный момент действует скидка, FALSE — если не действует
    На входе: $post_id (не обязательный) — post_id для которого нужно получить цену, если не передан, используется id текущего поста
    papi_get_order_links()
    Возвращает: html-строку: ссылки для сортировки товаров посетителем сайта (по цене, по имени)
    На входе:
    papi_get_buy ( $post_id = null, $only = '', $q_type = 'modal' )
    Возвращает: html-строку: кнопки покупки товара
    На входе:

    • $post_id (не обязательный) — post_id для которого нужно получить кнопки, если не передан, используется id текущего поста
    • $only (не обязательный) — возможные значения: cart (в этом случае будет возвращена только кнопка «в корзину»), quick (в этом случае будет возвращена только кнопка «быстрый заказ»); если значение не передано, будут возвращены обе кнопки
    • $q_type (не обязательный) (только для Premium) — тип представления формы быстрого заказа: modal (по умолчанию) для всплывающей формы по нажатию на кнопку «быстрый заказ», inline для отображения формы на странице вместо кнопки «быстрый заказ».
    papi_get_countdown( $post_id = null, $message = null, $show_quick_buy = true )
    Возвращает: html-строку: таймер обратного отсчета до истечения срока действия скидки на товар. Если в данный момент на товар не действует скидка, возвращает пустую строку.
    На входе:

    • $post_id (не обязательный) — post_id для которого нужно получить таймер, если не передан, используется id текущего поста
    • $message (не обязательный) — сообщение под таймером. Если не передано или передано null, будет использовано стандартное сообщение, если передана строка (в том числе пустая), будет использована переданная строка
    • $show_quick_buy (не обязательный) — boolean надо ли автоматически добавить к таймеру кнопку «быстрый заказ»
    papi_get_cats( $args = '' )
    Возвращает: html-строку: ссылки на разделы каталога
    На входе: Параметры на входе полностью аналогичны параметрам на входе стандартной функции wp_list_categories(). Функция действует аналогично указанной, но работает не с категориями, а с разделами каталога.
    При вызове без параметров, возвращает список дочерних к текущему разделов каталога.
    papi_get_tags( $args = '' )
    Возвращает: html-строку: ссылки на товарные теги
    На входе: Параметры на входе полностью аналогичны параметрам на входе стандартной функции wp_list_categories(). Функция действует аналогично указанной, но работает не с категориями, а с товарными тегами.
    Вызванная без параметров возвращает все (кроме пустых) товарные теги.
    papi_get_products( $limit=10, $ids='', $cats='', $rand=1, $tags='' )
    Возвращает: html-строку: блок с товарами. По умолчанию будет выведено 10 случайных товаров.
    На входе:

    • $limit (не обязательный) — количество выводимых товаров
    • $ids (не обязательный) — список (через запятую) id товаров, которые нужно вывести. Если количество товаров в этом списке больше значения $limit, будет выбрано $limit случайных товаров из этого списка
    • $cats (не обязательный) — список (через запятую) id разделов каталога из которых брать товары
    • $rand (не обязательный) — тип сортировки, работает только с параметром ids.
      • 1: сортировать товары случайным образом,
      • 0: выводить товары в том порядке, в котором они перечислены в параметре ids.
    • $tags (не обязательный) — список (через запятую) id товарных тегов, из которых брать товары

    $cats и $tags могут работать одновременно (логическое «И»).
    Если указан $ids то он имеет приоритет, $cats и $tags в таком случае игнорируются.
    Для вывода товаров использует шаблон p_products_template.php.
    В случае применения на странице подтверждения заказа, использует шаблон p_upsells_template.php

    papi_get_crossells( $limit=10 )
    Возвращает: html-строку: блок с товарами, id которых указаны в поле Кроссел на странице редактирования текущего товара.
    На входе:

    • $limit (не обязательный) — ограничить количество выводимых товаров (по умолчанию = 10)

    Для вывода товаров использует шаблон p_products_template.php.

    papi_get_cartblock()
    Возвращает: html-строку: блок «корзина» с текущим количеством товаров и суммой.
    На входе:
    papi_get_presents( $post_id = null, $title= null )
    Возвращает: html-строку: блок с подарком (подарками) для товара. При вызове без параметров, будет выведен подарок для текущего товара. Если подарка нет — пустую строку.
    На входе:

    • $post_id (не обязательный) — id товара для которого нужно получить блок с подарком
    • $title (не обязательный) — заголовок блока. По умолчанию «Подарок к заказу». Для удаления заголовка можно передать пустую строку.
    papi_is_present( $post_id = null )
    Возвращает: boolean: True если с товаром дарится подарок, False — если нет.
    На входе:

    • $post_id (не обязательный) — id товара для которого нужно получить блок с подарком. Если не указан, то для текущего товара.

    Не следует использовать papi_is_present() перед использованием papi_get_presents(). Это только замедлит работу. Если подарка нет papi_get_presents() просто вернет пустую строку. papi_is_present() можно использовать в списке постов для вывода иконки «подарок», без информации о самом подарке.

    papi_get_buy_upsell( $post_id = null )
    Возвращает: html: кнопка «Добавить в заказ» (если есть id заказа), кнопки «в корзину» и «быстрый заказ» (если нет номера заказа), пустую строку (если товар нельзя заказать).
    На входе:

    • $post_id (не обязательный) — id товара для которого нужно получить кнопку. Если не указан, то для текущего товара.