/** * 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":7369,"date":"2025-08-21T00:10:29","date_gmt":"2025-08-21T00:10:29","guid":{"rendered":"https:\/\/hostamy.com\/?p=7369"},"modified":"2025-08-21T00:10:29","modified_gmt":"2025-08-21T00:10:29","slug":"les-supplements-eca-biaxol-un-atout-pour-la-musculation","status":"publish","type":"post","link":"https:\/\/hostamy.com\/en_gb\/les-supplements-eca-biaxol-un-atout-pour-la-musculation\/","title":{"rendered":"Les Suppl\u00e9ments ECA Biaxol : Un Atout pour la Musculation"},"content":{"rendered":"
Dans le monde de la musculation, l’optimisation des performances et de la composition corporelle est primordiale. Parmi les nombreux suppl\u00e9ments disponibles sur le march\u00e9, ceux qui se distinguent par leur efficacit\u00e9 sont souvent les plus recherch\u00e9s. Les suppl\u00e9ments ECA Biaxol sont devenus une option pris\u00e9e par les sportifs d\u00e9sireux de maximiser leurs r\u00e9sultats.<\/p>\n
Les suppl\u00e9ments ECA Biaxol sont populaires parmi les amateurs de musculation pour leur efficacit\u00e9 \u00e0 am\u00e9liorer les performances et \u00e0 favoriser la perte de graisse. Pour plus d’informations et pour acheter ces suppl\u00e9ments, visitez la page achat ECA Biaxol Supplements en steroidemusculation.com<\/a>.<\/p>\n Le ECA Biaxol est un compl\u00e9ment alimentaire qui se compose principalement de trois ingr\u00e9dients principaux :<\/p>\n Les utilisateurs de suppl\u00e9ments ECA Biaxol rapportent plusieurs b\u00e9n\u00e9fices, notamment :<\/p>\n Il est essentiel de respecter les doses recommand\u00e9es pour \u00e9viter les effets secondaires potentiels. Avant de commencer un suppl\u00e9ment ECA Biaxol, il est conseill\u00e9 de consulter un professionnel de la sant\u00e9, surtout si vous avez des conditions m\u00e9dicales pr\u00e9existantes ou si vous prenez d’autres m\u00e9dicaments.<\/p>\n Les suppl\u00e9ments ECA Biaxol peuvent \u00eatre un excellent ajout \u00e0 votre routine de musculation, \u00e0 condition qu’ils soient utilis\u00e9s de mani\u00e8re responsable. Leur capacit\u00e9 \u00e0 am\u00e9liorer les performances et \u00e0 faciliter la perte de graisse en fait un choix judicieux pour les sportifs s\u00e9rieux.<\/p>\nQu’est-ce que le ECA Biaxol ?<\/h2>\n
\n
Les Avantages des Suppl\u00e9ments ECA Biaxol<\/h2>\n
\n
Utilisation et Pr\u00e9cautions<\/h2>\n
Conclusion<\/h2>\n