/** * 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); } Le migliori cassette per il self check in per case vacanze e locazioni turistiche - Hostamy - strumenti per strutture a tema affitti brevi
Have a question?
Message sent Close

Le migliori cassette per il self check in per case vacanze e locazioni turistiche

Le cassette di sicurezza per le chiavi sono fondamentali se doveste decidete di non effettuare di presenza il check in, vi sono diverse alternative utili per poter consentire l’accesso alla tua proprietà ai tuoi ospiti in tutta sicurezza (questa pratica è una delle più consigliate al momento post pandemia). Non dimenticate sempre l’invio dei documenti per l’alloggiati web!

I vari prodotti/servizi messi a disposizione per il self check in sono vari e la decisione d’acquisto può certamente dipendere dalla spese che volete affrontare e/o da dove si trova la vostra proprietà: se si tratta di un condominio o casa singola.

In questo articolo vi mostrerò un paio di essi e sarete voi a valutare l’opzione adatta alle vostre esigenze.

IL MASTER LOCK XL

Il Master lock è quello che utilizziamo più di tutte le cassette di sicurezza, specialmente a Londra.

Sono semplicissime da installare ed hanno un ottimo rapporto qualità/prezzo. Si possono acquistare facilemente su Amazon, quello che trovi in questo articolo è la versione più grande.

Fai attenzione perché ci sono tante versioni e anche se sembrano tutte uguali non è cosi (per dimensioni appunto)!.

Trovi le descrizioni al prodotto al link Amazon – >

IL MASTER LOCK BLUETOOTH

Il Master lock Bluetooth è per chi vuole gestire tutto tramite smartphone, quello che deve fare è scaricare l’app per Android o iPhone e iniziare i checkin in maniera automatica!

Trovi le descrizioni al prodotto al link Amazon – >

IL MASTER LOCK CON ARCO

Utilizzate quest’opzione se sapete che l’aria della vostra zona è sicura. È  un’opzione conveniente e la maggior parte dei negozi la vende, e potete tranquillamente acquistarla anche su Amazon,

Ottimo rapporto qualità/prezzo per chi non può mettere una cassetta fissa al muro!

Trovi le descrizioni al prodotto al link Amazon – >

IL MASTER LOCK CON ARCO

Utilizzate quest’opzione se sapete che l’aria della vostra zona è sicura. È  un’opzione conveniente e la maggior parte dei negozi la vende, e potete tranquillamente acquistarla anche su Amazon,

Ottimo rapporto qualità/prezzo per chi non può mettere una cassetta fissa al muro!

Trovi le descrizioni al prodotto al link Amazon – >

Tra i vari prodotti per il self check in noi utilizziamo per alcune proprietà gli Smart lock senza chiave: sono più costosi e richiedono l’installazione elettronica ma evitano le ansie e le preoccupazioni per chi pensa che non sia sicuro lasciare una cassetta delle chiavi fuori dalla proprietà.

I prezzi variano tantissimo in base al servizio che offrono e molti di essi richiedo anche un piano mensile, molti host li preferiscono per comodità ma soprattutto per sicurezza.

Tutto quello che devi fare è fornire agli ospiti il ​​codice.

Ricorda di modificare i codici dopo ogni soggiorno per proteggere la tua proprietà o comunque dopo un numero di check in!.

Tra i più famoso abbiamo:

YALE, SERRATURA CON CODICE

Ti da la libertà di non dover dare le chiavi ai tuoi ospiti. Facile accesso – codice PIN, key card, portachiavi/fob.

Trovi le descrizioni al prodotto al link Amazon – >

Una volta scelto il tipo di cassetta di sicurezza delle chiavi adatta alla vostra porta, (se decidete di fare il self check in, o dare il benvenuto di persona al tuo ospite), icordati di scrivere delle linee guida da includere nel messaggio che mandate al vostro ospite con le istruzioni per entrare nella tua proprietà.

Ciao e Buon Affitto!

en_GBEnglish
Select your currency
EUR eur