Как создать плагин для WooCommerce своими руками

|

WooCommerce — самая популярная платформа для создания интернет-магазинов на базе WordPress. Часто возникает задача добавить уникальный функционал, которого нет в стандартных расширениях. В этой статье мы подробно разберем, как создать собственный плагин для WooCommerce с нуля, пошагово и с примерами кода. Это позволит вам гибко управлять магазином и реализовывать нестандартные решения.

Что нужно знать перед созданием плагина для WooCommerce

Перед тем как начать разработку, важно понимать базовые принципы работы WooCommerce и WordPress:

Для примеров в статье мы будем использовать префикс wpbusiness_.

Создаем базовую структуру плагина для WooCommerce

Начнем с создания папки и основного файла плагина в директории wp-content/plugins/. Назовем папку wpbusiness-woocommerce-extension, а файл — wpbusiness-woocommerce-extension.php.

<?php
/**
 * Plugin Name: WPBusiness WooCommerce Extension
 * Description: Пример собственного плагина для WooCommerce
 * Version: 1.0
 * Author: WPBusiness
 */

// Защита от прямого доступа
if ( ! defined('ABSPATH') ) {
    exit;
}

// Проверяем активен ли WooCommerce
function wpbusiness_check_woocommerce_active() {
    if ( ! class_exists( 'WooCommerce' ) ) {
        add_action('admin_notices', 'wpbusiness_woocommerce_missing_notice');
        return false;
    }
    return true;
}

function wpbusiness_woocommerce_missing_notice() {
    echo '<div class="error"><p>Плагин WPBusiness WooCommerce Extension требует активный WooCommerce.</p></div>';
}

if ( ! wpbusiness_check_woocommerce_active() ) {
    return;
}

// Основной код плагина будет здесь

Этот шаблон проверяет, активен ли WooCommerce, и предотвращает работу плагина при его отсутствии.

Добавляем новое поле на страницу товара

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

Используем хуки WooCommerce для добавления и сохранения поля.

Добавление поля

add_action( 'woocommerce_product_options_general_product_data', 'wpbusiness_add_custom_general_fields' );
function wpbusiness_add_custom_general_fields() {
    woocommerce_wp_text_input( array(
        'id'          => '_wpbusiness_warranty',
        'label'       => __('Гарантия (мес.)', 'wpbusiness'),
        'desc_tip'    => 'true',
        'description' => __('Укажите срок гарантии для товара', 'wpbusiness'),
        'type'        => 'number',
        'custom_attributes' => array(
            'min' => '0',
            'step' => '1'
        )
    ));
}

Сохранение значения поля

add_action( 'woocommerce_process_product_meta', 'wpbusiness_save_custom_general_fields' );
function wpbusiness_save_custom_general_fields( $post_id ) {
    $warranty = isset( $_POST['_wpbusiness_warranty'] ) ? sanitize_text_field( $_POST['_wpbusiness_warranty'] ) : '';
    update_post_meta( $post_id, '_wpbusiness_warranty', $warranty );
}

Теперь при редактировании товара появится поле для ввода срока гарантии, а данные будут сохраняться в мета-поле.

Вывод дополнительной информации на странице товара

Чтобы показать гарантию покупателям, добавим вывод этого поля на страницу товара в магазине.

add_action( 'woocommerce_single_product_summary', 'wpbusiness_display_warranty', 25 );
function wpbusiness_display_warranty() {
    global $product;
    $warranty = get_post_meta( $product->get_id(), '_wpbusiness_warranty', true );
    if ( $warranty ) {
        echo '<p class="wpbusiness-warranty">' . sprintf( esc_html__('Гарантия: %s месяцев', 'wpbusiness'), esc_html( $warranty ) ) . '</p>';
    }
}

Хук woocommerce_single_product_summary позволяет добавить контент в блок с описанием товара. Параметр 25 задает приоритет вывода.

Пример расширения корзины: добавляем комиссию за обработку

Допустим, нужно добавить фиксированную комиссию при оформлении заказа. Это делается через фильтр woocommerce_cart_calculate_fees.

add_action( 'woocommerce_cart_calculate_fees', 'wpbusiness_add_processing_fee' );
function wpbusiness_add_processing_fee() {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
        return;
    }

    $fee = 50; // сумма комиссии в рублях
    WC()->cart->add_fee( __('Комиссия за обработку', 'wpbusiness'), $fee );
}

Этот код добавит комиссию в 50 рублей в корзину и итоговую сумму заказа.

Советы по безопасности и производительности

При создании плагина для WooCommerce важно соблюдать несколько правил:

Заключение: зачем создавать собственные расширения для WooCommerce

Создание собственного плагина для WooCommerce дает полный контроль над функционалом магазина. Вы можете адаптировать магазин под конкретные задачи бизнеса, интегрировать уникальные сервисы и улучшить пользовательский опыт. Это гораздо лучше, чем искать готовые решения с лишними функциями или ограничениями.

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

Оптимизация кода и загрузки в WordPress для бизнес-сайтов
09.11.2025
Как использовать мета-заголовки для улучшения SEO в WooCommerce
24.05.2026
Как реализовать автоматическое создание контентных блоков в WordPress для бизнес-сайтов
14.04.2026
Как автоматизировать отзывы и оценки в WordPress для бизнес-сайта
14.01.2026
Как автоматизировать отправку новых заказов WooCommerce в WhatsApp
10.05.2026
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