Как создать собственный плагин WordPress

Опубликовано: 2022-02-24

Ищете способы создать собственный плагин WordPress? В этом уроке мы покажем вам, как с нуля создать плагин WP, который позволит вам удалить некоторые элементы со страниц продуктов WooCommerce.

Прежде чем мы приступим к процессу, давайте посмотрим, почему вам может понадобиться сначала создать собственный плагин WordPress.

Зачем создавать собственный плагин в WordPress?

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

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

Например, предположим, что вы хотите удалить элементы на странице вашего продукта или любых других страницах WooCommerce с помощью специального плагина. Большинство плагинов предоставят вам еще несколько дополнительных функций, помимо удаления элементов. Это увеличит размер плагина, а также хранилище веб-сайта, что также может снизить производительность вашего веб-сайта.

Конечно, вы также можете использовать скрипт CSS или хуки WooCommerce для удаления элементов. Но они могут вызвать некоторые проблемы на вашем веб-сайте, если вы обновите свою тему WordPress без надлежащего выполнения. Но если вы создадите собственный плагин, изменения вряд ли помешают вашему сайту ни при каких обстоятельствах.

Как создать собственный плагин WordPress?

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

1. Подготовка к работе

Существует ряд требований, которые вы должны выполнить для создания собственного плагина WordPress. Они есть:

  • Установка WordPress на локальный сервер

Хотя вы можете разработать плагин на действующем сервере, это очень плохая практика, когда веб-сайт находится в сети. Если вы внесете какие-либо ненужные изменения на веб-сайт, он может столкнуться с некоторыми серьезными проблемами. Поэтому, чтобы предотвратить их, вам нужно настроить среду тестирования localhost для создания собственного плагина WordPress, если у вас его еще нет.

  • Используйте редактор кода

WordPress поставляется со встроенным редактором плагинов для добавления и изменения кода для ваших плагинов. Вы также можете работать с ним, чтобы создать собственный WordPress. Но мы предлагаем использовать редактор кода (IDE), такой как Sublime Text, Visual Studio Code или любые подобные редакторы.

У них есть несколько инструментов и функций, необходимых для создания собственного плагина. Поэтому гораздо удобнее работать с IDE, так как они будут намного лучше, чем использование редактора кода WP.

  • Некоторые базовые знания по разработке WP.

Чтобы создать собственный плагин WordPress, мы будем использовать хуки WP, функции PHP и определим свои собственные функции. Поэтому мы рекомендуем вам продолжить изучение этого руководства только в том случае, если у вас есть базовые знания о разработке WordPress. В противном случае вам может быть очень сложно разработать собственный плагин самостоятельно.

Это некоторые из основных требований и ресурсов, которые вам понадобятся для создания собственного плагина. Убедитесь, что все эти требования соблюдены, прежде чем мы перейдем к руководству.

2. Создайте основной файл для пользовательского плагина WordPress.

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

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

основной файл создать собственный плагин wordpress

Итак, давайте начнем работать над этим и создадим этот файл.

Откройте общую папку на локальном хосте и перейдите к установке WP, над которой вы собираетесь работать. Затем перейдите в папку « wp-content/plugins », и вы увидите там все установленные плагины.

Мы просто добавим сюда наш новый пользовательский файл плагина.

Создайте новую папку в папке wp-content/plugins вашей установки WP. Для простоты понимания в этом руководстве мы назвали плагин QuadLayers_custom_products .

имя плагина

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

основной файл

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

Скопируйте и вставьте этот код в файл:

 <?php

/**
 * @ссылка https://quadlayers.com/
 * @с 0.0.1
 * @package QuadLayers Пользовательские продукты
 * Название плагина: Пользовательские продукты QuadLayers  
 * URI плагина: https://quadlayers.com/
 * Описание: Настройте отдельную страницу продукта, удалив элементы
 * Версия: 0.0.1
 * Автор: QuadLayers
 * Текстовый домен: qlcp
 */
 
если (! Определено ('ABSPATH')) {умереть ('-1');}

запуск функции () { 		
        если (is_admin () == правда) {
        require plugin_dir_path( __FILE__ ).'includes/Backend/QuadLayers-backend-init.php';
        }
        require plugin_dir_path( __FILE__ ).'includes/Frontend/QuadLayers-frontend-init.php';
 }  
функция запуска(){
    add_action('инициализация','старт');
}
запустить его();

