File "class-kp-create-recurring.php"

Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/klarna-payments-for-woocommerce/classes/requests/post/class-kp-create-recurring.php
File size: 1.54 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * Create KP recurring order.
 *
 * https://docs.klarna.com/api/customertoken/#operation/createOrder
 *
 * @package WC_Klarna_Payments/Classes/Requests/POST
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Create KP recurring order.
 */
class KP_Create_Recurring extends KP_Requests_Post {
	/**
	 * Class constructor.
	 *
	 * @param array $arguments The request arguments.
	 */
	public function __construct( $arguments ) {
		parent::__construct( $arguments );

		$this->log_title      = 'Create recurring order';
		$this->request_filter = 'wc_klarna_payments_create_recurring_order_args';
		$this->endpoint       = "/customer-token/v1/tokens/{$arguments['recurring_token']}/order";
	}


	/**
	 * Gets the request body.
	 *
	 * @param int $order_id The WooCommerce order id.
	 * @return array
	 */
	protected function get_body() {
		$customer_type = $this->settings['customer_type'] ?? 'b2c';
		$order_data    = new KP_Order_Data( $customer_type, $this->arguments['order_id'] );
		$order         = wc_get_order( $this->arguments['order_id'] );
		$klarna_order  = $order_data->get_klarna_order_object( $this->iframe_options );

		$request_body = array(
			'purchase_currency'   => $klarna_order['purchase_currency'],
			'order_amount'        => $klarna_order['order_amount'],
			'order_lines'         => $klarna_order['order_lines'],
			'order_tax_amount'    => $klarna_order['order_tax_amount'],
			'merchant_reference1' => $order->get_order_number(),
			'merchant_reference2' => $order->get_id(),
		);

		return $request_body;
	}
}