/** * 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":7021,"date":"2025-06-13T14:04:15","date_gmt":"2025-06-13T14:04:15","guid":{"rendered":"https:\/\/hostamy.com\/?p=7021"},"modified":"2025-06-13T14:04:15","modified_gmt":"2025-06-13T14:04:15","slug":"7021-2","status":"publish","type":"post","link":"https:\/\/hostamy.com\/en_gb\/7021-2\/","title":{"rendered":""},"content":{"rendered":"

\n Tips to Find a Real Money Cas ausvets.com.au<\/a>ino Online
\n<\/h1>\n

\n Online Gambling Information. Top Online Gambling sites. Responsible Gambling: How to decide where to place your bets. Many people are confused about where to place bets and what they should expect during play. Responsible Gambling Links: Where to Begin. Best Online Gambling: How to Choose The Best Site to bet on.\n<\/p>\n<\/p>\n

\n Using Credit Cards to pay for online Gambling Real Money: Online gambling websites offer a variety of different payment options. Online gambling real money credit cards are compatible with PayPal MoneyBookers, Xoom Moneybookers, Xoom Moneybookers, checks, and money transfer services. Online betting can be done from any of these locations using your credit card. Whatever method you select, make contact with your credit card company before you gamble or shop online. You must immediately challenge any charges that are unauthorized.\n<\/p>\n<\/p>\n

\n How To Find The Best Online Gambling Sites: To get the best gambling sites that are real money online found in the top results of search engines. It is recommended to check the Google search bar and type in the search term “best gambling websites online”. This will list all of the gambling websites available. These include Bingo, Roulette, Poker, Blackjack, Slots, Keno, Slot Machines, Online Gambling Systems, Sports Gambling, Promotion Sites and more. It is important to find as many gambling sites as possible.\n<\/p>\n<\/p>\n

\n Some of the top names in online gaming real money include Party Gaming, Ultimate Bet, Paradise Poker, Party Poker, Paradise Poker Pro, Party Z Casino, Party Poker Plus, Ultimate Bet Inc., Betfair, Party Town, Party Gaming Express, and Intertops. These are only some of the numerous examples. There are many more businesses that offer gambling online. Do your research. Find out where the top firms are and then join them!\n<\/p>\n<\/p>\n

\n Why should you join casinos online? Online casinos offer real money-based gambling. Many players appreciate the fact that they don’t have to leave the comfort of their home to participate in gambling online. This gives them the opportunity to connect with people from all over the world who share the same interest. Online casinos allow gamblers to create social networks and to participate in online gambling.\n<\/p>\n<\/p>\n

\n Who is eligible to join: Anyone can join gambling website. It doesn’t matter what age you are. You do not have to be a millionaire nor do you have to be a million dollar bettor to enjoy the thrill of gambling online. You can join one of these betting sites and begin betting.\n<\/p>\n<\/p>\n

\n What’s the Big Deal? One of the most appealing things about online gambling websites is the anonymity that they provide. Players do not have to reveal any information about themselves. Their real name and address are kept private and they are able to choose the payment method they prefer to use when playing. Online gambling sites provide more security than live casinos.\n<\/p>\n<\/p>\n

\n Are all of the free Online Gambling Sites Scams Not necessarily. Although some sites offer bonus or freebies for new players most of them have respectable reputations. The best websites are run and operated by real gamblers who are knowledgeable about online gambling and are willing to offer their services for no cost.\n<\/p>\n<\/p>\n

\n How Does a Real Money Casino Site Work? In the majority of instances, players deposit funds into his or her account, and then uses those funds to apostaganha-aviator.click<\/a> wager a variety of games available. Some websites offer more extensive gaming options, such as tournament play. All gambling websites offer withdrawal options. This is typically done through an online transaction. Once a player wins an amount, he can cash out winnings or transfer them into the gaming bank account.\n<\/p>\n<\/p>\n

\n Where can I find online betting on sports? Sports betting online is growing in popularity. To make your gambling experience more thrilling it is recommended to place sports bets on various sporting events in different countries. This way, you’ll be able to experience the thrill of gambling online without having to leave the comforts of your home. Some of the most well-known betting websites include Overtime and Betfair.\n<\/p>\n<\/p>\n

\n Are There Different Deposit Methods available? If you decide to play online gambling, it’s important to be aware of the various deposit methods that are available. Most online gambling sites offer different deposit options that range from major credit cards to electronic checks. Major credit cards are usually accepted at all gambling sites, but electronic checks are less popular. The majority of these methods are secure and shouldn’t cause any issues when processing your transactions.<\/p>","protected":false},"excerpt":{"rendered":"

Tips to Find a Real Money Cas ausvets.com.auino Online Online Gambling Information. Top Online Gambling sites. Responsible Gambling: How to decide where to place your bets. Many people are confused about where to place bets and what they should expect during play. Responsible Gambling Links: Where to Begin. Best Online Gambling: How to Choose The […]<\/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-7021","post","type-post","status-publish","format-standard","hentry","category-uncategorized","pmpro-has-access"],"yoast_head":"\n- 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\/7021-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"- Hostamy - strumenti per strutture a tema affitti brevi\" \/>\n<meta property=\"og:description\" content=\"Tips to Find a Real Money Cas ausvets.com.auino Online Online Gambling Information. Top Online Gambling sites. Responsible Gambling: How to decide where to place your bets. Many people are confused about where to place bets and what they should expect during play. Responsible Gambling Links: Where to Begin. Best Online Gambling: How to Choose The […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hostamy.com\/en_gb\/7021-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Hostamy - strumenti per strutture a tema affitti brevi\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-13T14:04:15+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\/7021-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/hostamy.com\/7021-2\/\"},\"author\":{\"name\":\"fc45efdc\",\"@id\":\"https:\/\/hostamy.com\/#\/schema\/person\/83061f65a1dc7f40d3fb40246f6ac56d\"},\"headline\":\"No title\",\"datePublished\":\"2025-06-13T14:04:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/hostamy.com\/7021-2\/\"},\"wordCount\":753,\"publisher\":{\"@id\":\"https:\/\/hostamy.com\/#organization\"},\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hostamy.com\/7021-2\/\",\"url\":\"https:\/\/hostamy.com\/7021-2\/\",\"name\":\"- Hostamy - strumenti per strutture a tema affitti brevi\",\"isPartOf\":{\"@id\":\"https:\/\/hostamy.com\/#website\"},\"datePublished\":\"2025-06-13T14:04:15+00:00\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hostamy.com\/7021-2\/\"]}]},{\"@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":"- 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\/7021-2\/","og_locale":"en_GB","og_type":"article","og_title":"- Hostamy - strumenti per strutture a tema affitti brevi","og_description":"Tips to Find a Real Money Cas ausvets.com.auino Online Online Gambling Information. Top Online Gambling sites. Responsible Gambling: How to decide where to place your bets. Many people are confused about where to place bets and what they should expect during play. Responsible Gambling Links: Where to Begin. Best Online Gambling: How to Choose The […]","og_url":"https:\/\/hostamy.com\/en_gb\/7021-2\/","og_site_name":"Hostamy - strumenti per strutture a tema affitti brevi","article_published_time":"2025-06-13T14:04:15+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\/7021-2\/#article","isPartOf":{"@id":"https:\/\/hostamy.com\/7021-2\/"},"author":{"name":"fc45efdc","@id":"https:\/\/hostamy.com\/#\/schema\/person\/83061f65a1dc7f40d3fb40246f6ac56d"},"headline":"No title","datePublished":"2025-06-13T14:04:15+00:00","mainEntityOfPage":{"@id":"https:\/\/hostamy.com\/7021-2\/"},"wordCount":753,"publisher":{"@id":"https:\/\/hostamy.com\/#organization"},"articleSection":["Uncategorized"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/hostamy.com\/7021-2\/","url":"https:\/\/hostamy.com\/7021-2\/","name":"- Hostamy - strumenti per strutture a tema affitti brevi","isPartOf":{"@id":"https:\/\/hostamy.com\/#website"},"datePublished":"2025-06-13T14:04:15+00:00","inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hostamy.com\/7021-2\/"]}]},{"@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\/7021","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=7021"}],"version-history":[{"count":1,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/posts\/7021\/revisions"}],"predecessor-version":[{"id":7022,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/posts\/7021\/revisions\/7022"}],"wp:attachment":[{"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/media?parent=7021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/categories?post=7021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hostamy.com\/en_gb\/wp-json\/wp\/v2\/tags?post=7021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}