Disweb Commerce

Плагин для организации торговли на WordPress

Для оформления заказа необходимо создать страницу и ее выбрать в настройках САЙТ/wp-admin/options-general.php?page=dw-commerce-settings параметром Страница оформления заказа.

Для кастомной шаблонизации оформления заказа в активном шаблоне сайта можно создать файл:

шаблон/dw-commerce/order_page.php

Содержимое по умолчанию:

<?php
$type = "new";
if (isset($_POST["order"]) && wp_verify_nonce($_POST['dw_wpnonce'], 'dw_wpnonce'))
{
	if (isset($_POST["type"]))
	{
		if ($_POST["type"] == 'buy')
		{
			if (!isset($_POST["product"]))
			{
				goto endScript;
			}
			
			$this->cartClear();
			if (!$this->cartAdd($_POST["product"], 1))
			{
				goto endScript;
			}
			
			$arProduct = get_posts([
				'numberposts' => 1,
				'post_type' => 'dw_product',
				'post__in' => [$_POST["product"]]
			]);
			
			$orderId = $this->orderCreate([
				'firstName' => '',
				'lastName' => ''
			]);
			
			$type = "buy";
			
			echo "[dw-pay-tinkoff sum=" . get_post_meta($orderId, 'dwTotalSum', 1) . " order_id=" . $orderId . " description=\"" . $arProduct[0]->post_title . "\"]";
		}
	}
}

endScript:

Продажа в один клик:

Задается шорткодом dw-commerce-item-pay с параметрами:

  1. id — ID товара из типа поста dw_product
  2. name — наименование кнопки

Пример:

[dw-commerce-item-pay id=1 name="Купить"]

Для кастомной шаблонизации в активном шаблоне сайта можно создать файл:

шаблон/dw-commerce/sc_item_pay_btn.php

Содержимое по умолчанию:

<form action="<?php echo $product->orderLink; ?>" method="POST">
	<?php wp_nonce_field('dw_wpnonce', 'dw_wpnonce'); ?>
	<input type="hidden" name="order" value="1" />
	<input type="hidden" name="type" value="buy" />
	<input type="hidden" name="product" value="<?php echo $product->ID; ?>" />
	<button class="btn btn-primary"><?php echo $btnName; ?></button>
</form>

Данные которые принимает шаблон:

$productId — ID товара

$btnName — Наименование кнопки

$product — Объект с данными о товаре

->orderLink — Адрес страница оформления заказа

->ID — ID товара

->price — Цена товара

->post_title — Название товара


Глобальная переменная $dwCommerce

Данная переменная в себе несет ссылку на объект плагина.

global $dwCommerce;

Возможности:

$dwCommerce->cartClear() — очистить корзину

$dwCommerce->cartAdd(product_id, quantity) — добавить к корзину товар. product_id — ID товара, quantity — количество

$dwCommerce->orderCreate(flds) — оформить заказ. Возвращает ID заказа.

Принимает параметры flds:

firstName — имя заказчика

lastName — фамилия заказчика

$dwCommerce->getProducts(filter) — получить товары в фильтр передавать исключения по аналогии с get_posts(), есдинственное возвращает только тип поста dw_product

$dwCommerce->getProduct(id) — получить данные товара по ID

$dwCommerce->getOrder(id) — получить данные заказа по ID