Создание плагина оплаты самовывозом в Woocommerce: пошаговое руководство

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

Шаг 1: Создание файлов плагина

  1. Создайте новую папку с названием вашего плагина, например, “selfpickup-gateway”.
  2. Внутри папки создайте файл с расширением .php, например, “selfpickup-gateway.php”.

Шаг 2: Начало разработки плагина

  1. Откройте файл “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: Создание класса для способа оплаты

  1. Добавьте следующий код после предыдущего:
    // Создаем класс для способа оплаты
    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: Инициализация полей настроек плагина

    1. Добавьте следующий код после предыдущего:
      // Инициализация полей настроек плагина
      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. Вы можете использовать этот плагин для добавления нового способа оплаты в ваш интернет-магазин.

 

0 Комментариев

No Comment.

Прокрутить вверх