/** * 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":7119,"date":"2025-07-26T00:26:13","date_gmt":"2025-07-26T00:26:13","guid":{"rendered":"https:\/\/hostamy.com\/?p=7119"},"modified":"2025-07-26T00:26:13","modified_gmt":"2025-07-26T00:26:13","slug":"no-down-payment-perk-casino-site-list-a-total-overview","status":"publish","type":"post","link":"https:\/\/hostamy.com\/en_gb\/no-down-payment-perk-casino-site-list-a-total-overview\/","title":{"rendered":"No Down Payment Perk Casino Site List: A Total Overview"},"content":{"rendered":"
When it involves on the internet casino sites, among one of the most enticing offers for players is the no deposit reward. This type of perk allows players to enjoy gambling enterprise video games without depositing any of their very own money. In this write-up, we will supply you with a thorough guide to the no down payment incentive casino listing, consisting of just how it works, what to search for, and the top online casinos supplying this exciting promotion.<\/p>\n
A no deposit reward is an advertising offer provided by on-line casino sites to bring in new gamers. It provides players the chance to try the online casino’s games without having to make a deposit. As the name suggests, no deposit is needed to claim this perk. It is normally credited to the player’s account as quickly as they join.<\/p>\n
No deposit perks can be found in numerous forms, such as complimentary spins, bonus offer credit histories, or totally free play time. The quantity and kind of bonus offer offered might vary from casino to online casino. This perk offers players an opportunity to experience the online casino and possibly win real money without taking the chance of any one of their very own funds.<\/p>\n
To assert a no down payment incentive, gamers require to adhere to a few simple steps:<\/p>\n
It is important to read and comprehend the conditions of the no deposit incentive before asserting it to ensure a smooth and satisfying pc gaming experience.<\/p>\n
With many on-line casinos providing no deposit incentives, it is important to select a trusted and credible online casino to ensure a fair and safe and secure video gaming experience. When searching for a no deposit benefit gambling enterprise, take into consideration the list below elements:<\/p>\n
By considering these elements, gamers can ensure they select a reliable casino site that provides a charitable and fair no down payment bonus.<\/p>\n
Here are a few of the top casino sites that offer exciting no deposit bonus offers:<\/p>\n
These are simply a couple of instances, and there are many various other reliable gambling enterprises providing eye-catching no deposit benefits. Gamers should explore the no down payment benefit online casino checklist to find the best deals that suit their choices.<\/p>\n
No down payment benefits offer an amazing possibility for gamers to experiment with on-line gambling enterprises and possibly win real money without risking any of their own funds. By recognizing exactly how these incentives work and considering crucial factors when selecting a casino site, gamers can take advantage plinkodineroreal-es top<\/a> of premierbet jetx<\/a> their no down payment benefit experience. Discover the no down payment reward gambling enterprise list to uncover the top online casinos offering this luring promotion and embark on a thrilling video gaming journey.<\/p>","protected":false},"excerpt":{"rendered":" When it involves on the internet casino sites, among one of the most enticing offers for players is the no deposit reward. This type of perk allows players to enjoy gambling enterprise video games without depositing any of their very own money. In this write-up, we will supply you with a thorough guide to 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-7119","post","type-post","status-publish","format-standard","hentry","category-uncategorized","pmpro-has-access"],"yoast_head":"\n