ตอนนี้ฉันมีวิธีการชำระเงินที่เรียกว่า "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()->เอนทิตี
ให้ฉัน:
คำเตือน: htmlspecialchars() คาดว่าพารามิเตอร์ 1 จะเป็นสตริง วัตถุที่กำหนดใน Drupal\Component\Utility\Html::escape()
ฉันได้ดูที่ ฉันจะรับข้อมูลเกี่ยวกับวิธีการชำระเงินจากวัตถุคำสั่งซื้อโดยทางโปรแกรมได้อย่างไร
แต่ไม่สามารถเข้าใจได้
ฉันเดาว่าฉันไม่สามารถแปลงเป็นสตริงได้?
แก้ไข: เมื่อฉันใช้ json_encode: json_encode($order->get('payment_gateway')->first()->entity)
มันจะคืนค่า "{}" เท่านั้น