8889841clions.clix.co.tz/wp-content/plugins/give/src/PaymentGateways/PayPalCommerce/Models/PayPalOrder.php000064400000006057150513525540032010 0ustar00home/clixcotzvalidate($array); $array = ArrayDataSet::camelCaseKeys($array); foreach ($array as $itemName => $value) { if ('purchaseUnits' === $itemName) { $value = current($value); $order->purchaseUnit = $value; $order->payment = PayPalPayment::fromArray((array)current($order->purchaseUnit->payments->captures)); continue; } $order->{$itemName} = $value; } return $order; } /** * Validate order given in array format. * * @since 2.9.0 * * @param array $array * * @throws InvalidArgumentException */ private function validate($array) { $required = ['id', 'intent', 'purchase_units', 'create_time', 'update_time', 'links']; // PayPal does not send following parameter in Order (completed with advanced card fields payment method) details. if ( ! isset($array['payment_source'])) { $required = array_merge($required, ['payer', 'status']); } $array = array_filter($array); // Remove empty values. if (array_diff($required, array_keys($array))) { throw new InvalidArgumentException( sprintf( esc_html__('To create a PayPalOrder object, please provide valid %1$s', 'give'), implode(', ', $required) ) ); } } }