Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
klarna-payments-for-woocommerce
/
classes
/
requests
:
class-kp-requests-post.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Base class for all POST requests. * * @package WC_Klarna_Payments/Classes/Request */ defined( 'ABSPATH' ) || exit; use KrokedilKlarnaPaymentsDeps\Krokedil\WooCommerce\Cart\Cart; use KrokedilKlarnaPaymentsDeps\Krokedil\WooCommerce\Order\Order; /** * The main class for POST requests. */ abstract class KP_Requests_Post extends KP_Requests { /** * KP_Requests_Post constructor. * * @param array $arguments The request arguments. */ public function __construct( $arguments = array() ) { parent::__construct( $arguments ); $this->method = 'POST'; } /** * Build and return proper request arguments for this request type. * * @return array Request arguments */ protected function get_request_args() { $body = $this->get_body(); return apply_filters( $this->request_filter, array( 'headers' => $this->get_request_headers(), 'user-agent' => $this->get_user_agent(), 'method' => $this->method, 'timeout' => apply_filters( 'wc_kp_request_timeout', 10 ), 'body' => wp_json_encode( apply_filters( 'kp_wc_api_request_args', $body ) ), ) ); } /** * Returns the request helper for the request based on if we have a order id passed or not. * * @return KrokedilKlarnaPaymentsDeps\Krokedil\WooCommerce\OrderData */ public function get_order_data() { $config = array( 'slug' => 'kp', 'price_format' => 'minor', ); if ( $this->arguments['order_id'] ?? false && ! empty( $this->arguments['order_id'] ) ) { $order = wc_get_order( $this->arguments['order_id'] ); return new Order( $order, $config ); } else { return new Cart( WC()->cart, $config ); } } /** * Returns a formated Klarna order object. * * @return array */ protected function get_body() { $order_id = $this->arguments['order_id'] ?? null; $customer_type = $this->arguments['customer_type'] ?? get_option( 'woocommerce_klarna_payments_settings', array( 'customer_type' => 'b2c' ) )['customer_type']; $order_data = new KP_Order_Data( $customer_type, $order_id ); return apply_filters( 'kp_wc_api_request_args', $order_data->get_klarna_order_object( $this->iframe_options ) ); } }