/**
* 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);
}
Sichere Dosierungen für die Gesundheit: Ein Leitfaden - Hostamy - strumenti per strutture a tema affitti brevi
Die Frage nach sicheren Dosierungen ist ein zentrales Thema für die Gesundheit, insbesondere in der heutigen Zeit, in der viele Menschen zu Nahrungsergänzungsmitteln und Steroiden greifen. Eine falsche Dosierung kann schwerwiegende gesundheitliche Folgen nach sich ziehen, daher ist es entscheidend, gut informiert zu sein.
Die Frage, welche Dosierungen sicher für die Gesundheit sind, ist von großer Bedeutung, insbesondere wenn es um die Verwendung von Steroiden geht. Auf der Seite steroide apotheke finden Sie umfassende Informationen zu sicheren Dosierungen und deren Auswirkungen auf den Körper. Es ist wichtig, sich gut zu informieren und die empfohlenen Richtlinien zu befolgen, um gesundheitliche Risiken zu minimieren.
1. Bedeutung von Dosierungsrichtlinien
Die richtige Dosierung ist entscheidend, um die gewünschten Ergebnisse zu erzielen, ohne den Körper unnötig zu belasten. Die folgenden Punkte sollten beachtet werden:
Verstehen Sie die Wirkung des Mittels auf Ihren Körper.
Halten Sie sich an die empfohlenen Dosierungsanweisungen.
Sehen Sie von Selbstmedikation ab, ohne vorherige Rücksprache mit einem Arzt.
2. Faktoren, die die Dosierung beeinflussen
Die individuelle Reaktion auf Substanzen kann variieren. Hier sind einige Faktoren, die die sichere Dosierung beeinflussen:
Alter: Jüngere und ältere Menschen können unterschiedlich auf Dosierungen reagieren.
Körpergewicht: Das Körpergewicht spielt eine wesentliche Rolle hierbei.
Gesundheitszustand: Vorbestehende Krankheiten oder Allergien können die Sicherheit einer Dosierung beeinflussen.
3. Empfehlungen für den sicheren Umgang mit Steroiden
Wenn Sie Steroide verwenden möchten, sind hier einige Empfehlungen, um sicherzustellen, dass Sie dies verantwortungsvoll tun:
Informieren Sie sich umfassend über die entsprechenden Substanzen.
Arbeiten Sie mit einem qualifizierten Arzt zusammen, um die richtige Dosierung zu finden.
Überwachen Sie regelmäßig Ihre Gesundheit und mögliche Nebenwirkungen.
Die Wahl einer sicheren Dosierung ist essenziell für Ihre Gesundheit. Es ist ratsam, sich an Fachleute zu wenden und stets gut informiert zu sein, um die besten Entscheidungen für Ihr Wohlbefinden zu treffen.
Registrati
La password deve essere composta da almeno 8 caratteri, tra numeri e lettere, e contenere almeno 1 lettera maiuscola