Как видите, отсюда мы просто вызываем еще два файла: QuadLayers-frontend-init.php и QuadLayers-backend-init.php . Очевидно, что один будет работать на фронтенде, а другой соответственно на бэкенде. Вы можете ясно вывести это с их именами файлов.

Из них мы можем гарантировать, что бэкэнд-файл будет работать только на бэкэнде, потому что мы используем условное выражение с is_admin() . Это означает, что он будет запускаться только тогда, когда администратор находится на панели администратора WP.

Прямо сейчас у вас будут некоторые ошибки на вашем веб-сайте, потому что файлы внешнего и внутреннего интерфейса еще не существуют. Итак, давайте продолжим и создадим их.

Создайте новую папку в каталоге плагинов с именем includes . Затем добавьте в него еще две папки: backend и frontend .

Чтобы избавиться от ошибок неправильного пути, создайте два пустых файла, каждый по одному в каждой из этих папок: QuadLayers-backend-init.php во внутренней папке и QuadLayers-frontend-init.php во внешней папке.

Итак, это будет наша окончательная файловая структура плагина:

 QuadLayers_custom_products
    __QuadLayers_cp.php
    __включает в себя
       __Бэкенд
          __QuadLayers-backend-init.php
       __Передний
          __QuadLayers-интерфейс-init.php

3. Параметры серверной части

После того, как вы добавили основной файл, мы можем приступить к добавлению внутренних параметров плагина. Здесь мы собираемся создать вкладку меню плагинов на панели администратора WP. Это позволит пользователям выбрать некоторые параметры, чтобы скрыть или отобразить элементы в интерфейсе.

Для этой демонстрации мы будем использовать API настроек, предоставленный WP. Не волнуйтесь, если вы еще этого не понимаете, потому что научиться этому не так уж сложно, и по этому поводу есть много документации.

Если вы хотите узнать об этом больше, вот полное руководство по API настроек WP.

А пока просто скопируйте и вставьте следующий код в QuadLayers-backend-init.php

 <?php 
add_action('admin_init', 'QuadLayers_display_options'); 
add_action('admin_menu', 'QuadLAyers_cp_AdminMenu'); 
функция QuadLAyers_cp_AdminMenu(){ 
    add_menu_page( __('Пользовательские продукты QuadLayers', 'qlcp'), __('Пользовательские продукты QuadLayers', 'qlcp'), 'manage_options', 'qlcp', 'QuadLayersOptionsPage' ); 
} 
функция QuadLayersOptionsPage() { 
    ?> <form action="options.php" method="post"> <?php 
    settings_fields('plugin_QL_Page'); 
    do_settings_sections('plugin_QL_Page'); 
    отправить_кнопка(); 
    </форма><?php
}

функция QuadLayers_display_options(){
        
    register_setting('plugin_QL_Page', 'qlcp_options', 'callbackValidation');

    add_settings_section(
        'QuadLayers_pluginPage_section',
        __('Параметры серверной части QuadLayers', 'qlcp'),
        'QuadLayersSettingsSectionCallback',
        'plugin_QL_Page'
    );
    add_settings_field(
        'QuadLayers_checkbox_field_1',
        esc_attr__('Название', 'qlcp'),
       'QuadLayersCheckboxRender_1',
        'plugin_QL_Page',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayers_checkbox_field_2',
        esc_attr__('Количество', 'qlcp'),
       'QuadLayersCheckboxRender_2',
        'plugin_QL_Page',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayers_checkbox_field_3',
        esc_attr__('SKU', 'qlcp'),
       'QuadLayersCheckboxRender_3',
        'plugin_QL_Page',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayers_checkbox_field_4',
        esc_attr__('Мета', 'qlcp'),
       'QuadLayersCheckboxRender_4',
        'plugin_QL_Page',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayers_checkbox_field_5',
        esc_attr__('Описание вкладки', 'qlcp'),
       'QuadLayersCheckboxRender_5',
        'plugin_QL_Page',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayers_checkbox_field_6',
        esc_attr__('Цена', 'qlcp'),
       'QuadLayersCheckboxRender_6',
        'plugin_QL_Page',
        'QuadLayers_pluginPage_section'
    );
}

функция QuadLayersSettingsSectionCallback(){
    echo wp_kses_post('Страница настроек пользовательского плагина QuadLAyers');
}

функция QuadLayersCheckboxRender_1(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_1]" type="checkbox" /> 
    проверено <?php } ?>value = "1">    
}

