Создает и выводит форму оплаты на указанную сумму.
rcl_get_pay_form($args);
$args - массив передаваемых параметров для формирования формы оплаты с нужными характеристиками.
$args = array( 'pay_summ' => //сумма платежа, 'pay_type' => //тип платежа, 'user_id' => //идентификатор пользователя совершающего платеж, 'description' => //описание платежа, 'submit_value' => //текст на кнопке оплаты, 'box_id' => //css-идентификатор формы платежа в атрибуте id, 'box_class' => //css-класс формы оплаты, 'merchant_icon' => //указание вывода иконок доступных платежных систем, 'pay_systems' => //массив предлагаемых платежных систем, 'pay_systems_not_in' => //массив платежных систем для исключения из формы платежа, 'baggage_data' => //массив произвольных данных передаваемых в платежную систему при платеже );
pay_summ - сумма платежа, обязательно. Поддерживается указание нецелых чисел.
pay_type - тип платежа, обязательно. Уникальный идентификатор производимого платежа, по которому будет отличать все платежи данного типа от других, указывается строкой или числом. Плагином уже зарезервированы платежи с типами 1 (пополнение баланса пользователя) и 2 (оплата заказа Recall Commerce).
user_id - идентификатор пользователя, производящего платеж, необязательно. По-умолчанию - идентификатор текущего пользователя.
description - описание платежа. Поддерживается не всеми подключениями к платежным системам.
submit_value - текст на кнопках платежа, необязательно.
box_id - css-идентификатор формы платежа.
box_class - css-класс, указывается в массиве.
merchant_icon - включает/отключает вывод иконок для предлагаемых платежных систем внутри платежной формы. По-умолчанию - 1.
pay_systems - массив идентификаторов платежных систем, которые будут предлагаться к выбору внутри формы оплаты. Каждое подключение к платежной системе имеет свой идентификатор, например:
- yandexkassa
- unitpay
- walletone
- webmoney
- freekassa
- и другие
Кроме платежных систем может быть указан способ оплаты через личный баланс пользователя - user_balance.
pay_systems_not_in - массив идентификаторов платежных систем, которые следует исключить из списка предлагаемых внутри формы оплаты.
baggage_data - массив произвольных данных, которые следует передать через платежную форму, чтобы в после успешной оплаты получить их на обработку. Подключение к платежному агрегатору, через который производится платеж, должен поддерживать передачу данного параметра.
Порядок применения
Создадим и выведем форму на получение пожертвований с суммой платежа 100 рублей:
$args = array( 'pay_summ' => 100, 'pay_type' => 'donate', ); echo rcl_get_pay_form($args);
Выведем форму, которую можно будет оплатить только с личного счета:
$args = array( 'pay_summ' => 100, 'pay_type' => 'donate', 'pay_systems' => array('user_balance'), ); echo rcl_get_pay_form($args);
Выведем форму, которую можно оплатить любым из доступных способов оплаты, кроме оплаты с личного счета:
$args = array( 'pay_summ' => 100, 'pay_type' => 'donate', 'pay_systems_not_in' => array('user_balance'), ); echo rcl_get_pay_form($args);
Создадим платежную форму для оплаты произвольного заказа с типом 'pay-order' и передадим в платежную форму идентификатор оплачиваемого заказа и количество товаров внутри заказа:
$args = array( 'pay_summ' => 100, 'pay_type' => 'pay-order', 'baggage_data' => array( 'order_id' => 123, 'product_amount' => 2 ), ); echo rcl_get_pay_form($args);
Получим данные на обработку при удачном платеже типа 'pay-order' в свою функцию, в том числе переданные через baggage_data произвольные данные и отправим администратору письмо с деталями произведенного платежа:
add_action('rcl_success_pay','process_data_pay_order',10); function process_data_pay_order($payData){ //проверяем тип платежа, нам нужен 'pay-order' if($payData->pay_type != 'pay-order') return false; //получим произвольные данные переданные через baggage_data $baggageData = $payData->baggage_data; $order_id = $baggageData->order_id; //123 $productCount = $baggageData->product_amount; //2 //указываем админский емейл сайта $email = get_option('admin_email'); //заголовок письма $subject = 'Оплата заказа!'; //готовим текст письма $textMail = '<p>Пользователь: '.get_the_author_meta('display_name',$payData->user_id).'</p>'; $textMail .= '<p>Сумма платежа: '.$payData->pay_summ.'</p>'; $textMail .= '<p>Заказ №: '.$order_id.'</p>'; $textMail .= '<p>Кол-во товаров в заказе: '.$productCount.'</p>'; $textMail .= '<p>Система оплаты: '.$payData->current_connect.'</p>'; rcl_mail($email,$subject,$textMail); }
Я так понял прописать в functions.php
И какой получается шорткод?) Подмогите. Нужна просто кнопка оплаты с личного счёта.
Вас занесло. А шорткоды уже не используем? И зачем я вам тут ссылки давал https://codeseller.ru/forum/faqs/zakrytyj-kontent-dlya-pustogo-koshelka/#p26957 ?
Ну я про шорткод и говорю. Не могу собрать кнопку. Читал оба поста.
Вылетает постоянно "Ошибка! Не настроено подключение к платежному агрегатору."
Нужно без него просто кнопку типа этой [rcl-pay-form pay_type="donate" pay_summ="10"] только возможность оплаты только с личного счёта и без платёжного агрегатора. Подмогите шортод собрать до кучи.
Не нужно тут писать. Есть проблема - пишем на форуме. Вы собираете шорткод - а пишете в теме функции