/** * 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); } Hostamy - strumenti per strutture a tema affitti brevi
Hai una domanda?
Messaggio inviato Chiudi

 SEI UN/A NUOVO/A ASPIRANTE HOST O GIà SEI ENTRATO IN QUESTO MONDO?

Qui di seguito tutti gli strumenti utili per gestire una casa vacanza o locazione turistica:

  • Contratto di affitto ad uso turistico (da far firmare ai tuoi ospiti prima dell’arrivo, ma potresti anche mandarlo prima tramite email o WhatsApp se lo scarichi come pdf) – QUI IL CONTRATTO
  • Ricevuta di affitto o ricevuta fiscale (compila sempre due copie, una da tenere per la dichiarazione annuale) – QUI I DOCUMENTI
  • Regole delle casa da mostrare agli ospiti o da mandare prima del loro arrivo – QUI LE REGOLE
  • Manuale della casa/libro degli ospiti/Welcome book, dove scrivi tutte le informazioni utili per il loro soggiorno. QUI IL MANUALE

Dai un occhio al nostro shop degli host, troverai tutto quello che ti serve!

Se sei nuovo e ancora hai dubbi su:

  • Cosa scegliere tra locazione turistica, B&B o casa vacanza.
  • Cosa fare se il turista si rifiuta a pagare la tassa turistica
  • Cos’è la tassa di soggiorno
  • Dubbi su alloggiati Web

Visita il nostro Blog, troverai tutte le risposte ai tuoi dubbi Ecco a te il link al Blog

I nostri servizi

SITO WEB PER LA TUA STRUTTURA

A partire da €109

Il sito adatto alle tue esigenze. Abbiamo tante soluzioni dal il “fai da te” con video istruzione al sito completo con pagina foto, struttura e prenota.

A te la scelta!

 

TARIFFE SITO

CREAZIONE ANNUNCIO

A PARTIRE DA €150

Creiamo per te i tuoi annunci sui vari portali OTA, includiamo nel prezzo anche la presenza della struttura nelle mappe Google.

Il prezzo varia dal numero di annunci/appartamenti/siti

 

CONTATTACI

CREAZIONE PAGINE SOCIAL (FACEBOOK, INSTAGRAM, GOOGLE MY BUSINESS ETC.)

A PARTIRE DA €100

Creiamo per te i tuoi canali social come Facebook, Instagram e presenza mappe Google.

Il prezzo varia dal numero di annunci/siti

 

CONTATTACI

CONSULENZA PRIVATA

30 MIN GRATIS

La prima consulenza la offriamo noi!

Analizzeremo cosa ti serve per migliorare la tua offerta od iniziare a diventare un host di successo

 

CONTATTACI

GESTIONE PAGINE SOCIAL ED ANNUNCI SULLE OTA

A PARTIRE DA €100

Gestiamo per te i tuoi canali social come Facebook, Instagram, presenza mappe Google ed i tuoi annunci sulle OTA.

Il prezzo varia dal numero di annunci/siti/posts

 

CONTATTACI

OTTIMIZZAZIONE ANNUNCI ESISTENTI

A PARTIRE DA €100

Ottimizziamo i tuoi annunci nei portali OTA esistenti.

Il prezzo varia dal numero di annunci/appartamenti/siti

 

CONTATTACI

DOCUMENTI DI LAVORO PER HOST

A PARTIRE DA €4

Il prezzo varia dai vari prodotti.
Gli strumenti degli host sono: Contratto di affitto ad uso turistico, regole della casa, libro di benvenuto, foglio di lavoro per trovare il prezzo ideale, Foglio di calcolo dell’utile netto, varie checklists per la casa e molto altro.

Incluso per ogni prodotto vi è un video tutorial per utilizzare al meglio i tuoi strumenti.

 

LINK AI DOCUMENTI

I nostri corsi

DESCRIZIONE DEL CORSO: In questo corso ci concentreremo sul come far vivere al tuo ospite un’esperienza memorabile, e pertanto far si che tu possa ...
10 Lezioni
DESCRIZIONE DEL CORSO: Questo corso è stato idealizzato con l’obiettivo di dare ai proprietari di casa vacanza, locazione turistica o gestore di Be...
Questo corso è pensato per tutti i proprietari di casa, e/o per chi ha una struttura sfitta che potrebbe essere adibita a struttura turistica extra...
28 Lezioni
Con 1,5 miliardi di utenti attivi al mese e 60 miliardi di messaggi scambiati al giorno, WhatsApp è senza dubbio diventato lo strumento di comunica...

SEGUICI SUI SOCIAL

INCOMINCIA ANCHE TU A FAR PARTE DEL GRUPPO PRONTO HOST ITALIA DI HOSTAMY ED INCOMINICIA AD AFFITTARE!

it_ITItalian
Select your currency
EUR Euro