PluginProbe
StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More / 2.2.0
StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More v2.2.0
2.3.0 2.2.0 2.1.1 2.1.0 2.0.0 1.10.0 1.9.1 1.9.0 1.2.1 1.2.2 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 All 59 releases
storeengine / includes / utils / traits / gateway.php

gateway.php in StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More 2.2.0, at includes/utils/traits/gateway.php

41 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace StoreEngine\Utils\traits;
4
5 use StoreEngine\Payment\Gateways\PaymentGateway;
6 use StoreEngine\Payment_Gateways;
7
8 trait Gateway {
9
10 public static function get_payment_gateways(): Payment_Gateways {
11 return Payment_Gateways::init();
12 }
13
14 public static function get_payment_gateway( string $id ): ?PaymentGateway {
15 return self::get_payment_gateways()->get_gateway( $id );
16 }
17
18 /**
19 * Get payment gateway class by order data.
20 *
21 * @param int|\StoreEngine\Classes\Order $order Order instance.
22 * @return PaymentGateway|bool
23 */
24 public static function get_payment_gateway_by_order( $order ) {
25 if ( ! is_object( $order ) ) {
26 $order = self::get_order( absint( $order ) );
27 }
28
29 if ( is_wp_error( $order ) ) {
30 return false;
31 }
32
33 if ( ! $order->get_payment_method() || ! self::get_payment_gateways() ) {
34 return false;
35 }
36
37 // Resolve by id so a now-disabled gateway still loads for refunds/renewals.
38 return self::get_payment_gateways()->get_gateway( $order->get_payment_method() ) ?: false;
39 }
40 }
41