/** * The API for operations with orders. * * @package WooCommerce\PayPalCommerce\Api * * @phpcs:disable Squiz.Commenting.FunctionCommentThrowTag */ declare (strict_types=1); namespace WooCommerce\PayPalCommerce\Api; use Exception; use InvalidArgumentException; use RuntimeException; use WC_Order; use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint; use WooCommerce\PayPalCommerce\ApiClient\Entity\Order; use WooCommerce\PayPalCommerce\PPCP; use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway; use WooCommerce\PayPalCommerce\WcGateway\Helper\RefundFeesUpdater; use WooCommerce\PayPalCommerce\WcGateway\Processor\AuthorizedPaymentsProcessor; use WooCommerce\PayPalCommerce\WcGateway\Processor\OrderProcessor; use WooCommerce\PayPalCommerce\WcGateway\Processor\RefundProcessor; /** * Returns the PayPal order. * * @param string|WC_Order $paypal_id_or_wc_order The ID of PayPal order or a WC order (with the ID in meta). * @throws InvalidArgumentException When the argument cannot be used for retrieving the order. * @throws Exception When the operation fails. */ function ppcp_get_paypal_order($paypal_id_or_wc_order): Order { if ($paypal_id_or_wc_order instanceof WC_Order) { $paypal_id_or_wc_order = $paypal_id_or_wc_order->get_meta(PayPalGateway::ORDER_ID_META_KEY); if (!$paypal_id_or_wc_order) { throw new InvalidArgumentException('PayPal order ID not found in meta.'); } } if (!is_string($paypal_id_or_wc_order)) { throw new InvalidArgumentException('Invalid PayPal order ID, string expected.'); } $order_endpoint = PPCP::container()->get('api.endpoint.order'); assert($order_endpoint instanceof OrderEndpoint); return $order_endpoint->order($paypal_id_or_wc_order); } /** * Creates a PayPal order for the given WC order. * * @param WC_Order $wc_order The WC order. * @throws Exception When the operation fails. */ function ppcp_create_paypal_order_for_wc_order(WC_Order $wc_order): Order { $order_processor = PPCP::container()->get('wcgateway.order-processor'); assert($order_processor instanceof OrderProcessor); return $order_processor->create_order($wc_order); } /** * Captures the PayPal order. * * @param WC_Order $wc_order The WC order. * @throws InvalidArgumentException When the order cannot be captured. * @throws Exception When the operation fails. */ function ppcp_capture_order(WC_Order $wc_order): void { $intent = strtoupper((string) $wc_order->get_meta(PayPalGateway::INTENT_META_KEY)); if ($intent !== 'AUTHORIZE') { throw new InvalidArgumentException('Only orders with "authorize" intent can be captured.'); } $captured = wc_string_to_bool($wc_order->get_meta(AuthorizedPaymentsProcessor::CAPTURED_META_KEY)); if ($captured) { throw new InvalidArgumentException('The order is already captured.'); } $authorized_payment_processor = PPCP::container()->get('wcgateway.processor.authorized-payments'); assert($authorized_payment_processor instanceof AuthorizedPaymentsProcessor); if (!$authorized_payment_processor->capture_authorized_payment($wc_order)) { throw new RuntimeException('Capture failed.'); } } /** * Reauthorizes the PayPal order. * * @param WC_Order $wc_order The WC order. * @throws InvalidArgumentException When the order cannot be captured. * @throws Exception When the operation fails. */ function ppcp_reauthorize_order(WC_Order $wc_order): void { $intent = strtoupper((string) $wc_order->get_meta(PayPalGateway::INTENT_META_KEY)); if ($intent !== 'AUTHORIZE') { throw new InvalidArgumentException('Only orders with "authorize" intent can be reauthorized.'); } $captured = wc_string_to_bool($wc_order->get_meta(AuthorizedPaymentsProcessor::CAPTURED_META_KEY)); if ($captured) { throw new InvalidArgumentException('The order is already captured.'); } $authorized_payment_processor = PPCP::container()->get('wcgateway.processor.authorized-payments'); assert($authorized_payment_processor instanceof AuthorizedPaymentsProcessor); if ($authorized_payment_processor->reauthorize_payment($wc_order) !== AuthorizedPaymentsProcessor::SUCCESSFUL) { throw new RuntimeException($authorized_payment_processor->reauthorization_failure_reason() ?: 'Reauthorization failed.'); } } /** * Refunds the PayPal order. * Note that you can use wc_refund_payment() to trigger the refund in WC and PayPal. * * @param WC_Order $wc_order The WC order. * @param float $amount The refund amount. * @param string $reason The reason for the refund. * @return string The PayPal refund ID. * @throws InvalidArgumentException When the order cannot be refunded. * @throws Exception When the operation fails. */ function ppcp_refund_order(WC_Order $wc_order, float $amount, string $reason = ''): string { $order = ppcp_get_paypal_order($wc_order); $refund_processor = PPCP::container()->get('wcgateway.processor.refunds'); assert($refund_processor instanceof RefundProcessor); return $refund_processor->refund($order, $wc_order, $amount, $reason); } /** * Voids the authorization. * * @param WC_Order $wc_order The WC order. * @throws InvalidArgumentException When the order cannot be voided. * @throws Exception When the operation fails. */ function ppcp_void_order(WC_Order $wc_order): void { $order = ppcp_get_paypal_order($wc_order); $refund_processor = PPCP::container()->get('wcgateway.processor.refunds'); assert($refund_processor instanceof RefundProcessor); $refund_processor->void($order); } /** * Updates the PayPal refund fees totals on an order. * * @param WC_Order $wc_order The WC order. */ function ppcp_update_order_refund_fees(WC_Order $wc_order): void { $updater = PPCP::container()->get('wcgateway.helper.refund-fees-updater'); assert($updater instanceof RefundFeesUpdater); $updater->update($wc_order); } {"id":7263,"date":"2025-08-03T12:52:44","date_gmt":"2025-08-03T12:52:44","guid":{"rendered":"https:\/\/hostamy.com\/?p=7263"},"modified":"2025-08-03T12:52:44","modified_gmt":"2025-08-03T12:52:44","slug":"online-gambling-enterprises-that-approve-neteller-a-comprehensive-overview","status":"publish","type":"post","link":"https:\/\/hostamy.com\/en_gb\/online-gambling-enterprises-that-approve-neteller-a-comprehensive-overview\/","title":{"rendered":"Online Gambling Enterprises That Approve Neteller: A Comprehensive Overview"},"content":{"rendered":"
Online gambling establishments have reinvented the gambling sector, offering gamers with an immersive and practical way to experience their preferred online casino games from the comfort of their own homes. One of one of the most popular repayment methods made use of at online casinos is Neteller. In this article, we will certainly discover the benefits of using Neteller at on-line casinos and offer a list of the most effective Neteller-friendly casinos readily available.<\/p>\n
Neteller is a commonly acknowledged e-wallet that enables users to make safe and secure on the internet purchases. Established in 1999, Neteller has actually obtained a solid reputation for its dependability, safety and security, and benefit. With numerous consumers worldwide, it has turned into one of one of the most relied on payment methods in the on-line gaming sector.<\/p>\n
Neteller offers customers a range of attributes that make it an outstanding choice for on-line gambling establishment purchases. These consist of instant down payments and withdrawals, high deal limitations, and affordable costs. Additionally, Neteller offers customers with a pre paid Mastercard, permitting them to access their funds at numerous ATMs and vendors worldwide.<\/p>\n
To utilize Neteller, you will certainly need to create an account and link it to your bank account or charge card. As soon as your account is established, you can easily fund your Neteller wallet and use it to make deposits and withdrawals at on the internet gambling enterprises that accept Neteller.<\/p>\n
When picking an on the internet casino site that approves Neteller, it is essential to consider aspects such as reputation, video game choice, bonus offers, and consumer support. To assist you make an informed decision, we have actually put together a list of the leading Neteller-friendly online casino sites:<\/p>\n
These online casinos have actually been very carefully chosen based upon their track record, game selection, generous benefits, and trustworthy client assistance. Each casino site provides a wide variety of games, including slots, table games, live supplier video games, and extra.<\/p>\n
If you prepare to make use of Neteller at on the internet gambling enterprises, below are some tips to guarantee a smooth and satisfying experience:<\/p>\n
Neteller uses a secure and hassle-free way to make down payments and withdrawals at online casinos. With its vast approval and easy to use features, it has actually become a preferred option amongst players worldwide. By picking among the leading Neteller-friendly online gambling establishments and following our pointers, you can take pleasure in a risk-free and satisfying gaming experience online.<\/p>\n
Keep in mind to bet sensibly and constantly focus on fun and enjoyment while playing casino site games.<\/p>","protected":false},"excerpt":{"rendered":"
Online gambling establishments have reinvented the gambling sector, offering gamers with an immersive and practical way to experience their preferred online casino games from the comfort of their own homes. One of one of the most popular repayment methods made use of at online casinos is Neteller. In this article, we will certainly discover the […]<\/p>","protected":false},"author":23,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pmpro_default_level":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-7263","post","type-post","status-publish","format-standard","hentry","category-uncategorized","pmpro-has-access"],"yoast_head":"\n