ERROR API error
-
Sometimes (not always) I get an API error paying with Paypal on checkout page.
On front end there is an error
There was an error processing your payment. Reason:
And there is no error description provided after Reason:.
Error log in Woocommerce logs looks like following
2023-01-16T11:15:10+00:00 ERROR API error: Array ( [url] => https://api-m.paypal.com/v2/checkout/orders [method] => GET [request] => [error] => )
-
Hi @kovalchik8
Thanks for contacting us. After this error, does the customer complete their order with a successful API response?
The API path that’s being called should contain a PayPal order ID at the end but it’s blank so I believe that’s the cause of the issue. The PayPal plugin sends the PayPal order from the checkout page to the backend during the WooCommerce checkout process. It looks like in some cases that value never makes it.
Are you using a cache plugin on your checkout page?
Kind Regards,
Order is finally represented as Cancelled in admin panel.
Caching is excluded on checkout page both with checkout url and cart cookie exceptions. The same error happens on local environment where cache isn’t used.
I already wrote an extended debug log for this issue and will try to provide you more information soon, thanks.
Here is the $result object right before error appears, some client fields are hidden with ***:
2023-01-18T13:20:15+00:00 DEBUG PaymentPlugins\WooCommerce\PPCP\PaymentResult Object ( [success:PaymentPlugins\WooCommerce\PPCP\PaymentResult:private] => [order:PaymentPlugins\WooCommerce\PPCP\PaymentResult:private] => Automattic\WooCommerce\Admin\Overrides\Order Object ( [id:protected] => 8877 [data:protected] => Array ( [parent_id] => 0 [status] => pending [currency] => EUR [version] => 7.3.0 [prices_include_tax] => 1 [date_created] => WC_DateTime Object ( [utc_offset:protected] => 3600 [date] => 2023-01-18 13:20:15.000000 [timezone_type] => 1 [timezone] => +00:00 ) [date_modified] => WC_DateTime Object ( [utc_offset:protected] => 3600 [date] => 2023-01-18 13:20:15.000000 [timezone_type] => 1 [timezone] => +00:00 ) [discount_total] => 68.067227 [discount_tax] => 12.932773 [shipping_total] => 0 [shipping_tax] => 0 [cart_tax] => 73 [total] => 457 [total_tax] => 73 [customer_id] => 0 [order_key] => wc_order_Ace8fFs8o6Jmp [billing] => Array ( [first_name] => *** [last_name] => *** [company] => [address_1] => Friedenstra?e 47 [address_2] => [city] => *** [state] => [postcode] => *** [country] => DE [email] => *** [phone] => *** ) [shipping] => Array ( [first_name] => *** [last_name] => *** [company] => [address_1] => *** [address_2] => [city] => *** [state] => [postcode] => *** [country] => DE [phone] => ) [payment_method] => ppcp [payment_method_title] => Paypal [transaction_id] => [customer_ip_address] => *** [customer_user_agent] => *** [created_via] => checkout [customer_note] => [date_completed] => [date_paid] => [cart_hash] => 527fd7e47f398de98478da3e47f648f2 [order_stock_reduced] => [download_permissions_granted] => [new_order_email_sent] => [recorded_sales] => [recorded_coupon_usage_counts] => ) [changes:protected] => Array ( ) [object_read:protected] => 1 [object_type:protected] => order [extra_data:protected] => Array ( ) [default_data:protected] => Array ( [parent_id] => 0 [status] => [currency] => [version] => [prices_include_tax] => [date_created] => [date_modified] => [discount_total] => 0 [discount_tax] => 0 [shipping_total] => 0 [shipping_tax] => 0 [cart_tax] => 0 [total] => 0 [total_tax] => 0 [customer_id] => 0 [order_key] => [billing] => Array ( [first_name] => [last_name] => [company] => [address_1] => [address_2] => [city] => [state] => [postcode] => [country] => [email] => [phone] => ) [shipping] => Array ( [first_name] => [last_name] => [company] => [address_1] => [address_2] => [city] => [state] => [postcode] => [country] => [phone] => ) [payment_method] => [payment_method_title] => [transaction_id] => [customer_ip_address] => [customer_user_agent] => [created_via] => [customer_note] => [date_completed] => [date_paid] => [cart_hash] => [order_stock_reduced] => [download_permissions_granted] => [new_order_email_sent] => [recorded_sales] => [recorded_coupon_usage_counts] => ) [data_store:protected] => WC_Data_Store Object ( [instance:WC_Data_Store:private] => WC_Order_Data_Store_CPT Object ( [meta_type:protected] => post [object_id_field_for_meta:protected] => [internal_meta_keys:protected] => Array ( [0] => _parent_id [1] => _status [2] => _currency [3] => _version [4] => _prices_include_tax [5] => _date_created [6] => _date_modified [7] => _discount_total [8] => _discount_tax [9] => _shipping_total [10] => _shipping_tax [11] => _cart_tax [12] => _total [13] => _total_tax [14] => _customer_id [15] => _order_key [16] => _billing [17] => _shipping [18] => _payment_method [19] => _payment_method_title [20] => _transaction_id [21] => _customer_ip_address [22] => _customer_user_agent [23] => _created_via [24] => _customer_note [25] => _date_completed [26] => _date_paid [27] => _cart_hash [28] => _order_stock_reduced [29] => _download_permissions_granted [30] => _new_order_email_sent [31] => _recorded_sales [32] => _recorded_coupon_usage_counts [33] => _customer_user [34] => _order_key [35] => _order_currency [36] => _billing_first_name [37] => _billing_last_name [38] => _billing_company [39] => _billing_address_1 [40] => _billing_address_2 [41] => _billing_city [42] => _billing_state [43] => _billing_postcode [44] => _billing_country [45] => _billing_email [46] => _billing_phone [47] => _shipping_first_name [48] => _shipping_last_name [49] => _shipping_company [50] => _shipping_address_1 [51] => _shipping_address_2 [52] => _shipping_city [53] => _shipping_state [54] => _shipping_postcode [55] => _shipping_country [56] => _shipping_phone [57] => _completed_date [58] => _paid_date [59] => _edit_lock [60] => _edit_last [61] => _cart_discount [62] => _cart_discount_tax [63] => _order_shipping [64] => _order_shipping_tax [65] => _order_tax [66] => _order_total [67] => _payment_method [68] => _payment_method_title [69] => _transaction_id [70] => _customer_ip_address [71] => _customer_user_agent [72] => _created_via [73] => _order_version [74] => _prices_include_tax [75] => _date_completed [76] => _date_paid [77] => _payment_tokens [78] => _billing_address_index [79] => _shipping_address_index [80] => _recorded_sales [81] => _recorded_coupon_usage_counts [82] => _download_permissions_granted [83] => _order_stock_reduced [84] => _new_order_email_sent ) [must_exist_meta_keys:protected] => Array ( ) [internal_data_store_key_getters:protected] => Array ( [_download_permissions_granted] => download_permissions_granted [_recorded_sales] => recorded_sales [_recorded_coupon_usage_counts] => recorded_coupon_usage_counts [_order_stock_reduced] => order_stock_reduced [_new_order_email_sent] => new_order_email_sent ) ) [stores:WC_Data_Store:private] => Array ( [coupon] => WC_Coupon_Data_Store_CPT [customer] => WC_Customer_Data_Store [customer-download] => WC_Customer_Download_Data_Store [customer-download-log] => WC_Customer_Download_Log_Data_Store [customer-session] => WC_Customer_Data_Store_Session [order] => WC_Order_Data_Store_CPT [order-refund] => WC_Order_Refund_Data_Store_CPT [order-item] => WC_Order_Item_Data_Store [order-item-coupon] => WC_Order_Item_Coupon_Data_Store [order-item-fee] => WC_Order_Item_Fee_Data_Store [order-item-product] => WC_Order_Item_Product_Data_Store [order-item-shipping] => WC_Order_Item_Shipping_Data_Store [order-item-tax] => WC_Order_Item_Tax_Data_Store [payment-token] => WC_Payment_Token_Data_Store [product] => WC_Product_Data_Store_CPT [product-grouped] => WC_Product_Grouped_Data_Store_CPT [product-variable] => WC_Product_Variable_Data_Store_CPT [product-variation] => WC_Product_Variation_Data_Store_CPT [shipping-zone] => WC_Shipping_Zone_Data_Store [webhook] => WC_Webhook_Data_Store [report-revenue-stats] => Automattic\WooCommerce\Admin\API\Reports\Orders\Stats\DataStore [report-orders] => Automattic\WooCommerce\Admin\API\Reports\Orders\DataStore [report-orders-stats] => Automattic\WooCommerce\Admin\API\Reports\Orders\Stats\DataStore [report-products] => Automattic\WooCommerce\Admin\API\Reports\Products\DataStore [report-variations] => Automattic\WooCommerce\Admin\API\Reports\Variations\DataStore [report-products-stats] => Automattic\WooCommerce\Admin\API\Reports\Products\Stats\DataStore [report-variations-stats] => Automattic\WooCommerce\Admin\API\Reports\Variations\Stats\DataStore [report-categories] => Automattic\WooCommerce\Admin\API\Reports\Categories\DataStore [report-taxes] => Automattic\WooCommerce\Admin\API\Reports\Taxes\DataStore [report-taxes-stats] => Automattic\WooCommerce\Admin\API\Reports\Taxes\Stats\DataStore [report-coupons] => Automattic\WooCommerce\Admin\API\Reports\Coupons\DataStore [report-coupons-stats] => Automattic\WooCommerce\Admin\API\Reports\Coupons\Stats\DataStore [report-downloads] => Automattic\WooCommerce\Admin\API\Reports\Downloads\DataStore [report-downloads-stats] => Automattic\WooCommerce\Admin\API\Reports\Downloads\Stats\DataStore [admin-note] => Automattic\WooCommerce\Admin\Notes\DataStore [report-customers] => Automattic\WooCommerce\Admin\API\Reports\Customers\DataStore [report-customers-stats] => Automattic\WooCommerce\Admin\API\Reports\Customers\Stats\DataStore [report-stock-stats] => Automattic\WooCommerce\Admin\API\Reports\Stock\Stats\DataStore ) [current_class_name:WC_Data_Store:private] => WC_Order_Data_Store_CPT [object_type:WC_Data_Store:private] => order ) [cache_group:protected] => orders [meta_data:protected] => Array ( [0] => WC_Meta_Data Object ( [current_data:protected] => Array ( [id] => 73394 [key] => is_vat_exempt [value] => no ) [data:protected] => Array ( [id] => 73394 [key] => is_vat_exempt [value] => no ) ) ) [legacy_datastore_props:protected] => Array ( [0] => _recorded_sales [1] => _recorded_coupon_usage_counts [2] => _download_permissions_granted [3] => _order_stock_reduced [4] => _new_order_email_sent ) [items:protected] => Array ( ) [items_to_delete:protected] => Array ( ) [data_store_name:protected] => order [status_transition:protected] => [refunded_line_items:protected] => [customer_id] => ) [error_message:PaymentPlugins\WooCommerce\PPCP\PaymentResult:private] => [payment_method:PaymentPlugins\WooCommerce\PPCP\PaymentResult:private] => PaymentPlugins\WooCommerce\PPCP\Payments\Gateways\PayPalGateway Object ( [plugin_id] => woocommerce_ [id] => ppcp [errors] => Array ( ) [settings] => Array ( [enabled] => yes [title_text] => Paypal [description] => [intent] => capture [authorize_status] => wc-on-hold [billing_agreement_description] => Billing Agreement [sections] => Array ( [0] => cart [1] => order_pay ) [payment_format] => name_email [button_options] => [paypal_button_color] => gold [button_shape] => rect [button_label] => paypal [button_height] => 50 [checkout_placement] => place_order [buttons_order] => Array ( [0] => paypal [1] => paylater [2] => venmo [3] => card ) [venmo_title] => [venmo_enabled] => no [venmo_sections] => Array ( [0] => checkout [1] => order_pay ) [paylater_title] => [paylater_enabled] => no [paylater_button_color] => gold [paylater_sections] => Array ( [0] => cart [1] => checkout [2] => order_pay ) [credit_card_title] => [card_enabled] => no [card_button_color] => black [card_tagline_enabled] => no [credit_card_sections] => Array ( [0] => cart [1] => checkout [2] => order_pay ) ) [form_fields] => Array ( [enabled] => Array ( [title] => Enabled [type] => checkbox [default] => no [value] => yes [desc_tip] => 1 [description] => Enable this option to offer PayPal on your site. ) [title_text] => Array ( [title] => Title [type] => text [default] => PayPal [desc_tip] => 1 [description] => This is the title of the payment gateway which appears on the checkout page. ) [description] => Array ( [title] => Description [type] => text [default] => [desc_tip] => 1 [description] => This is the description that appears when the payment gateway is selected on the checkout page. ) [intent] => Array ( [type] => select [class] => wc-enhanced-select [title] => Transaction Type [default] => capture [options] => Array ( [capture] => Capture [authorize] => Authorize ) [desc_tip] => 1 [description] => If set to capture, funds will be captured immediately during checkout. Authorized transactions put a hold on the customer's funds but no payment is taken until the charge is captured. Authorized charges can be captured on the Admin Order page. ) [authorize_status] => Array ( [type] => select [class] => wc-enhanced-select [title] => Authorized Order Status [default] => wc-on-hold [options] => Array ( [wc-pending] => Zahlung ausstehend [wc-processing] => In Bearbeitung [wc-on-hold] => In Wartestellung [wc-completed] => Abgeschlossen [wc-cancelled] => Storniert/Abgebrochen [wc-refunded] => Rückerstattet [wc-failed] => Fehlgeschlagen [wc-checkout-draft] => Entwurf ) [custom_attributes] => Array ( [data-show-if] => intent=authorize ) [desc_tip] => 1 [description] => If the transaction is authorized, this is the status applied to the order. ) [billing_agreement_description] => Array ( [title] => Billing Agreement Description [type] => text [default] => Billing Agreement [desc_tip] => 1 [description] => This is the billing agreement description that appears in the PayPal popup. ) [sections] => Array ( [title] => PayPal Payment Sections [type] => multiselect [class] => wc-enhanced-select [default] => Array ( [0] => cart [1] => checkout [2] => order_pay ) [options] => Array ( [product] => Product Page [cart] => Cart Page [express_checkout] => Express Checkout [order_pay] => Order Pay [minicart] => Minicart ) [sanitize_callback] => Closure Object ( [this] => PaymentPlugins\WooCommerce\PPCP\Payments\Gateways\PayPalGateway Object *RECURSION* [parameter] => Array ( [$value] => <required> ) ) [desc_tip] => 1 [description] => These are the sections that the PayPal payment button will appear. If PayPal is enabled, the button will show on the checkout page by default. ) [payment_format] => Array ( [title] => Payment Method Format [type] => select [default] => name_email [options] => Array ( [name] => PayPal [name_email] => PayPal - [email protected] ) [desc_tip] => 1 [description] => This option controls how the PayPal payment method appears on the frontend. ) [checkout_placement] => Array ( [title] => Checkout page Button Placement [type] => select [options] => Array ( [place_order] => Place Order Button [payment_method] => In payment gateway section ) [default] => place_order [desc_tip] => 1 [description] => You can choose to render the PayPal button in either the payment method section of the checkout page or where the Place Order button is rendered. ) [show_popup_icon] => Array ( [title] => Show Popup Icon and Text [type] => checkbox [value] => yes [default] => yes [description] => If enabled, the PayPal payment gateway will render a popup icon indicating to the customer that they must click the PayPal button. [desc_tip] => 1 [custom_attributes] => Array ( [data-show-if] => checkout_placement=place_order ) ) [button_options] => Array ( [type] => title [title] => PayPal Button Design ) [paypal_button_color] => Array ( [type] => select [title] => Button Color [class] => wc-ppcp-smartbutton-option wc-enhanced-select [default] => gold [options] => Array ( [gold] => Gold [blue] => Blue [silver] => Silver [black] => Black [white] => White ) ) [button_shape] => Array ( [type] => select [title] => Button Shape [class] => wc-ppcp-smartbutton-option wc-enhanced-select [default] => rect [options] => Array ( [pill] => Pill [rect] => Rectangle ) ) [button_label] => Array ( [type] => select [title] => Button Label [class] => wc-ppcp-smartbutton-option wc-enhanced-select [default] => paypal [options] => Array ( [paypal] => Standard [checkout] => Checkout [buynow] => Buy Now [pay] => Pay ) ) [button_height] => Array ( [type] => slider [title] => Button Height [default] => 40 [custom_attributes] => Array ( [data-height-min] => 25 [data-height-max] => 55 [data-height-step] => 1 ) ) [buttons_order] => Array ( [type] => smartbutton_demo [title] => Demo [id] => ppcp_button_demo [default] => Array ( [0] => paypal [1] => paylater [2] => venmo [3] => card ) [description] => Enabled payment methods are listed below and can be sorted to control their display order on the frontend. [sanitize_callback] => Closure Object ( [this] => PaymentPlugins\WooCommerce\PPCP\Payments\Gateways\PayPalGateway Object *RECURSION* [parameter] => Array ( [$value] => <required> ) ) ) [venmo_title] => Array ( [type] => title [title] => Venmo Options ) [venmo_enabled] => Array ( [type] => checkbox [title] => Venmo [class] => wc-ppcp-smartbutton-option [value] => yes [default] => no [desc_tip] => [description] => If enabled, you will be able to offer Venmo. Venmo is a mobile payment method and the Venmo app must be installed on the customer's device in order to show. ) [venmo_sections] => Array ( [title] => Venmo Payment Sections [type] => multiselect [class] => wc-enhanced-select [default] => Array ( [0] => checkout [1] => order_pay ) [options] => Array ( [checkout] => Checkout Page [express_checkout] => Express Checkout [order_pay] => Order Pay [minicart] => Minicart ) [custom_attributes] => Array ( [data-show-if] => venmo_enabled=true ) [sanitize_callback] => Closure Object ( [this] => PaymentPlugins\WooCommerce\PPCP\Payments\Gateways\PayPalGateway Object *RECURSION* [parameter] => Array ( [$value] => <required> ) ) [desc_tip] => 1 [description] => These are the sections that the Venmo payment button will appear. ) [paylater_title] => Array ( [type] => title [title] => Pay Later Options ) [paylater_enabled] => Array ( [type] => checkbox [title] => Pay Later [class] => wc-ppcp-smartbutton-option [value] => yes [default] => no [desc_tip] => 1 [description] => If enabled, you will be able to offer PayPal\s Pay Later option. ) [paylater_button_color] => Array ( [type] => select [title] => Pay Later Button Color [class] => wc-ppcp-smartbutton-option wc-enhanced-select [custom_attributes] => Array ( [data-show-if] => paylater_enabled=true ) [default] => gold [options] => Array ( [gold] => Gold [blue] => Blue [silver] => Silver [black] => Black [white] => White ) ) [paylater_sections] => Array ( [title] => Pay Later Payment Sections [type] => multiselect [class] => wc-enhanced-select [default] => Array ( [0] => cart [1] => checkout [2] => order_pay ) [options] => Array ( [product] => Product Page [cart] => Cart Page [checkout] => Checkout Page [express_checkout] => Express Checkout [order_pay] => Order Pay [minicart] => Minicart ) [custom_attributes] => Array ( [data-show-if] => paylater_enabled=true ) [sanitize_callback] => Closure Object ( [this] => PaymentPlugins\WooCommerce\PPCP\Payments\Gateways\PayPalGateway Object *RECURSION* [parameter] => Array ( [$value] => <required> ) ) [desc_tip] => 1 [description] => These are the sections that the PayPal payment buttons will appear. ) [credit_card_title] => Array ( [type] => title [title] => Credit Card Options ) [card_enabled] => Array ( [type] => checkbox [title] => Card Enabled [value] => yes [default] => no [class] => wc-ppcp-smartbutton-option [desc_tip] => 1 [description] => If enabled, the card button will be included. ) [card_button_color] => Array ( [type] => select [title] => Card Button Color [class] => wc-ppcp-smartbutton-option wc-enhanced-select [default] => gold [custom_attributes] => Array ( [data-show-if] => card_enabled=true ) [options] => Array ( [black] => Black [white] => White ) ) [card_tagline_enabled] => Array ( [type] => checkbox [title] => Tagline enabled [class] => wc-ppcp-smartbutton-option [default] => no [value] => yes [desc_tip] => 1 [description] => If enabled, the card button tagline will be rendered beneath the button. [custom_attributes] => Array ( [data-show-if] => card_enabled=true ) ) [credit_card_sections] => Array ( [title] => Credit Card Payment Sections [type] => multiselect [class] => wc-enhanced-select [default] => Array ( [0] => cart [1] => checkout [2] => order_pay ) [options] => Array ( [product] => Product Page [cart] => Cart Page [checkout] => Checkout Page [express_checkout] => Express Checkout [order_pay] => Order Pay [minicart] => Minicart ) [custom_attributes] => Array ( [data-show-if] => card_enabled=true ) [sanitize_callback] => Closure Object ( [this] => PaymentPlugins\WooCommerce\PPCP\Payments\Gateways\PayPalGateway Object *RECURSION* [parameter] => Array ( [$value] => <required> ) ) [desc_tip] => 1 [description] => These are the sections that the PayPal payment buttons will appear. ) ) [data:protected] => Array ( ) [order_button_text] => [enabled] => yes [title] => Paypal [description] => [chosen] => [method_title] => PayPal Gateway [method_description] => Offer PayPal, PayLater, Venmo, and Credit Cards [has_fields] => 1 [countries] => [availability] => [icon] => https://sundimmer.com/wp-content/plugins/pymntpl-paypal-woocommerce/assets/img/paypal_logo.svg [supports] => Array ( [0] => tokenization [1] => products [2] => subscriptions [3] => add_payment_method [4] => subscription_cancellation [5] => multiple_subscriptions [6] => subscription_amount_changes [7] => subscription_date_changes [8] => default_credit_card_form [9] => refunds [10] => pre-orders [11] => subscription_payment_method_change_admin [12] => subscription_reactivation [13] => subscription_suspension [14] => subscription_payment_method_change_customer ) [max_amount] => 0 [view_transaction_url] => [new_method_label] => [pay_button_id] => [tokens:protected] => Array ( ) [payment_handler] => PaymentPlugins\WooCommerce\PPCP\PaymentHandler Object ( [client] => PaymentPlugins\WooCommerce\PPCP\WPPayPalClient Object ( [client:PaymentPlugins\PayPalSDK\Client\BaseHttpClient:private] => GuzzleHttp\Client Object ( [config:GuzzleHttp\Client:private] => Array ( [timeout] => 80 [verify] => /var/www/webroot/ROOT/wp-content/plugins/pymntpl-paypal-woocommerce/vendor/paymentplugins/paypal-php-sdk/ca-certificates.crt [http_errors] => [handler] => GuzzleHttp\HandlerStack Object ( [handler:GuzzleHttp\HandlerStack:private] => Closure Object ( [static] => Array ( [default] => Closure Object ( [static] => Array ( [default] => GuzzleHttp\Handler\CurlMultiHandler Object ( [factory:GuzzleHttp\Handler\CurlMultiHandler:private] => GuzzleHttp\Handler\CurlFactory Object ( [handles:GuzzleHttp\Handler\CurlFactory:private] => Array ( ) [maxHandles:GuzzleHttp\Handler\CurlFactory:private] => 50 ) [selectTimeout:GuzzleHttp\Handler\CurlMultiHandler:private] => 1 [active:GuzzleHttp\Handler\CurlMultiHandler:private] => 0 [handles:GuzzleHttp\Handler\CurlMultiHandler:private] => Array ( ) [delays:GuzzleHttp\Handler\CurlMultiHandler:private] => Array ( ) [options:GuzzleHttp\Handler\CurlMultiHandler:private] => Array ( ) ) [sync] => GuzzleHttp\Handler\CurlHandler Object ( [factory:GuzzleHttp\Handler\CurlHandler:private] => GuzzleHttp\Handler\CurlFactory Object ( [handles:GuzzleHttp\Handler\CurlFactory:private] => Array ( [0] => CurlHandle Object ( ) ) [maxHandles:GuzzleHttp\Handler\CurlFactory:private] => 3 ) ) ) [parameter] => Array ( [$request] => <required> [$options] => <required> ) ) [streaming] => GuzzleHttp\Handler\StreamHandler Object ( [lastHeaders:GuzzleHttp\Handler\StreamHandler:private] => Array ( ) ) ) [parameter] => Array ( [$request] => <required> [$options] => <required> ) ) [stack:GuzzleHttp\HandlerStack:private] => Array ( [0] => Array ( [0] => Closure Object ( [static] => Array ( [bodySummarizer] => ) [parameter] => Array ( [$handler] => <required> ) ) [1] => http_errors ) [1] => Array ( [0] => Closure Object ( [parameter] => Array ( [$handler] => <required> ) ) [1] => allow_redirects ) [2] => Array ( [0] => Closure Object ( [parameter] => Array ( [$handler] => <required> ) ) [1] => cookies ) [3] => Array ( [0] => Closure Object ( [parameter] => Array ( [$handler] => <required> ) ) [1] => prepare_body ) ) [cached:GuzzleHttp\HandlerStack:private] => Closure Object ( [static] => Array ( [handler] => GuzzleHttp\RedirectMiddleware Object ( [nextHandler:GuzzleHttp\RedirectMiddleware:private] => Closure Object ( [static] => Array ( [handler] => GuzzleHttp\PrepareBodyMiddleware Object ( [nextHandler:GuzzleHttp\PrepareBodyMiddleware:private] => Closure Object ( [static] => Array ( [default] => Closure Object ( [static] => Array ( [default] => GuzzleHttp\Handler\CurlMultiHandler Object ( [factory:GuzzleHttp\Handler\CurlMultiHandler:private] => GuzzleHttp\Handler\CurlFactory Object ( [handles:GuzzleHttp\Handler\CurlFactory:private] => Array ( ) [maxHandles:GuzzleHttp\Handler\CurlFactory:private] => 50 ) [selectTimeout:GuzzleHttp\Handler\CurlMultiHandler:private] => 1 [active:GuzzleHttp\Handler\CurlMultiHandler:private] => 0 [handles:GuzzleHttp\Handler\CurlMultiHandler:private] => Array ( ) [delays:GuzzleHttp\Handler\CurlMultiHandler:private] => Array ( ) [options:GuzzleHttp\Handler\CurlMultiHandler:private] => Array ( ) ) [sync] => GuzzleHttp\Handler\CurlHandler Object ( [factory:GuzzleHttp\Handler\CurlHandler:private] => GuzzleHttp\Handler\CurlFactory Object ( [handles:GuzzleHttp\Handler\CurlFactory:private] => Array ( [0] => CurlHandle Object ( ) ) [maxHandles:GuzzleHttp\Handler\CurlFactory:private] => 3 ) ) ) [parameter] => Array ( [$request] => <required> [$options] => <required> ) ) [streaming] => GuzzleHttp\Handler\StreamHandler Object ( [lastHeaders:GuzzleHttp\Handler\StreamHandler:private] => Array ( ) ) ) [parameter] => Array ( [$request] => <required> [$options] => <required> ) ) ) ) [parameter] => Array ( [$request] => <required> [$options] => <required> ) ) ) [bodySummarizer] => ) [parameter] => Array ( [$request] => <required> [$options] => <required> ) ) ) [allow_redirects] => Array ( [max] => 5 [protocols] => Array ( [0] => http [1] => https ) [strict] => [referer] => [track_redirects] => ) [decode_content] => 1 [cookies] => [idn_conversion] => [headers] => Array ( [User-Agent] => GuzzleHttp/7 ) ) ) [client_id:PaymentPlugins\PayPalSDK\Client\BaseHttpClient:private] => AbHXf8uh0pLoyAx21J1ezHa08DnpIjEdAHj943KCweQZvFwBWE-IJjz5zbSTHP-brHouV1C158ApMfiI [secret_key:PaymentPlugins\PayPalSDK\Client\BaseHttpClient:private] => EG1O1Zu8h29DbDUPxeieiu3smzL1rvszO3PbhbdQOrwwoxwFAtx_jmtk10bTfZYHp8rLttRNxFgkcAvz [environment:protected] => production [access_token:PaymentPlugins\PayPalSDK\Client\BaseHttpClient:private] => A21AANCJmzAridyP7Bm5O-4XeWeJQXw93vjtHy88dGH1Cdpd1rs0j6r9E2mIbbaxqxjpRuj1MSv084XlgFBc59hhaC1U4SIEA [tokenHandler:PaymentPlugins\PayPalSDK\Client\BaseHttpClient:private] => Array ( [0] => PaymentPlugins\WooCommerce\PPCP\WPPayPalClient Object *RECURSION* [1] => refreshAccessToken ) [merchantId:PaymentPlugins\PayPalSDK\Client\BaseHttpClient:private] => [serviceFactory:PaymentPlugins\PayPalSDK\PayPalClient:private] => PaymentPlugins\PayPalSDK\Service\BaseServiceFactory Object ( [instances:protected] => Array ( [orders] => PaymentPlugins\PayPalSDK\Service\OrderService Object ( [path:protected] => v2/checkout [client:PaymentPlugins\PayPalSDK\Service\BaseService:private] => PaymentPlugins\WooCommerce\PPCP\WPPayPalClient Object *RECURSION* ) ) [client:PaymentPlugins\PayPalSDK\Service\AbstractServiceFactory:private] => PaymentPlugins\WooCommerce\PPCP\WPPayPalClient Object *RECURSION* [classmap:PaymentPlugins\PayPalSDK\Service\BaseServiceFactory:private] => Array ( [orders] => PaymentPlugins\PayPalSDK\Service\OrderService [auth] => PaymentPlugins\PayPalSDK\Service\OAuthTokenService [partner] => PaymentPlugins\PayPalSDK\Service\PartnerService [captures] => PaymentPlugins\PayPalSDK\Service\PaymentCaptureService [authorizations] => PaymentPlugins\PayPalSDK\Service\PaymentAuthorizationService [billingAgreements] => PaymentPlugins\PayPalSDK\Service\BillingAgreementService [billingAgreementTokens] => PaymentPlugins\PayPalSDK\Service\BillingAgreementTokenService [webhooks] => PaymentPlugins\PayPalSDK\Service\WebhookService [paymentTokens] => PaymentPlugins\PayPalSDK\Service\PaymentTokenService ) ) [api_settings:PaymentPlugins\WooCommerce\PPCP\WPPayPalClient:private] => PaymentPlugins\WooCommerce\PPCP\Admin\Settings\APISettings Object ( [plugin_id] => woocommerce_ [id] => ppcp_api [errors] => Array ( ) [settings] => Array ( [title] => [title_description] => [environment] => production [connect_sandbox] => [connect_production] => [create_webhook_sandbox] => [create_webhook_production] => [debug] => yes [connect_params_sandbox] => Array ( [sellar_nonce] => ZUxMOkprnDy09myhcyzrk4P87rrxRIo4udnoQSgeZxEyFclrvpkYIwuqacaAEbyr [merchantId] => WLP7XYF8ZJEZW [trackingId] => WuqEhRqdkD6gKlvTjdnmmgxJsblt0lEj ) [client_id_sandbox] => AfJx3gdq2tHss9HjcpJn-cLLI2H8F-iGV3nrZY_aC6_r1pOkWT1rxWmQbYf-8XgUUZCtfGFLaZPuzjBp [secret_key_sandbox] => EH_nF9MHU0rilMjj9kF5CQDul_04dlMxjt4KIrDMmxaTeUrEFJFtrLPvg_Johlpcsmr5-TWmKRBx-6F3 [access_token_sandbox] => A21AALirJlylPGEN2i4Jqnk8HACc6XZ1c_vMwRN0IO3cm5HBbNIlcpwDj6kFU5M_FWo6N3ikKw14gugO_SBJRbztVBgQfKR1w [webhook_url_sandbox] => [webhook_id_sandbox] => [merchant_id_production] => E2QFC3YN65592 [client_id_production] => AbHXf8uh0pLoyAx21J1ezHa08DnpIjEdAHj943KCweQZvFwBWE-IJjz5zbSTHP-brHouV1C158ApMfiI [secret_key_production] => EG1O1Zu8h29DbDUPxeieiu3smzL1rvszO3PbhbdQOrwwoxwFAtx_jmtk10bTfZYHp8rLttRNxFgkcAvz [access_token_production] => A21AANCJmzAridyP7Bm5O-4XeWeJQXw93vjtHy88dGH1Cdpd1rs0j6r9E2mIbbaxqxjpRuj1MSv084XlgFBc59hhaC1U4SIEA [webhook_url_production] => [webhook_id_production] => 6HX74495AR589890G ) [form_fields] => Array ( [title] => Array ( [type] => title [title] => API Settings ) [title_description] => Array ( [type] => paypal_description [description] => ) [environment] => Array ( [type] => select [title] => Environment [class] => wc-enhanced-select [default] => production [options] => Array ( [sandbox] => sandbox [production] => production ) [desc_tip] => 1 [description] => This option determines whether you are processing real transactions or test transactions. ) [connect_sandbox] => Array ( [title] => Connect to PayPal [type] => paypal_button [class] => button-secondary delete-connected-account [label] => Delete Connection [description] => <label class="wc-ppcp-connect__status show_if_sandbox hide_if_production">Status: <span>Connected</span><span class="dashicons dashicons-yes"></span></label> [environment] => sandbox [custom_attributes] => Array ( [data-show-if] => environment=sandbox ) ) [connect_production] => Array ( [title] => Connect to PayPal [type] => paypal_button [class] => button-secondary delete-connected-account [label] => Delete Connection [description] => <label class="wc-ppcp-connect__status show_if_production hide_if_sandbox">Status: <span>Connected</span><span class="dashicons dashicons-yes"></span></label> [environment] => production [custom_attributes] => Array ( [data-show-if] => environment=production ) ) [create_webhook_sandbox] => Array ( [title] => Create Webhook [type] => webhook_button [class] => button-secondary create-webhook [label] => Create Webhook [description] => [custom_attributes] => Array ( [data-show-if] => environment=sandbox ) ) [create_webhook_production] => Array ( [title] => Create Webhook [type] => webhook_button [class] => button-secondary create-webhook [label] => Create Webhook [description] => <label class="wc-ppcp-connect__status">Status: <span>Created</span><span class="dashicons dashicons-yes"></span></label> [custom_attributes] => Array ( [data-show-if] => environment=production ) ) [client_id_sandbox] => Array ( [title] => Sandbox Client ID [type] => text [default] => [custom_attributes] => Array ( [data-show-if] => environment=sandbox ) [desc_tip] => 1 [description] => The Client ID is how PayPal identifies your account. ) [secret_key_sandbox] => Array ( [title] => Sandbox Secret Key [type] => password [default] => [custom_attributes] => Array ( [data-show-if] => environment=sandbox ) [desc_tip] => 1 [description] => The secret key is how PayPal authenticates your account. ) [client_id_production] => Array ( [title] => Production Client ID [type] => text [default] => [custom_attributes] => Array ( [data-show-if] => environment=production ) [desc_tip] => 1 [description] => The Client ID is how PayPal identifies your account. ) [secret_key_production] => Array ( [title] => Production Secret Key [type] => password [default] => [custom_attributes] => Array ( [data-show-if] => environment=production ) [desc_tip] => 1 [description] => The secret key is how PayPal authenticates your account. ) [webhook_url_sandbox] => Array ( [title] => Webhook URL [type] => clipboard [default] => https://sundimmer.com/wp-json/wc-ppcp/v1/webhook/sandbox [custom_attributes] => Array ( [data-show-if] => environment=sandbox ) ) [webhook_id_sandbox] => Array ( [title] => Sandbox Webhook ID [type] => text [default] => [custom_attributes] => Array ( [data-show-if] => environment=sandbox ) [desc_tip] => 1 [description] => The webhook ID represents the configured webhook in your PayPal account. If the plugin is unable to create the webhook automatically, you can manually create it and enter the ID here. ) [webhook_url_production] => Array ( [title] => Webhook URL [type] => clipboard [default] => https://sundimmer.com/wp-json/wc-ppcp/v1/webhook/production [custom_attributes] => Array ( [data-show-if] => environment=production ) ) [webhook_id_production] => Array ( [title] => Production Webhook ID [type] => text [default] => [custom_attributes] => Array ( [data-show-if] => environment=production ) [desc_tip] => 1 [description] => The webhook ID represents the configured webhook in your PayPal account. If the plugin is unable to create the webhook automatically, you can manually create it and enter the ID here. ) [debug] => Array ( [title] => Debug Enabled [type] => checkbox [default] => yes [value] => yes [desc_tip] => 1 [description] => When enabled, valuable debugging information will be captured and stored in the WooCommerce logs. ) ) [data:protected] => Array ( ) [assets] => PaymentPlugins\WooCommerce\PPCP\Assets\AssetsApi Object ( [config] => PaymentPlugins\WooCommerce\PPCP\Config Object ( [version:PaymentPlugins\WooCommerce\PPCP\Config:private] => 1.0.19 [plugin_path:PaymentPlugins\WooCommerce\PPCP\Config:private] => /var/www/webroot/ROOT/wp-content/plugins/pymntpl-paypal-woocommerce [url:PaymentPlugins\WooCommerce\PPCP\Config:private] => https://sundimmer.com/wp-content/plugins/pymntpl-paypal-woocommerce/ ) ) [logger:protected] => PaymentPlugins\WooCommerce\PPCP\Logger Object ( [log:PaymentPlugins\WooCommerce\PPCP\Logger:private] => WC_Logger Object ( [handlers:protected] => Array ( [0] => WC_Log_Handler_File Object ( [handles:protected] => Array ( [wc-ppcp] => Resource id #1098 ) [log_size_limit:protected] => 5242880 [cached_logs:protected] => Array ( ) ) ) [threshold:protected] => ) [source:PaymentPlugins\WooCommerce\PPCP\Logger:private] => wc-ppcp ) [tab_label:protected] => API Settings [tab_label_priority:protected] => 10 ) [connect_service:PaymentPlugins\WooCommerce\PPCP\WPPayPalClient:private] => PaymentPlugins\WooCommerce\PPCP\ConnectService Object ( [path:protected] => v1 [client:PaymentPlugins\PayPalSDK\Service\BaseService:private] => PaymentPlugins\WooCommerce\PPCP\WPPayPalClient Object *RECURSION* ) [current_service:PaymentPlugins\WooCommerce\PPCP\WPPayPalClient:private] => orders [logger:PaymentPlugins\WooCommerce\PPCP\WPPayPalClient:private] => PaymentPlugins\WooCommerce\PPCP\Logger Object ( [log:PaymentPlugins\WooCommerce\PPCP\Logger:private] => WC_Logger Object ( [handlers:protected] => Array ( [0] => WC_Log_Handler_File Object ( [handles:protected] => Array ( [wc-ppcp] => Resource id #1098 ) [log_size_limit:protected] => 5242880 [cached_logs:protected] => Array ( ) ) ) [threshold:protected] => ) [source:PaymentPlugins\WooCommerce\PPCP\Logger:private] => wc-ppcp ) [partner_id:PaymentPlugins\WooCommerce\PPCP\WPPayPalClient:private] => PaymentPlugins_PCP ) [factories:PaymentPlugins\WooCommerce\PPCP\PaymentHandler:private] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object ( [factories:protected] => Array ( [order] => PaymentPlugins\WooCommerce\PPCP\Factories\OrderFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => ) [breakdown] => PaymentPlugins\WooCommerce\PPCP\Factories\BreakdownFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => ) [payer] => PaymentPlugins\WooCommerce\PPCP\Factories\PayerFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => ) [address] => PaymentPlugins\WooCommerce\PPCP\Factories\AddressFactroy Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => [lengths:PaymentPlugins\WooCommerce\PPCP\Factories\AddressFactroy:private] => Array ( [address_line_1] => 300 [address_line_2] => 300 [admin_area_1] => 300 [admin_area_2] => 120 [postal_code] => 60 ) ) [shipping] => PaymentPlugins\WooCommerce\PPCP\Factories\ShippingFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => ) [shippingOptions] => PaymentPlugins\WooCommerce\PPCP\Factories\ShippingOptionsFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => ) [items] => PaymentPlugins\WooCommerce\PPCP\Factories\ItemsFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => ) [applicationContext] => PaymentPlugins\WooCommerce\PPCP\Factories\ApplicationContextFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => [settings:PaymentPlugins\WooCommerce\PPCP\Factories\ApplicationContextFactory:private] => PaymentPlugins\WooCommerce\PPCP\Admin\Settings\AdvancedSettings Object ( [plugin_id] => woocommerce_ [id] => ppcp_advanced [errors] => Array ( ) [settings] => Array ( [title] => [display_name] => sundimmer [order_prefix] => [locale] => auto [refund_cancel] => no [capture_status] => manual [cart_location] => below [minicart_location] => below [stripe_express] => [capture_on_complete] => ) [form_fields] => Array ( [title] => Array ( [type] => title [title] => Advanced Settings ) [display_name] => Array ( [title] => Display Name [type] => text [default] => sundimmer [desc_tip] => 1 [description] => This is the business name that is displayed in the PayPal popup. ) [order_prefix] => Array ( [title] => Order Prefix [type] => text [default] => [desc_tip] => 1 [description] => If you're using the same PayPal account on multiple sites we recommend adding an order prefix to prevent invoice duplicates in PayPal. ) [locale] => Array ( [title] => Locale Setting [type] => select [default] => auto [options] => Array ( [auto] => Auto [site] => Site language ) [desc_tip] => 1 [description] => If set to auto, PayPal will determine the language to render the PayPal buttons in based on the customer's IP address and browser settings. If set to site, the plugin will use the WordPress site locale setting. ) [refund_cancel] => Array ( [title] => Refund On Cancel [type] => checkbox [default] => no [value] => yes [desc_tip] => 1 [description] => If enabled, the plugin will process a payment cancellation or refund within PayPal when the order's status is set to cancelled. ) [capture_status] => Array ( [title] => Capture Status [type] => select [default] => completed [options] => Array ( [completed] => Completed [processing] => Processing [manual] => Manual ) [desc_tip] => 1 [description] => For orders that are authorized, when the order is set to this status, it will trigger a capture. When set to manual, the payment must be manually captured. ) [cart_location] => Array ( [title] => Cart Button Location [type] => select [default] => below [options] => Array ( [below] => Below checkout button [above] => Above checkout button ) [desc_tip] => 1 [description] => The location of the payment buttons in relation to the Proceed to checkout button. ) [minicart_location] => Array ( [title] => Mini-Cart Button Location [type] => select [default] => below [options] => Array ( [below] => Below checkout button [above] => Above checkout button ) [desc_tip] => 1 [description] => The location of the payment buttons in relation to the mini-cart checkout button. ) ) [data:protected] => Array ( ) [assets] => PaymentPlugins\WooCommerce\PPCP\Assets\AssetsApi Object ( [config] => PaymentPlugins\WooCommerce\PPCP\Config Object ( [version:PaymentPlugins\WooCommerce\PPCP\Config:private] => 1.0.19 [plugin_path:PaymentPlugins\WooCommerce\PPCP\Config:private] => /var/www/webroot/ROOT/wp-content/plugins/pymntpl-paypal-woocommerce [url:PaymentPlugins\WooCommerce\PPCP\Config:private] => https://sundimmer.com/wp-content/plugins/pymntpl-paypal-woocommerce/ ) ) [logger:protected] => PaymentPlugins\WooCommerce\PPCP\Logger Object ( [log:PaymentPlugins\WooCommerce\PPCP\Logger:private] => WC_Logger Object ( [handlers:protected] => Array ( [0] => WC_Log_Handler_File Object ( [handles:protected] => Array ( [wc-ppcp] => Resource id #1098 ) [log_size_limit:protected] => 5242880 [cached_logs:protected] => Array ( ) ) ) [threshold:protected] => ) [source:PaymentPlugins\WooCommerce\PPCP\Logger:private] => wc-ppcp ) [tab_label:protected] => Advanced Settings [tab_label_priority:protected] => 20 ) ) [purchaseUnit] => PaymentPlugins\WooCommerce\PPCP\Factories\PurchaseUnitFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => [settings:PaymentPlugins\WooCommerce\PPCP\Factories\PurchaseUnitFactory:private] => PaymentPlugins\WooCommerce\PPCP\Admin\Settings\AdvancedSettings Object ( [plugin_id] => woocommerce_ [id] => ppcp_advanced [errors] => Array ( ) [settings] => Array ( [title] => [display_name] => sundimmer [order_prefix] => [locale] => auto [refund_cancel] => no [capture_status] => manual [cart_location] => below [minicart_location] => below [stripe_express] => [capture_on_complete] => ) [form_fields] => Array ( [title] => Array ( [type] => title [title] => Advanced Settings ) [display_name] => Array ( [title] => Display Name [type] => text [default] => sundimmer [desc_tip] => 1 [description] => This is the business name that is displayed in the PayPal popup. ) [order_prefix] => Array ( [title] => Order Prefix [type] => text [default] => [desc_tip] => 1 [description] => If you're using the same PayPal account on multiple sites we recommend adding an order prefix to prevent invoice duplicates in PayPal. ) [locale] => Array ( [title] => Locale Setting [type] => select [default] => auto [options] => Array ( [auto] => Auto [site] => Site language ) [desc_tip] => 1 [description] => If set to auto, PayPal will determine the language to render the PayPal buttons in based on the customer's IP address and browser settings. If set to site, the plugin will use the WordPress site locale setting. ) [refund_cancel] => Array ( [title] => Refund On Cancel [type] => checkbox [default] => no [value] => yes [desc_tip] => 1 [description] => If enabled, the plugin will process a payment cancellation or refund within PayPal when the order's status is set to cancelled. ) [capture_status] => Array ( [title] => Capture Status [type] => select [default] => completed [options] => Array ( [completed] => Completed [processing] => Processing [manual] => Manual ) [desc_tip] => 1 [description] => For orders that are authorized, when the order is set to this status, it will trigger a capture. When set to manual, the payment must be manually captured. ) [cart_location] => Array ( [title] => Cart Button Location [type] => select [default] => below [options] => Array ( [below] => Below checkout button [above] => Above checkout button ) [desc_tip] => 1 [description] => The location of the payment buttons in relation to the Proceed to checkout button. ) [minicart_location] => Array ( [title] => Mini-Cart Button Location [type] => select [default] => below [options] => Array ( [below] => Below checkout button [above] => Above checkout button ) [desc_tip] => 1 [description] => The location of the payment buttons in relation to the mini-cart checkout button. ) ) [data:protected] => Array ( ) [assets] => PaymentPlugins\WooCommerce\PPCP\Assets\AssetsApi Object ( [config] => PaymentPlugins\WooCommerce\PPCP\Config Object ( [version:PaymentPlugins\WooCommerce\PPCP\Config:private] => 1.0.19 [plugin_path:PaymentPlugins\WooCommerce\PPCP\Config:private] => /var/www/webroot/ROOT/wp-content/plugins/pymntpl-paypal-woocommerce [url:PaymentPlugins\WooCommerce\PPCP\Config:private] => https://sundimmer.com/wp-content/plugins/pymntpl-paypal-woocommerce/ ) ) [logger:protected] => PaymentPlugins\WooCommerce\PPCP\Logger Object ( [log:PaymentPlugins\WooCommerce\PPCP\Logger:private] => WC_Logger Object ( [handlers:protected] => Array ( [0] => WC_Log_Handler_File Object ( [handles:protected] => Array ( [wc-ppcp] => Resource id #1098 ) [log_size_limit:protected] => 5242880 [cached_logs:protected] => Array ( ) ) ) [threshold:protected] => ) [source:PaymentPlugins\WooCommerce\PPCP\Logger:private] => wc-ppcp ) [tab_label:protected] => Advanced Settings [tab_label_priority:protected] => 20 ) ) [name] => PaymentPlugins\WooCommerce\PPCP\Factories\NameFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => ) [paymentSource] => PaymentPlugins\WooCommerce\PPCP\Factories\PaymentSourceFactory Object ( [factories:protected] => PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories Object *RECURSION* [cart:protected] => [customer:protected] => [order:protected] => [currency:protected] => ) ) [cart:PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories:private] => [customer:PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories:private] => [order:PaymentPlugins\WooCommerce\PPCP\Factories\CoreFactories:private] => Automattic\WooCommerce\Admin\Overrides\Order Object ( [id:protected] => 8877 [data:protected] => Array ( [parent_id] => 0 [status] => pending [currency] => EUR [version] => 7.3.0 [prices_include_tax] => 1 [date_created] => WC_DateTime Object ( [utc_offset:protected] => 3600 [date] => 2023-01-18 13:20:15.000000 [timezone_type] => 1 [timezone] => +00:00 ) [date_modified] => WC_DateTime Object ( [utc_offset:protected] => 3600 [date] => 2023-01-18 13:20:15.000000 [timezone_type] => 1 [timezone] => +00:00 ) [discount_total] => 68.067227 [discount_tax] => 12.932773 [shipping_total] => 0 [shipping_tax] => 0 [cart_tax] => 73 [total] => 457 [total_tax] => 73 [customer_id] => 0 [order_key] => wc_order_Ace8fFs8o6Jmp [billing] => Array ( [first_name] => *** [last_name] => *** [company] => [address_1] => *** [address_2] => [city] => *** [state] => [postcode] => *** [country] => DE [email] => *** [phone] => *** ) [shipping] => Array ( [first_name] => *** [last_name] => *** [company] => [address_1] => *** [address_2] => [city] => *** [state] => [postcode] => *** [country] => DE [phone] => ) [payment_method] => ppcp [payment_method_title] => Paypal [transaction_id] => [customer_ip_address] => 188.194.205.186 [customer_user_agent] => Mozilla/5.0 (Linux; Android 11; J9210) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Mobile Safari/537.36 [created_via] => checkout [customer_note] => [date_completed] => [date_paid] => [cart_hash] => 527fd7e47f398de98478da3e47f648f2 [order_stock_reduced] => [download_permissions_granted] => [new_order_email_sent] => [recorded_sales] => [recorded_coupon_usage_counts] => ) [changes:protected] => Array ( ) [object_read:protected] => 1 [object_type:protected] => order [extra_data:protected] => Array ( ) [default_data:protected] => Array ( [parent_id] => 0 [status] => [currency] => [version] => [prices_include_tax] => [date_created] => [date_modified] => [discount_total] => 0 [discount_tax] => 0 [shipping_total] => 0 [shipping_tax] => 0 [cart_tax] => 0 [total] => 0 [total_tax] => 0 [customer_id] => 0 [order_key] => [billing] => Array ( [first_name] => [last_name] => [company] => [address_1] => [address_2] => [city] => [state] => [postcode] => [country] => [email] => [phone] => ) [shipping] => Array ( [first_name] => [last_name] => [company] => [address_1] => [address_2] => [city] => [state] => [postcode] => [country] => [phone] => ) [payment_method] => [payment_method_title] => [transaction_id] => [customer_ip_address] => [customer_user_agent] => [created_via] => [customer_note] => [date_completed] => [date_paid] => [cart_hash] => [order_stock_reduced] => [download_permissions_granted] => [new_order_email_sent] => [recorded_sales] => [recorded_coupon_usage_counts] => ) [data_store:protected] => WC_Data_Store Object ( [instance:WC_Data_Store:private] => WC_Order_Data_Store_CPT Object ( [meta_type:protected] => post [object_id_field_for_meta:protected] => [internal_meta_keys:protected] => Array ( [0] => _parent_id [1] => _status [2] => _currency [3] => _version [4] => _prices_include_tax [5] => _date_created [6] => _date_modified [7] => _discount_total [8] => _discount_tax [9] => _shipping_total [10] => _shipping_tax [11] => _cart_tax [12] => _total [13] => _total_tax [14] => _customer_id [15] => _order_key [16] => _billing [17] => _shipping [18] => _payment_method [19] => _payment_method_title [20] => _transaction_id [21] => _customer_ip_address [22] => _customer_user_agent [23] => _created_via [24] => _customer_note [25] => _date_completed [26] => _date_paid [27] => _cart_hash [28] => _order_stock_reduced [29] => _download_permissions_granted [30] => _new_order_email_sent [31] => _recorded_sales [32] => _recorded_coupon_usage_counts [33] => _customer_user [34] => _order_key [35] => _order_currency [36] => _billing_first_name [37] => _billing_last_name [38] => _billing_company [39] => _billing_address_1 [40] => _billing_address_2 [41] => _billing_city [42] => _billing_state [43] => _billing_postcode [44] => _billing_country [45] => _billing_email [46] => _billing_phone [47] => _shipping_first_name [48] => _shipping_last_name [49] => _shipping_company [50] => _shipping_address_1 [51] => _shipping_address_2 [52] => _shipping_city [53] => _shipping_state [54] => _shipping_postcode [55] => _shipping_country [56] => _shipping_phone [57] => _completed_date [58] => _paid_date [59] => _edit_lock [60] => _edit_last [61] => _cart_discount [62] => _cart_discount_tax [63] => _order_shipping [64] => _order_shipping_tax [65] => _order_tax [66] => _order_total [67] => _payment_method [68] => _payment_method_title [69] => _transaction_id [70] => _customer_ip_address [71] => _customer_user_agent [72] => _created_via [73] => _order_version [74] => _prices_include_tax [75] => _date_completed [76] => _date_paid [77] => _payment_tokens [78] => _billing_address_index [79] => _shipping_address_index [80] => _recorded_sales [81] => _recorded_coupon_usage_counts [82] => _download_permissions_granted [83] => _order_stock_reduced [84] => _new_order_email_sent ) [must_exist_meta_keys:protected] => Array ( ) [internal_data_store_key_getters:protected] => Array ( [_download_permissions_granted] => download_permissions_granted [_recorded_sales] => recorded_sales [_recorded_coupon_usage_counts] => recorded_coupon_usage_counts [_order_stock_reduced] => order_stock_reduced [_new_order_email_sent] => new_order_email_sent ) ) [stores:WC_Data_Store:private] => Array ( [coupon] => WC_Coupon_Data_Store_CPT [customer] => WC_Customer_Data_Store [customer-download] => WC_Customer_Download_Data_Store [customer-download-log] => WC_Customer_Download_Log_Data_Store [customer-session] => WC_Customer_Data_Store_Session [order] => WC_Order_Data_Store_CPT [order-refund] => WC_Order_Refund_Data_Store_CPT [order-item] => WC_Order_Item_Data_Store [order-item-coupon] => WC_Order_Item_Coupon_Data_Store [order-item-fee] => WC_Order_Item_Fee_Data_Store [order-item-product] => WC_Order_Item_Product_Data_Store [order-item-shipping] => WC_Order_Item_Shipping_Data_Store [order-item-tax] => WC_Order_Item_Tax_Data_Store [payment-token] => WC_Payment_Token_Data_Store [product] => WC_Product_Data_Store_CPT [product-grouped] => WC_Product_Grouped_Data_Store_CPT [product-variable] => WC_Product_Variable_Data_Store_CPT [product-variation] => WC_Product_Variation_Data_Store_CPT [shipping-zone] => WC_Shipping_Zone_Data_Store [webhook] => WC_Webhook_Data_Store [report-revenue-stats] => Automattic\WooCommerce\Admin\API\Reports\Orders\Stats\DataStore [report-orders] => Automattic\WooCommerce\Admin\API\Reports\Orders\DataStore [report-orders-stats] => Automattic\WooCommerce\Admin\API\Reports\Orders\Stats\DataStore [report-products] => Automattic\WooCommerce\Admin\API\Reports\Products\DataStore [report-variations] => Automattic\WooCommerce\Admin\API\Reports\Variations\DataStore [report-products-stats] => Automattic\WooCommerce\Admin\API\Reports\Products\Stats\DataStore [report-variations-stats] => Automattic\WooCommerce\Admin\API\Reports\Variations\Stats\DataStore [report-categories] => Automattic\WooCommerce\Admin\API\Reports\Categories\DataStore [report-taxes] => Automattic\WooCommerce\Admin\API\Reports\Taxes\DataStore [report-taxes-stats] => Automattic\WooCommerce\Admin\API\Reports\Taxes\Stats\DataStore [report-coupons] => Automattic\WooCommerce\Admin\API\Reports\Coupons\DataStore [report-coupons-stats] => Automattic\WooCommerce\Admin\API\Reports\Coupons\Stats\DataStore [report-downloads] => Automattic\WooCommerce\Admin\API\Reports\Downloads\DataStore [report-downloads-stats] => Automattic\WooCommerce\Admin\API\Reports\Downloads\Stats\DataStore [admin-note] => Automattic\WooCommerce\Admin\Notes\DataStore [report-customers] => Automattic\WooCommerce\Admin\API\Reports\Customers\DataStore [report-customers-stats] => Automattic\WooCommerce\Admin\API\Reports\Customers\Stats\DataStore [report-stock-stats] => Automattic\WooCommerce\Admin\API\Reports\Stock\Stats\DataStore ) [current_class_name:WC_Data_Store:private] => WC_Order_Data_Store_CPT [object_type:WC_Data_Store:private] => order ) [cache_group:protected] => orders [meta_data:protected] => Array ( [0] => WC_Meta_Data Object ( [current_data:protected] => Array ( [id] => 73394 [key] => is_vat_exempt [value] => no ) [data:protected] => Array ( [id] => 73394 [key] => is_vat_exempt [value] => no ) ) ) [legacy_datastore_props:protected] => Array ( [0] => _recorded_sales [1] => _recorded_coupon_usage_counts [2] => _download_permissions_granted [3] => _order_stock_reduced [4] => _new_order_email_sent ) [items:protected] => Array ( ) [items_to_delete:protected] => Array ( ) [data_store_name:protected] => order [status_transition:protected] => [refunded_line_items:protected] => [customer_id] => ) ) [payment_method:protected] => PaymentPlugins\WooCommerce\PPCP\Payments\Gateways\PayPalGateway Object *RECURSION* [current_status:PaymentPlugins\WooCommerce\PPCP\PaymentHandler:private] => payment [use_billing_agreement:PaymentPlugins\WooCommerce\PPCP\PaymentHandler:private] => ) [logger] => PaymentPlugins\WooCommerce\PPCP\Logger Object ( [log:PaymentPlugins\WooCommerce\PPCP\Logger:private] => WC_Logger Object ( [handlers:protected] => Array ( [0] => WC_Log_Handler_File Object ( [handles:protected] => Array ( [wc-ppcp] => Resource id #1098 ) [log_size_limit:protected] => 5242880 [cached_logs:protected] => Array ( ) ) ) [threshold:protected] => ) [source:PaymentPlugins\WooCommerce\PPCP\Logger:private] => wc-ppcp ) [assets] => PaymentPlugins\WooCommerce\PPCP\Assets\AssetsApi Object ( [config] => PaymentPlugins\WooCommerce\PPCP\Config Object ( [version:PaymentPlugins\WooCommerce\PPCP\Config:private] => 1.0.19 [plugin_path:PaymentPlugins\WooCommerce\PPCP\Config:private] => /var/www/webroot/ROOT/wp-content/plugins/pymntpl-paypal-woocommerce [url:PaymentPlugins\WooCommerce\PPCP\Config:private] => https://sundimmer.com/wp-content/plugins/pymntpl-paypal-woocommerce/ ) ) [template_loader] => PaymentPlugins\WooCommerce\PPCP\TemplateLoader Object ( [config:PaymentPlugins\WooCommerce\PPCP\TemplateLoader:private] => PaymentPlugins\WooCommerce\PPCP\Config Object ( [version:PaymentPlugins\WooCommerce\PPCP\Config:private] => 1.0.19 [plugin_path:PaymentPlugins\WooCommerce\PPCP\Config:private] => /var/www/webroot/ROOT/wp-content/plugins/pymntpl-paypal-woocommerce [url:PaymentPlugins\WooCommerce\PPCP\Config:private] => https://sundimmer.com/wp-content/plugins/pymntpl-paypal-woocommerce/ ) [template_path:PaymentPlugins\WooCommerce\PPCP\TemplateLoader:private] => pymntpl-paypal-woocommerce ) [integration_controller] => [template:protected] => paypal.php [token_class:protected] => PaymentPlugins\WooCommerce\PPCP\Tokens\PayPalToken [paypal_flow:protected] => [tab_label:protected] => PayPal Settings [tab_label_priority:protected] => 30 ) [paypal_order] => )
Hi @kovalchik8
It looks like you have provided the output of the WC_Order object. The paypal order ID is passed via the $_POST object when WooCommerce is processing the payment via the checkout page.
If you have a website url you can share where this can be replicated we’ll take a look.
Kind Regards,
Yes, this is the output of the order ($result in plugin code) but after filter wc_ppcp_process_payment_result is applied and right before following code where $result->get_error_message() returns empty string:
$result->set_error_message( sprintf( __( 'There was an error processing your payment. Reason: %s', 'pymntpl-paypal-woocommerce' ), $result->get_error_message() ) ); wc_add_notice( $result->get_error_message(), 'error' );
Here is site url, but it’s might be not easy to reproduce the issue.
Hi @kovalchik8
I see you hav a customized cart and checkout experience. Have you customized the PayPal plugin’s templates at all? The PayPal plugin inserts the PayPal order ID into the hidden field with
id="ppcp_paypal_order_id"
which I do see on your page.But are there instances where this field could be removed via an html update such that it doesn’t exist at the time PayPal tries to insert the order ID?
Kind Regards,
You were right, the issue is about missing ppcp_paypal_order_id value on $_POST array during checkout. This field is present as you know and the value is set correctly on PayPal popup callback, but it’s refreshed right before sending form with $(document.body).trigger(‘update_checkout’, {update_shipping_method: false}); This event triggers all the fragments to refresh with ajax call and new layout of payment methods is returned with empty order id input. So how to keep this value to be present after fragments refreshed?
Hi @kovalchik8
The internal WooCommerce code is designed to ensure all pre-existing values before the refresh are auto-populated after the fragment refresh.
To guard against any unaccounted for scenarios including 3rd party plugin manipulation, the latest version of the PayPal plugin (1.0.20) keeps an internal cache of the PayPal order ID and will use that if the
ppcp_paypal_order_id
is missing from the POST.Kind Regards,
- The topic ‘ERROR API error’ is closed to new replies.