Рейтинг:-3

Изменить состояние рабочего процесса с определенным способом оплаты

флаг jp
Tak

Прямо сейчас у меня есть способ оплаты под названием «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) он возвращает только "{}"

флаг cn
Как минимум, вам нужно самостоятельно прочитать документы, прежде чем спрашивать здесь. Запрашивать ссылку на документы не по теме для этого сайта.
Tak avatar
флаг jp
Tak
Я попросил документы, потому что я не нашел их для моей конкретной проблемы, если они есть.
флаг cn
Добро пожаловать в Drupal Answers :) Как уже упоминалось, просьба о ссылках здесь не по теме, это сайт вопросов и ответов, поэтому нам нужно, чтобы вопрос и ответ были здесь, а не где-то еще, или сайт застаивается, когда внешние ссылки не работают. На оставшийся вопрос ответ определенно «да», но опять же, для этого формата вам нужно будет более конкретно описать проблему. Добавьте информацию о том, что вы пробовали, сообщения об ошибках и т. д. Если вы еще не начали или не нашли коммерческую документацию, вы, вероятно, слишком рано задаете здесь вопрос.
Tak avatar
флаг jp
Tak
Спасибо, Клайв. Я исследовал это в течение последних нескольких дней, но, поскольку у меня нет поддержки по моей проблеме, я действительно борюсь. Что касается дополнительной информации, я создал модуль для пользовательского рабочего процесса и различных состояний.У меня есть ручной способ оплаты, который дает IBAN моего бизнеса клиенту для перевода денег, и как только он/она выберет его, мои коллеги хотят, чтобы заказ перешел в выбранное состояние, то есть «Ожидает перевода» в моем пользовательский рабочий процесс.
Рейтинг:1
флаг jp
Tak

После долгих головокружений и чистой удачи я нашел решение. В порядке.php:

функция getPay()
{
    return $this->get('payment_gateway')->entity->get('label');
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.