Создание плагина оплаты самовывозом в 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. Вы можете использовать этот плагин для добавления нового способа оплаты в ваш интернет-магазин.

 

1 Comments
Extended Opportunity 14 февраля, 2024
|

Hey Guys,

Warning: From February 2024, all existing email autoresponders will become obsolete!

In fact, if you want to send marketing emails, promotional emails, or any other sort of emails starting in February 2024, you’ll need to comply with Gmail’s and Yahoo’s draconic new directives.

They require regular marketers like you and I to setup complex code on sending domains… and existing autoresponders like Aweber and GetResponse are not helping: they’re requesting you do all the work, and their training is filled with complex instructions and flowcharts…

How would you like to send unlimited emails at the push of a button all with done-for-you DMARC, DKIM, SPF, custom IPs and dedicated SMTP sending servers?

What I mean by all of that tech talk above, is that with ProfitMarc, we give you pre-set, pre-configured, DONE-FOR-YOU email sending addresses you can just load up and mail straight away.

We don’t even have any “setup tutorials” like other autoresponders either, because guess what: we already did all the setup for you!

All of our built-in sending addresses and servers are already pre-warmed with Gmail and Yahoo and they’re loving us: 99% inbox rate is the average!

⇒ Grab your copy here! ⇒ https://ext-opp.com/ProfitMarc

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