În acest moment, am o metodă de plată numită „Transferência Bancária” și trebuie să treacă automat la starea fluxului de lucru „În așteptarea transferului” atunci când acea metodă de plată este selectată.
Se poate face programatic?
Sunt blocat la:
$comanda = $eveniment->getEntity(); if(($comanda->getPaymentGateway()) == ('transfera')) { $comanda->set('state', 'aguardando_transferencia'); }
pe /modules/workflowtkn/src/EventSubscriber/WorkflowTknProcessSubscriber.php meu
Eroare: apel la metoda nedefinită Drupal\commerce_order\Entity\Order::getPaymentGateway()
EDIT: Am probleme la apelarea funcției "getPaymentGateway()" deoarece se află într-un alt modul, poate cineva să mă ajute, vă rog :) Trebuie să corespundă comenzii.
Am încercat $gateway = \Drupal::service('plugin.manager.commerce_payment_method_type');
dar spune că nu se poate converti în șir...
Acest:
$plata = $comanda->get('plata_gateway')->first()->entity
Imi da:
Atenție: htmlspecialchars() se așteaptă ca parametrul 1 să fie șir, obiect dat în Drupal\Component\Utility\Html::escape() .
M-am uitat la Cum obțin informații despre metoda de plată din obiectul comenzii în mod programatic?
dar nu-mi pot da seama.
Cred că nu reușesc să convertesc în șir?
EDIT: Când folosesc json_encode: json_encode($order->get('payment_gateway')->first()->entity)
returnează doar „{}”