WooCommerce Code Reference

WC_Gateway_Paypal_Request
in package

Generates requests to send to PayPal.

Table of Contents

$endpoint  : string
Endpoint for requests to PayPal.
$gateway  : WC_Gateway_Paypal
Pointer to gateway making the request.
$line_items  : array<string|int, mixed>
Stores line items to send to PayPal.
$notify_url  : string
Endpoint for requests from PayPal.
$request  : PayPalRequest
The delegated request instance.
__construct()  : mixed
Constructor.
authorize_or_capture_payment()  : void
This method authorizes or captures a PayPal payment and updates the order status.
capture_authorized_payment()  : void
Capture a PayPal payment that has been authorized.
create_paypal_order()  : array<string|int, mixed>|null
Create a PayPal order using the Orders v2 API.
fetch_paypal_client_id()  : string|null
Fetch the PayPal client-id from the Transact platform.
get_paypal_order_details()  : array<string|int, mixed>
Get PayPal order details.
get_paypal_order_purchase_unit_amount()  : array<string|int, mixed>
Get the amount data for the PayPal order purchase unit field.
get_request_url()  : string
Get the PayPal request URL for an order.
add_line_item()  : mixed
Add PayPal Line Item.
currency_has_decimals()  : bool
Check if currency has decimals.
delete_line_items()  : mixed
Remove all line items.
fix_request_length()  : array<string|int, mixed>
If the default request with line items is too long, generate a new one with only one line item.
get_line_item_args()  : array<string|int, mixed>
Get line item args for paypal request.
get_line_item_args_single_item()  : array<string|int, mixed>
Get line item args for paypal request as a single line item.
get_line_items()  : mixed
Return all line items.
get_order_item_name()  : string
Get order item names as a string.
get_order_item_names()  : string
Get order item names as a string.
get_paypal_args()  : array<string|int, mixed>
Get PayPal Args for passing to PP.
get_paypal_state()  : string
Get the state to send to paypal.
get_phone_number_args()  : array<string|int, mixed>
Get phone number args for paypal request.
get_shipping_args()  : array<string|int, mixed>
Get shipping args for paypal request.
get_shipping_cost_line_item()  : array<string|int, mixed>
Get shipping cost line item args for paypal request.
get_transaction_args()  : array<string|int, mixed>
Get transaction args for paypal request, except for line item args.
limit_length()  : string
Limit length of an arg.
line_items_valid()  : bool
Check if the order has valid line items to use for PayPal request.
number_format()  : string
Format prices.
prepare_line_items()  : mixed
Get line items to send to paypal.
round()  : float
Round prices.

Properties

Methods

authorize_or_capture_payment()

This method authorizes or captures a PayPal payment and updates the order status.

public authorize_or_capture_payment(WC_Order $order, string|null $action_url[, string $action = PayPalConstants::PAYMENT_ACTION_CAPTURE ]) : void
Parameters
$order : WC_Order

Order object.

$action_url : string|null

The URL to authorize or capture the payment.

$action : string = PayPalConstants::PAYMENT_ACTION_CAPTURE

The action to perform. Either 'authorize' or 'capture'.

Tags
deprecated
10.5.0

Use Automattic\WooCommerce\Gateways\PayPal\Request::authorize_or_capture_payment() instead.

throws
Exception

If the PayPal payment authorization or capture fails.

Return values
void

capture_authorized_payment()

Capture a PayPal payment that has been authorized.

public capture_authorized_payment(WC_Order $order) : void
Parameters
$order : WC_Order

Order object.

Tags
deprecated
10.5.0

Use Automattic\WooCommerce\Gateways\PayPal\Request::capture_authorized_payment() instead. This method will be removed in 11.0.0.

throws
Exception

If the PayPal payment capture fails.

Return values
void

create_paypal_order()

Create a PayPal order using the Orders v2 API.

public create_paypal_order(WC_Order $order[, string $payment_source = PayPalConstants::PAYMENT_SOURCE_PAYPAL ][, array<string|int, mixed> $js_sdk_params = array() ]) : array<string|int, mixed>|null
Parameters
$order : WC_Order

Order object.

$payment_source : string = PayPalConstants::PAYMENT_SOURCE_PAYPAL

The payment source.

$js_sdk_params : array<string|int, mixed> = array()

Extra parameters for a PayPal JS SDK (Buttons) request.

Tags
deprecated
10.5.0

Use Automattic\WooCommerce\Gateways\PayPal\Request::create_paypal_order() instead. This method will be removed in 11.0.0.

throws
Exception

If the PayPal order creation fails.

Return values
array<string|int, mixed>|null

fetch_paypal_client_id()

Fetch the PayPal client-id from the Transact platform.

public fetch_paypal_client_id() : string|null
Tags
deprecated
10.5.0

Use Automattic\WooCommerce\Gateways\PayPal\Request::fetch_paypal_client_id() instead. This method will be removed in 11.0.0.

throws
Exception

If the request fails.

Return values
string|nullThe PayPal client-id, or null if the request fails.

get_paypal_order_details()

Get PayPal order details.

public get_paypal_order_details(string $paypal_order_id) : array<string|int, mixed>
Parameters
$paypal_order_id : string

The ID of the PayPal order.

Tags
deprecated
10.5.0

Use Automattic\WooCommerce\Gateways\PayPal\Request::get_paypal_order_details() instead. This method will be removed in 11.0.0.

throws
Exception

If the PayPal order details request fails.

throws
Exception

If the PayPal order details are not found.

Return values
array<string|int, mixed>

get_paypal_order_purchase_unit_amount()

Get the amount data for the PayPal order purchase unit field.

public get_paypal_order_purchase_unit_amount(WC_Order $order) : array<string|int, mixed>
Parameters
$order : WC_Order

Order object.

Tags
deprecated
10.5.0

Use Automattic\WooCommerce\Gateways\PayPal\Request::get_paypal_order_purchase_unit_amount() instead. This method will be removed in 11.0.0.

Return values
array<string|int, mixed>

add_line_item()

Add PayPal Line Item.

protected add_line_item(string $item_name[, int $quantity = 1 ][, float $amount = 0.0 ][, string $item_number = '' ]) : mixed
Parameters
$item_name : string

Item name.

$quantity : int = 1

Item quantity.

$amount : float = 0.0

Amount.

$item_number : string = ''

Item number.

Return values
mixed

fix_request_length()

If the default request with line items is too long, generate a new one with only one line item.

protected fix_request_length(WC_Order $order, array<string|int, mixed> $paypal_args) : array<string|int, mixed>

If URL is longer than 2,083 chars, ignore line items and send cart to Paypal as a single item. One item's name can only be 127 characters long, so the URL should not be longer than limit. URL character limit via: https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer.

Parameters
$order : WC_Order

Order to be sent to Paypal.

$paypal_args : array<string|int, mixed>

Arguments sent to Paypal in the request.

Return values
array<string|int, mixed>

get_shipping_cost_line_item()

Get shipping cost line item args for paypal request.

protected get_shipping_cost_line_item(WC_Order $order, bool $force_one_line_item) : array<string|int, mixed>
Parameters
$order : WC_Order

Order object.

$force_one_line_item : bool

Whether one line item was forced by validation or URL length.

Return values
array<string|int, mixed>