Woocommerce – это популярная платформа электронной коммерции на базе WordPress. Она предоставляет различные возможности для создания интернет-магазинов. В этой статье мы рассмотрим, как создать плагин оплаты самовывозом для Woocommerce.
Шаг 1: Создание файлов плагина
-
Создайте новую папку с названием вашего плагина, например, “selfpickup-gateway”.
-
Внутри папки создайте файл с расширением .php, например, “selfpickup-gateway.php”.
Шаг 2: Начало разработки плагина
-
Откройте файл “selfpickup-gateway.php” в текстовом редакторе.
<?php /* Plugin Name: Плагин оплаты самовывозом Description: Плагин для оплаты заказов самовывозом в Woocommerce Version: 1.0 Author: Andrey S Author URI: https://wp-master.ru/ */
Этот код задает основные метаданные плагина, такие как название, описание, версия и автор.
Шаг 3: Добавление нового способа оплаты
Добавьте следующий код после предыдущего:
// Добавляем новый способ оплаты add_filter('woocommerce_payment_gateways', 'add_selfpickup_gateway'); function add_selfpickup_gateway($gateways) { $gateways[] = 'WC_Gateway_SelfPickup'; return $gateways; }
Этот код добавляет новый способ оплаты в список доступных способов оплаты в Woocommerce.
Шаг 4: Создание класса для способа оплаты
-
Добавьте следующий код после предыдущего:
// Создаем класс для способа оплаты add_action('plugins_loaded', 'init_selfpickup_gateway'); function init_selfpickup_gateway() { class WC_Gateway_SelfPickup extends WC_Payment_Gateway { public function __construct() { $this->id = 'selfpickup'; $this->method_title = 'Оплата самовывозом'; $this->method_description = 'Оплата заказа при получении товара самовывозом'; $this->has_fields = false; $this->init_form_fields(); $this->init_settings(); $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); }
Этот код создает класс WC_Gateway_SelfPickup, который наследуется от класса WC_Payment_Gateway. В конструкторе класса определяются основные свойства и настройки способа оплаты.
Шаг 5: Инициализация полей настроек плагина
-
Добавьте следующий код после предыдущего:
// Инициализация полей настроек плагина public function init_form_fields() { $this->form_fields = array( 'enabled' => array( 'title' => 'Включить/Выключить', 'type' => 'checkbox', 'label' => 'Включить оплату самовывозом', 'default' => 'yes' ), 'title' => array( 'title' => 'Заголовок', 'type' => 'text', 'description' => 'Заголовок способа оплаты', 'default' => 'Оплата самовывозом' ), 'description' => array( 'title' => 'Описание', 'type' => 'textarea', 'description' => 'Описание способа оплаты', 'default' => 'Оплата заказа при получении товара самовывозом' ) ); }
Этот код определяет поля настроек плагина, которые будут отображаться в административной панели Woocommerce.
Шаг 6: Вывод способа оплаты на странице оформления заказа
Добавьте следующий код после предыдущего:// Вывод способа оплаты на странице оформления заказа public function payment_fields() { if ($this->description) { echo wpautop(wptexturize($this->description)); } }
Этот код отображает описание способа оплаты на странице оформления заказа.
Шаг 7: Обработка оплаты
Добавьте следующий код после предыдущего:// Обработка оплаты public function process_payment($order_id) { $order = wc_get_order($order_id); // Устанавливаем статус "Ожидает оплаты" $order->update_status('pending', __('Ожидает оплаты', 'woocommerce')); // Очищаем корзину WC()->cart->empty_cart(); // Возвращаем URL страницы "Спасибо за заказ" return array( 'result' => 'success', 'redirect' => $this->get_return_url($order) ); } } }
Этот код обрабатывает оплату заказа. Он устанавливает статус заказа “Ожидает оплаты”, очищает корзину и возвращает URL страницы “Спасибо за заказ”.
Шаг 8: Завершение плагина
Добавьте следующий код в конец файла:?>
Этот код завершает плагин.
Заключение: В этой статье мы рассмотрели поэтапное создание плагина оплаты для Woocommerce. Вы можете использовать этот плагин для добавления нового способа оплаты в ваш интернет-магазин.
-