функция QuadLayersCheckboxRender_2(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_2]" type="checkbox" /> 
    проверено <?php } ?>value = "1">    
}

функция QuadLayersCheckboxRender_3(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_3]" type="checkbox" /> 
    проверено <?php } ?>value = "1">    
}

функция QuadLayersCheckboxRender_4(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_4]" type="checkbox" /> 
    проверено <?php } ?>value = "1">    
}

функция QuadLayersCheckboxRender_5(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_5]" type="checkbox" /> 
    проверено <?php } ?>value = "1">    
}

функция QuadLayersCheckboxRender_6(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_6]" type="checkbox" /> 
    проверено <?php } ?>value = "1">    
}

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

создать пользовательский интерфейс администратора плагина WordPress

API настроек WP будет хранить массив со всеми этими параметрами в таблице базы данных wp_options . Вы можете проверить это, открыв PHPMyAdmin на своем локальном хосте и выполнив поиск в таблице.

Поскольку это вновь созданные данные, их следует найти в конце таблицы.

база данных опций qlcp

Конечно, на приведенном выше снимке экрана массив qlcp_options в базе данных пуст. Это связано с тем, что в данный момент все флажки сняты. Вы можете попробовать проверить некоторые из них и вернуться в PHPMyAdmin, чтобы увидеть, как API настроек WP хранит данные.

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

4. Параметры внешнего интерфейса

Чтобы добавить параметры внешнего интерфейса, просто скопируйте и вставьте следующий код в QuadLayers-frontend-init.php .

Это захватит данные из базы данных, которые были сохранены внутренним файлом в массиве.

После этого он скроет определенные элементы страницы продукта в зависимости от того, какие параметры верны в массиве параметров.

 <?php

$options = get_option('qlcp_options');

если(!is_string($options)):
    // Заголовок
    if(isset($options['QuadLayers_checkbox_field_1'])){       
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
    }

    // Количество
    if(isset($options['QuadLayers_checkbox_field_2'])){        
        add_filter('woocommerce_is_sold_individually',
            функция ($возврат, $продукт) {
                вернуть истину;
            }, 10, 2 
        );
    }

    // Артикул
    if(isset($options['QuadLayers_checkbox_field_3'])){        
        add_filter('wc_product_sku_enabled', 
            функция ($ включена) {          
                вернуть $включено;
            } 
    );
    }
    
    // Мета
    if(isset($options['QuadLayers_checkbox_field_4'])){
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40);
    }
    
    // Вкладка Описание
    if(isset($options['QuadLayers_checkbox_field_5'])){
        add_filter('woocommerce_product_tabs', 
        функция ( $ вкладки ) {
            сбросить ($ вкладки ['описание']);
            вернуть $ вкладки;
            }, 11 
        );         
    }

    // Цена
    if(isset($options['QuadLayers_checkbox_field_6'])){
        add_filter('woocommerce_get_price_html', 
        функция ($ цена) {         
            возврат ;
            }
        );        
    }
конец;

Мы заключаем весь код в if(is_string($options)) . Следовательно, мы можем проверить, нет ли отмеченных флажков, и в этом случае значение базы данных будет строкой. Тогда нам вообще не нужно запускать этот код.

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

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

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

И это все. На этом этапе вы сможете создать собственный плагин WordPress, чтобы выбрать, какие элементы следует скрывать или отображать на странице продукта.

Бэкенд

бэкэнд настраиваемый плагин wordpress

Внешний интерфейс

Пользовательский плагин WordPress для внешнего интерфейса

Вывод

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

Подводя итог, вот основные шаги для создания пользовательского плагина:

  1. Создайте основной файл плагина
  2. Добавить параметры бэкенда
  3. Добавить параметры внешнего интерфейса

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

Тем не менее, если вы все еще хотите использовать специальный плагин, вы также можете это сделать. Но в случае платного плагина вам придется установить плагин вручную. Вы даже можете использовать плагины, такие как WooCommerce Direct Checkout и WooCommerce Checkout Manager, чтобы скрыть элементы на других страницах, например на странице оформления заказа.

Между тем, вот еще несколько наших статей, которые могут вас заинтересовать:

  • Лучшие плагины для оформления заказов WooCommerce
  • Как создать прямую ссылку для оформления заказа WooCommerce
  • Лучшие плагины для автозаполнения заказов WooCommerce

Мы надеемся, что теперь вы сможете без проблем разработать собственный плагин для WooCommerce. Пожалуйста, поделитесь с нами своим опытом в комментариях.