/** * 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":7243,"date":"2025-08-02T09:09:50","date_gmt":"2025-08-02T09:09:50","guid":{"rendered":"https:\/\/hostamy.com\/?p=7243"},"modified":"2025-08-02T09:09:50","modified_gmt":"2025-08-02T09:09:50","slug":"free-online-casino-games","status":"publish","type":"post","link":"https:\/\/hostamy.com\/en_gb\/free-online-casino-games\/","title":{"rendered":"Free Online Casino Games"},"content":{"rendered":"

Free online casino games are a great choice for those who are brand new to the world of real-money gaming. They don’t require downloads or installations, and they often include a demo game that you can test before deciding to play with real money. These games are great for practicing and learn about a casino game before you play for real money. These games can also be found on mobile devices. Here are a few of the best options.\n<\/p>\n

Online casino games that are free are available on mobile devices
\n<\/h2>\n

You can play for free mobile games to find out what you want from them before paying real money. Before you pay real money you can test the graphics, gameplay, and game stability. Because you’ll playing on a tiny screen, mobile games need doublestar<\/a> to be optimized for this size. It’s likely that the game will look good on your phone. The majority of mobile slot and table games are similar to their counterparts on the board.\n<\/p>\n

If you’re just beginning to learn about online gambling, you may like to test the mobile versions of the games for free. Mobile versions of casino games offer a variety of advantages, including the fact that you don’t have to go to a traditional casino. You’ll have access to more games than casinos that are located in the land and can also remain anonymous by using a nickname rather than your real name. Mobile casino games are also simple to play, meaning you can enjoy them wherever you travel. Before you begin playing, make sure that you have an active Internet connection and an energized phone battery.\n<\/p>\n

They don’t require to be downloaded or installed
\n<\/h2>\n

Casinos that do not require download allow you to play their games right from your browser without having to download any software. These games are also known as browser, instant play, Flash, or Java casinos. There are numerous new titles as these programs are phased-out. They’re fun and exciting. If you have any concerns you should check out their FAQ section for more details. These games do not work with all operating systems, so be sure to check out the system requirements before playing.\n<\/p>\n

Many betting sites provide a variety of free games that do not require installation or download. These games are ideal for those who wish to try various casino games prior to making an actual money deposit. They do not require registration or downloading. These games are great because they can be played with no a risk of losing money. If you want to play for real money, however you may want to download the version.\n<\/p>\n

They provide a demo game before you play for real money
\n<\/h2>\n

You might be wondering how you can play online casino games for free without risking too much. The answer is different than it is for traditional games. Casino games online are not real money. They are a simulation of the entire game. Many games provide bonus rounds that let you test out the game’s individual rewards and win money. They can be presented in an arcade style or by spinning the wheel. While bonus rounds aren’t cost-free to play they can be closely linked to huge wins.\n<\/p>\n

A number of free online casino games offer a demo version of their slot games. Demo games will give you an idea of what can expect all right giri\u015f<\/a> when playing with real money. This helps you determine whether you’d like to try out the game before investing real money. You should also know that free slots do not require any real money to play. The demo version is purely to play for entertainment. It also allows you to test the odds of winning when you put in real money.\n<\/p>\n

They are an excellent way to experience gaming experience
\n<\/h2>\n

To play free casino games online You don’t need to register or download anything. A lot of new players utilize free games to try out new games and improve their skills before betting real money. They can perfect their strategies before placing bets, and learn to spot any game flaws prior to putting their money on the line. It’s also a great opportunity to meet new people and make new friends.\n<\/p>\n

Online casino games for free are enjoyable and thrilling. While they don’t provide cash prizes, they come with the same bonus features that are present in real-money casino games. In addition, they’re a great way to try out new games before wagering real money. Beginners should play free slots to get familiar with the gameplay and bonus rounds before putting real money on the table. After they’ve perfected their strategy and gameplay then they can move to real money games.<\/p>","protected":false},"excerpt":{"rendered":"

Free online casino games are a great choice for those who are brand new to the world of real-money gaming. They don’t require downloads or installations, and they often include a demo game that you can test before deciding to play with real money. These games are great for practicing and learn about a casino […]<\/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-7243","post","type-post","status-publish","format-standard","hentry","category-uncategorized","pmpro-has-access"],"yoast_head":"\nFree Online Casino Games - 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\/free-online-casino-games\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Free Online Casino Games - Hostamy - strumenti per strutture a tema affitti brevi\" \/>\n<meta property=\"og:description\" content=\"Free online casino games are a great choice for those who are brand new to the world of real-money gaming. They don’t require downloads or installations, and they often include a demo game that you can test before deciding to play with real money. These games are great for practicing and learn about a casino […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hostamy.com\/en_gb\/free-online-casino-games\/\" \/>\n<meta property=\"og:site_name\" content=\"Hostamy - strumenti per strutture a tema affitti brevi\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-02T09:09:50+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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/hostamy.com\/free-online-casino-games\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/hostamy.com\/free-online-casino-games\/\"},\"author\":{\"name\":\"fc45efdc\",\"@id\":\"https:\/\/hostamy.com\/#\/schema\/person\/83061f65a1dc7f40d3fb40246f6ac56d\"},\"headline\":\"Free Online Casino Games\",\"datePublished\":\"2025-08-02T09:09:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/hostamy.com\/free-online-casino-games\/\"},\"wordCount\":793,\"publisher\":{\"@id\":\"https:\/\/hostamy.com\/#organization\"},\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hostamy.com\/free-online-casino-games\/\",\"url\":\"https:\/\/hostamy.com\/free-online-casino-games\/\",\"name\":\"Free Online Casino Games - Hostamy - strumenti per strutture a tema affitti brevi\",\"isPartOf\":{\"@id\":\"https:\/\/hostamy.com\/#website\"},\"datePublished\":\"2025-08-02T09:09:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/hostamy.com\/free-online-casino-games\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hostamy.com\/free-online-casino-games\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hostamy.com\/free-online-casino-games\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/hostamy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Free Online Casino Games\"}]},{\"@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":"Free Online Casino Games - 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\/free-online-casino-games\/","og_locale":"en_GB","og_type":"article","og_title":"Free Online Casino Games - Hostamy - strumenti per strutture a tema affitti brevi","og_description":"Free online casino games are a great choice for those who are brand new to the world of real-money gaming. They don’t require downloads or installations, and they often include a demo game that you can test before deciding to play with real money. These games are great for practicing and learn about a casino […]","og_url":"https:\/\/hostamy.com\/en_gb\/free-online-casino-games\/","og_site_name":"Hostamy - strumenti per strutture a tema affitti brevi","article_published_time":"2025-08-02T09:09:50+00:00","author":"fc45efdc","twitter_card":"summary_large_image","twitter_misc":{"Written by":"fc45efdc","Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hostamy.com\/free-online-casino-games\/#article","isPartOf":{"@id":"https:\/\/hostamy.com\/free-online-casino-games\/"},"author":{"name":"fc45efdc","@id":"https:\/\/hostamy.com\/#\/schema\/person\/83061f65a1dc7f40d3fb40246f6ac56d"},"headline":"Free Online Casino Games","datePublished":"2025-08-02T09:09:50+00:00","mainEntityOfPage":{"@id":"https:\/\/hostamy.com\/free-online-casino-games\/"},"wordCount":793,"publisher":{"@id":"https:\/\/hostamy.com\/#organization"},"articleSection":["Uncategorized"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/hostamy.com\/free-online-casino-games\/","url":"https:\/\/hostamy.com\/free-online-casino-games\/","name":"Free Online Casino Games - Hostamy - strumenti per strutture a tema affitti brevi","isPartOf":{"@id":"https:\/\/hostamy.com\/#website"},"datePublished":"2025-08-02T09:09:50+00:00","breadcrumb":{"@id":"https:\/\/hostamy.com\/free-online-casino-games\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hostamy.com\/free-online-casino-games\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/hostamy.com\/free-online-casino-games\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hostamy.com\/"},{"@type":"ListItem","position":2,"name":"Free Online Casino Games"}]},{"@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\/7243","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=7243"}],"version-history":[{"count":1,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/posts\/7243\/revisions"}],"predecessor-version":[{"id":7244,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/posts\/7243\/revisions\/7244"}],"wp:attachment":[{"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/media?parent=7243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/categories?post=7243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/tags?post=7243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}