Do not use custom ajax endpoint for get order from session

This commit is contained in:
Emili Castells Guasch 2024-05-20 18:03:31 +02:00
parent e93e9db3be
commit a42488b41d
4 changed files with 1 additions and 68 deletions

View file

@ -78,17 +78,9 @@ export function CardFields({config, eventRegistration, emitResponse}) {
// TODO temporary workaround to wait for PayPal order in the session
await wait(3000)
const response = await fetch(config.scriptData.ajax.get_paypal_order_from_session.endpoint)
const result = await response.json()
return {
type: responseTypes.SUCCESS,
meta: {
paymentMethodData: {
'paypal_order_id': result.data,
},
},
};
}
}
return handlePaymentProcessing();

View file

@ -10,7 +10,6 @@ declare(strict_types=1);
namespace WooCommerce\PayPalCommerce\Blocks;
use Automattic\WooCommerce\Blocks\Payments\PaymentMethodRegistry;
use WooCommerce\PayPalCommerce\Blocks\Endpoint\GetPayPalOrderFromSession;
use WooCommerce\PayPalCommerce\Blocks\Endpoint\UpdateShippingEndpoint;
use WooCommerce\PayPalCommerce\Button\Assets\SmartButtonInterface;
use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider;
@ -91,16 +90,6 @@ class BlocksModule implements ModuleInterface {
}
);
add_action(
'wc_ajax_' . GetPayPalOrderFromSession::ENDPOINT,
static function () use ( $c ) {
$endpoint = $c->get( 'blocks.endpoint.get-paypal-order-from-session' );
assert( $endpoint instanceof GetPayPalOrderFromSession );
$endpoint->handle_request();
}
);
// Enqueue frontend scripts.
add_action(
'wp_enqueue_scripts',

View file

@ -1,43 +0,0 @@
<?php
/**
* Get PayPal order from the current session.
*
* @package WooCommerce\PayPalCommerce\Button\Endpoint
*/
declare(strict_types=1);
namespace WooCommerce\PayPalCommerce\Blocks\Endpoint;
use WooCommerce\PayPalCommerce\Button\Endpoint\EndpointInterface;
use WooCommerce\PayPalCommerce\Session\SessionHandler;
class GetPayPalOrderFromSession implements EndpointInterface
{
const ENDPOINT = 'ppc-get-paypal-order-from-session';
/**
* The session handler.
*
* @var SessionHandler
*/
private $session_handler;
public function __construct(SessionHandler $session_handler)
{
$this->session_handler = $session_handler;
}
public static function nonce(): string
{
return self::ENDPOINT;
}
public function handle_request(): bool
{
$order = $this->session_handler->order();
wp_send_json_success($order->id());
return true;
}
}

View file

@ -19,7 +19,6 @@ use WooCommerce\PayPalCommerce\ApiClient\Entity\Money;
use WooCommerce\PayPalCommerce\ApiClient\Entity\PaymentToken;
use WooCommerce\PayPalCommerce\ApiClient\Factory\PayerFactory;
use WooCommerce\PayPalCommerce\ApiClient\Helper\DccApplies;
use WooCommerce\PayPalCommerce\Blocks\Endpoint\GetPayPalOrderFromSession;
use WooCommerce\PayPalCommerce\Blocks\Endpoint\UpdateShippingEndpoint;
use WooCommerce\PayPalCommerce\Button\Endpoint\ApproveOrderEndpoint;
use WooCommerce\PayPalCommerce\Button\Endpoint\ApproveSubscriptionEndpoint;
@ -1160,10 +1159,6 @@ document.querySelector("#payment").before(document.querySelector(".ppcp-messages
'wp_rest_nonce' => wp_create_nonce( 'wc_store_api' ),
'update_shipping_method' => \WC_AJAX::get_endpoint( 'update_shipping_method' ),
),
'get_paypal_order_from_session' => array(
'endpoint' => \WC_AJAX::get_endpoint( GetPayPalOrderFromSession::ENDPOINT ),
'nonce' => wp_create_nonce( GetPayPalOrderFromSession::nonce() ),
),
),
'cart_contains_subscription' => $this->subscription_helper->cart_contains_subscription(),
'subscription_plan_id' => $this->subscription_helper->paypal_subscription_id(),