Вадим Фоминов | Создаю сайты на Wordpress
1.53K subscribers
233 photos
5 videos
15 files
112 links
Про сайты со сложной структурой: интернет-магазин, сайт-каталог, блог, сайт-портфолио или личный кабинет любой сложности.

Для связи: @vadimfominov
Download Telegram
Как проверить, что товар с определённым ID находится в корзине и, если да, то добавить какое-то дополнительное поле в форму оформления заказа.

Подробнее 👇👇
По умолчанию, если вы ищете что-либо в интернет-магазине на WooCommerce и по вашему запросу ничего не найдено, то вы получаете только сообщение, что ничего не найдено. А давайте попробуем заинтересовать пользователей какими-то товарами вместо этого.

Подробнее 👇👇
Динамичный фильтр theme_(post_type)_templates

Позволяет добавить/удалить шаблоны страниц для типов записей. Эти шаблоны выбираются при публикации записи в админ-панели.

Примеры использования 👇
В статье ниже максимально подробно расписано как добавлять посты из инстаграма на свой сайт. В своих проектах использую только этот вариант.
get_current_user_id() - Получает ID текущего (авторизованного) пользователя.

Использование:
$cur_user_id = get_current_user_id();
echo $cur_user_id;
get_post_meta() - Позволяет получить все метаполя.

$units_sold = get_post_meta($product->get_id(), 'total_sales', true);

В переменную $units_sold можно занести количество проданных товаров.
get_header() - подключает файл шаблона header.php (шапку). Если передан параметр $name, то будет подключен файл header-{name}.php.

<?php
if ( is_home() ){
get_header('home');
}
elseif ( is_404() ) {
get_header('404');
}
else {
get_header();
}
?>
Нужно узнать ID текущей категории поста и поставить его в массив параметров нужных постов. Потом стандартным циклом выводить посты.

<ul>
  <?php
  $category = get_the_category();
  $cat_add_id = $category[0]->term_id;
  $real_id = get_the_ID();

  $args = array(
    'cat' => $cat_add_id,
    'numberposts' => 6
  );
 
  $query = new WP_Query( $args );
  if( $query->have_posts() ){
    while( $query->have_posts() ){
      $query->the_post();
      if ($post->ID != $real_id) {
      ?>
      <li>
        <a href="<?php the_permalink(); ?>">
          <?php the_title(); ?>
        </a>
      </li>
      <?php
      }
    }
    wp_reset_postdata();
  }
  ?>
</ul>
Была необходимость выводить картинки категорий. Пример как это сделать 👇

<?php
$args = array('hide_empty' => 0);
$terms = get_terms('product_cat', $args);

foreach ($terms as $term) {

$thumb_ID = get_term_meta($term->term_id, 'thumbnail_id', true);
$image = wp_get_attachment_url($thumb_ID); ?>

<img
src="<?php echo $image; ?>"
alt="<?php echo $term->name; ?>">
<?php
}
?>
При создании своей темы для интернет-магазина с помощью Woocommerce, нужно сделать её совместимой с этим плагином.
Добавь код ниже в файл functions.php чтобы плагин Woocommerce работал с новой темой👍

function mytheme_add_woocommerce_support() {
add_theme_support( 'woocommerce' );
}
add_action( 'after_setup_theme', 'mytheme_add_woocommerce_support' );
Добавление на сайт AJAX фильтра постов по категориям, произвольным полям, либо по дате. Сортировка по убыванию / возрастанию.
Этот же принцип можно применять и при разработке фильтра товаров в интернет-магазине.
Ниже я собрал основные функции WP, которые использую при создании карточек постов.

the_title(); - выводит заголовок поста
the_excerpt(); - выводит краткое описание поста
the_permalink(); - выводит ссылку на пост
the_post_thumbnail(); - выводит миниатюру поста
the_time('j F Y'); - выводит дату публикации поста

Все эти функции использовать внутри одного из циклов вывода постов.
wp_enqueue_style() - правильно добавляет файл CSS стилей. Регистрирует файл стилей, если он еще не был зарегистрирован.

Принимает пять параметров
wp_enqueue_style( $handle, $src, $deps, $ver, $media );

Подробнее👇
wp_enqueue_script() - правильно подключает скрипт (JavaScript файл) на страницу.

Использовать эту функцию для подключения js файлов важно, потому что так вы в дальнейшем сможете без лишних проблем объединять JS файлы в один. Также в некоторых случаях избавитесь от конфликтов скриптов, когда зависимый скрипт подключается до основного (того от которого он зависит).

Принимает пять параметров
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );

Подробнее 👇
Установил плагин, загрузил пару тестовых товаров, а страниц магазина нет?
Возможно ты забыл добавить <?php the_content(); ?> в файл index.php. Страницы магазина выводятся шорткодами и вставляются в поле для контента в админке, поэтому и нужно добавить the_content() для отображения страниц.
get_self_link()  - получает URL (ссылку) текущей страницы (запроса), которая запустила текущий работающий код.

Например вернет URL https://example.com, если мы вызовем эту функцию на главной странице сайта.
admin_enqueue_scripts - через этот хук принято подключить файлы стилей или скриптов для всех страниц админ-панели.

Это такой же хук как wp_enqueue_scripts, только для админки.
⚡️В 70% случаев вашему клиенту проще заплатить конкуренту

Почему? Просто потому, что он не нашел удобный способ оплаты

Внедрите в свой проект более 7 способов приема платежей! Как это сделать - пройдите регистрацию на сайте ENOT.io и мы все расскажем

Наши клиенты получают:
• инструменты и способы приёма платежей
• экономию на комиссиях и быстрый вывод денег
• оперативную связь с тех. поддержкой

Регистрируйтесь и подключайте свой проект на ENOT.io, чтобы клиент заплатил вам 😉
FiboSearch - плагин поиска товаров WooCommerce. Он дает пользователям хорошо разработанную AJAX панель поиска с предложениями в реальном времени.
Страница с опциями позволяет добавлять дополнительные страниц в панель администратора WP и использовать всю мощь полей ACF! Каждая страница администратора может быть полностью настроена.