/** * 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":7147,"date":"2025-07-27T19:11:57","date_gmt":"2025-07-27T19:11:57","guid":{"rendered":"https:\/\/hostamy.com\/?p=7147"},"modified":"2025-07-27T19:11:57","modified_gmt":"2025-07-27T19:11:57","slug":"mobile-casino-slots-play-smart","status":"publish","type":"post","link":"https:\/\/hostamy.com\/en_gb\/mobile-casino-slots-play-smart\/","title":{"rendered":"Mobile Casino Slots Play Smart"},"content":{"rendered":"

Online slots are undoubtedly the best method to be a part of the casino. There are many players who get addicted to this casino game and will not stop playing it. To lure players back to the el dino apuestas<\/a> tables, you have to give them more bonus. Online casinos offer no-cost slots to their clients. This is an excellent option for those who want to play casino games without spending any money.<\/p>\n<\/p>\n

Online https:\/\/icecasinobelgium.top\/<\/a> slots require you to bet real money, not just playing money. To win at this game, you’ll need to be a sharp player. To beat the machine, you have to be aware of the strategy you should use. You should also be very cautious when choosing your computer slot machines. The Internet is loaded with scam sites where you can lose your hard-earned money instead of making it.<\/p>\n<\/p>\n

You will find many online casino slot machines that are suitable for gamers. However, you should be cautious when choosing your computer’s slot machines to play online. It is more beneficial to play slots on one category or website instead of playing on multiple websites. This will ensure that you play slot games from legit websites.<\/p>\n<\/p>\n

Online slots with stunning visuals as well as sound effects are very popular. Numerous websites offer online free slots. These slots for free usually have reels that are colored differently. The majority of these reels have different images or messages on them. When you click on the reel to spin, a variety of bright lights appear on the screen.<\/p>\n<\/p>\n

Find the reels and spins that appeal to you most. Some online casinos offer only one or two spins, while others offer hundreds of spins on every reel. The majority of mobile slots provide one spin for all of the reels. While this might sound boring, it’s actually quite fun. You don’t have to be bored and waiting for the next turn. You can then move to the next game.<\/p>\n<\/p>\n

The exact amount of bonus depends on the type of slot machine. There are a variety of slots, including real money slots, free slots, progressive slots bonus slots and combination slot machines. Free spin reels provide the option to spin more than a single line. These kinds of slots provide more chances to win , and you can expect to receive more bonus points.<\/p>\n<\/p>\n

Progressive slots have higher jackpots when you have a winning streak. You should try to try progressive slots during your gambling experience. Before you start playing slots online, it’s worthwhile to learn the basics. Free spin reels permit players to play with no sign-up or without installing any software. They are a great way to learn how to play at a casino without spending any money.<\/p>\n<\/p>\n

You’ll need to be familiar with the fundamental rules in order to avoid losing money, regardless of whether you are playing at the real or online casino. You can pick the gaming method that suits your preferences and comfort. Online casinos and mobile casinos are becoming increasingly popular because they are accessible from anywhere. Online casino software can provide all the information you require about bonus, free spins, and slot machines, even if you’re in a real casino. You can also access the internet to find out more about online casino gaming.<\/p>","protected":false},"excerpt":{"rendered":"

Online slots are undoubtedly the best method to be a part of the casino. There are many players who get addicted to this casino game and will not stop playing it. To lure players back to the el dino apuestas tables, you have to give them more bonus. Online casinos offer no-cost slots to their […]<\/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-7147","post","type-post","status-publish","format-standard","hentry","category-uncategorized","pmpro-has-access"],"yoast_head":"\nMobile Casino Slots Play Smart - Hostamy - strumenti per strutture a tema affitti brevi<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hostamy.com\/en_gb\/mobile-casino-slots-play-smart\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mobile Casino Slots Play Smart - Hostamy - strumenti per strutture a tema affitti brevi\" \/>\n<meta property=\"og:description\" content=\"Online slots are undoubtedly the best method to be a part of the casino. There are many players who get addicted to this casino game and will not stop playing it. To lure players back to the el dino apuestas tables, you have to give them more bonus. Online casinos offer no-cost slots to their […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hostamy.com\/en_gb\/mobile-casino-slots-play-smart\/\" \/>\n<meta property=\"og:site_name\" content=\"Hostamy - strumenti per strutture a tema affitti brevi\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-27T19:11:57+00:00\" \/>\n<meta name=\"author\" content=\"fc45efdc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"fc45efdc\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/\"},\"author\":{\"name\":\"fc45efdc\",\"@id\":\"https:\/\/hostamy.com\/#\/schema\/person\/83061f65a1dc7f40d3fb40246f6ac56d\"},\"headline\":\"Mobile Casino Slots Play Smart\",\"datePublished\":\"2025-07-27T19:11:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/\"},\"wordCount\":556,\"publisher\":{\"@id\":\"https:\/\/hostamy.com\/#organization\"},\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/\",\"url\":\"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/\",\"name\":\"Mobile Casino Slots Play Smart - Hostamy - strumenti per strutture a tema affitti brevi\",\"isPartOf\":{\"@id\":\"https:\/\/hostamy.com\/#website\"},\"datePublished\":\"2025-07-27T19:11:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/hostamy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mobile Casino Slots Play Smart\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/hostamy.com\/#website\",\"url\":\"https:\/\/hostamy.com\/\",\"name\":\"Hostamy - strumenti per strutture a tema affitti brevi\",\"description\":\"Blog e prodotti per host di case vacanze, LT e B&B a diventare più digitali. Cartelli per la casa, contratto di affitto, Libro degli Ospiti etc.\",\"publisher\":{\"@id\":\"https:\/\/hostamy.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/hostamy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/hostamy.com\/#organization\",\"name\":\"Hostamy - strumenti per strutture a tema affitti brevi\",\"url\":\"https:\/\/hostamy.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/hostamy.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/hostamy.com\/wp-content\/uploads\/2021\/07\/cropped-1-4-e1627541980492.png\",\"contentUrl\":\"https:\/\/hostamy.com\/wp-content\/uploads\/2021\/07\/cropped-1-4-e1627541980492.png\",\"width\":200,\"height\":200,\"caption\":\"Hostamy - strumenti per strutture a tema affitti brevi\"},\"image\":{\"@id\":\"https:\/\/hostamy.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/hostamy.com\/#\/schema\/person\/83061f65a1dc7f40d3fb40246f6ac56d\",\"name\":\"fc45efdc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/hostamy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3c10615e078dc1972debbe53841fc088400a752a60576387b5ea492a08a811e2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3c10615e078dc1972debbe53841fc088400a752a60576387b5ea492a08a811e2?s=96&d=mm&r=g\",\"caption\":\"fc45efdc\"},\"url\":\"https:\/\/hostamy.com\/en_gb\/author\/fc45efdc\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mobile Casino Slots Play Smart - Hostamy - strumenti per strutture a tema affitti brevi","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hostamy.com\/en_gb\/mobile-casino-slots-play-smart\/","og_locale":"en_GB","og_type":"article","og_title":"Mobile Casino Slots Play Smart - Hostamy - strumenti per strutture a tema affitti brevi","og_description":"Online slots are undoubtedly the best method to be a part of the casino. There are many players who get addicted to this casino game and will not stop playing it. To lure players back to the el dino apuestas tables, you have to give them more bonus. Online casinos offer no-cost slots to their […]","og_url":"https:\/\/hostamy.com\/en_gb\/mobile-casino-slots-play-smart\/","og_site_name":"Hostamy - strumenti per strutture a tema affitti brevi","article_published_time":"2025-07-27T19:11:57+00:00","author":"fc45efdc","twitter_card":"summary_large_image","twitter_misc":{"Written by":"fc45efdc","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/#article","isPartOf":{"@id":"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/"},"author":{"name":"fc45efdc","@id":"https:\/\/hostamy.com\/#\/schema\/person\/83061f65a1dc7f40d3fb40246f6ac56d"},"headline":"Mobile Casino Slots Play Smart","datePublished":"2025-07-27T19:11:57+00:00","mainEntityOfPage":{"@id":"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/"},"wordCount":556,"publisher":{"@id":"https:\/\/hostamy.com\/#organization"},"articleSection":["Uncategorized"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/","url":"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/","name":"Mobile Casino Slots Play Smart - Hostamy - strumenti per strutture a tema affitti brevi","isPartOf":{"@id":"https:\/\/hostamy.com\/#website"},"datePublished":"2025-07-27T19:11:57+00:00","breadcrumb":{"@id":"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/hostamy.com\/mobile-casino-slots-play-smart\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hostamy.com\/"},{"@type":"ListItem","position":2,"name":"Mobile Casino Slots Play Smart"}]},{"@type":"WebSite","@id":"https:\/\/hostamy.com\/#website","url":"https:\/\/hostamy.com\/","name":"Hostamy - strumenti per strutture a tema affitti brevi","description":"Blog e prodotti per host di case vacanze, LT e B&B a diventare più digitali. Cartelli per la casa, contratto di affitto, Libro degli Ospiti etc.","publisher":{"@id":"https:\/\/hostamy.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hostamy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/hostamy.com\/#organization","name":"Hostamy - strumenti per strutture a tema affitti brevi","url":"https:\/\/hostamy.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/hostamy.com\/#\/schema\/logo\/image\/","url":"https:\/\/hostamy.com\/wp-content\/uploads\/2021\/07\/cropped-1-4-e1627541980492.png","contentUrl":"https:\/\/hostamy.com\/wp-content\/uploads\/2021\/07\/cropped-1-4-e1627541980492.png","width":200,"height":200,"caption":"Hostamy - strumenti per strutture a tema affitti brevi"},"image":{"@id":"https:\/\/hostamy.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/hostamy.com\/#\/schema\/person\/83061f65a1dc7f40d3fb40246f6ac56d","name":"fc45efdc","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/hostamy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3c10615e078dc1972debbe53841fc088400a752a60576387b5ea492a08a811e2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3c10615e078dc1972debbe53841fc088400a752a60576387b5ea492a08a811e2?s=96&d=mm&r=g","caption":"fc45efdc"},"url":"https:\/\/hostamy.com\/en_gb\/author\/fc45efdc\/"}]}},"_links":{"self":[{"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/posts\/7147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/comments?post=7147"}],"version-history":[{"count":1,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/posts\/7147\/revisions"}],"predecessor-version":[{"id":7148,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/posts\/7147\/revisions\/7148"}],"wp:attachment":[{"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/media?parent=7147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/categories?post=7147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/tags?post=7147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}