PaymentStorage.php in Commerce Core 8.2
File
modules/payment/src/PaymentStorage.php
View source
<?php
namespace Drupal\commerce_payment;
use Drupal\commerce\CommerceContentEntityStorage;
use Drupal\commerce_order\Entity\OrderInterface;
class PaymentStorage extends CommerceContentEntityStorage implements PaymentStorageInterface {
public function loadByRemoteId($remote_id) {
$payments = $this
->loadByProperties([
'remote_id' => $remote_id,
]);
$payment = reset($payments);
return $payment ?: NULL;
}
public function loadMultipleByOrder(OrderInterface $order) {
$query = $this
->getQuery()
->condition('order_id', $order
->id())
->accessCheck(FALSE)
->sort('payment_id');
$result = $query
->execute();
return $result ? $this
->loadMultiple($result) : [];
}
protected function doCreate(array $values) {
if (!isset($values['type']) && !empty($values['payment_gateway'])) {
$payment_gateway = $values['payment_gateway'];
if (is_string($payment_gateway)) {
$payment_gateway_storage = $this->entityTypeManager
->getStorage('commerce_payment_gateway');
$payment_gateway = $payment_gateway_storage
->load($payment_gateway);
}
$payment_type = $payment_gateway
->getPlugin()
->getPaymentType();
$values['type'] = $payment_type
->getPluginId();
}
return parent::doCreate($values);
}
}