Прямо сейчас у меня есть способ оплаты под названием «Transferência Bancária», и мне нужно, чтобы он автоматически переходил в состояние рабочего процесса «Ожидание Transferencia» при выборе этого способа оплаты.
Можно ли сделать программно?
Я застрял на:
$order = $event->getEntity(); if(($order->getPaymentGateway()) == ('transferencia')) { $order->set('state', 'aguardando_transferencia'); }
на моем /modules/workflowtkn/src/EventSubscriber/WorkflowTknProcessSubscriber.php
Ошибка: вызов неопределенного метода Drupal\commerce_order\Entity\Order::getPaymentGateway()
РЕДАКТИРОВАТЬ: У меня проблемы с вызовом функции «getPaymentGateway()», потому что она находится в другом модуле, может кто-нибудь помочь, пожалуйста :) Она должна соответствовать порядку.
я пытался $gateway = \Drupal::service('plugin.manager.commerce_payment_method_type');
но он говорит, что не может преобразовать в строку...
Этот:
$payment = $order->get('payment_gateway')->first()->entity
Дает мне:
Предупреждение: htmlspecialchars() ожидает, что параметр 1 будет строкой, объектом, заданным в Drupal\Component\Utility\Html::escape() .
я посмотрел на Как программно получить информацию о способе оплаты из объекта заказа?
но не могу понять.
Я думаю, я не могу преобразовать в строку?
РЕДАКТИРОВАТЬ: Когда я использую json_encode: json_encode($order->get('payment_gateway')->first()->entity)
он возвращает только "{}"