Add axo script attributes to blocks checkout

This commit is contained in:
Emili Castells Guasch 2025-07-18 11:09:23 +02:00
parent 57e36ed954
commit 06c000b42b
No known key found for this signature in database
4 changed files with 30 additions and 3 deletions

View file

@ -27,12 +27,36 @@ const usePayPalScript = ( namespace, ppcpConfig, isConfigLoaded ) => {
useEffect( () => {
const loadScript = async () => {
if ( ! isPayPalLoaded && isConfigLoaded ) {
const axoConfig = window.wc_ppcp_axo;
try {
const res = await fetch(
axoConfig.ajax.axo_script_attributes.endpoint,
{
method: 'POST',
credentials: 'same-origin',
body: JSON.stringify( {
nonce: axoConfig.ajax.axo_script_attributes
.nonce,
} ),
}
);
const json = await res.json();
if ( ! json.success ) {
log(
`Failed to load axo script attributes: ${ json.data.message }`,
'error'
);
return;
}
await loadPayPalScript( namespace, {
...ppcpConfig,
script_attributes: {
...ppcpConfig.script_attributes,
'data-sdk-client-token': 'abc123',
'data-sdk-client-token': json.data.sdk_client_token,
},
} );
setIsPayPalLoaded( true );

View file

@ -11,6 +11,7 @@ namespace WooCommerce\PayPalCommerce\AxoBlock;
use WC_Payment_Gateway;
use Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType;
use WooCommerce\PayPalCommerce\Axo\Endpoint\AxoScriptAttributes;
use WooCommerce\PayPalCommerce\Axo\Endpoint\FrontendLogger;
use WooCommerce\PayPalCommerce\Button\Assets\SmartButtonInterface;
use WooCommerce\PayPalCommerce\WcGateway\Helper\Environment;
@ -261,6 +262,10 @@ class AxoBlockPaymentMethod extends AbstractPaymentMethodType {
'endpoint' => \WC_AJAX::get_endpoint( FrontendLogger::ENDPOINT ),
'nonce' => wp_create_nonce( FrontendLogger::nonce() ),
),
'axo_script_attributes' => array(
'endpoint' => \WC_AJAX::get_endpoint( AxoScriptAttributes::ENDPOINT ),
'nonce' => wp_create_nonce( AxoScriptAttributes::nonce() ),
),
),
'logging_enabled' => $this->settings->has( 'logging_enabled' ) ? $this->settings->get( 'logging_enabled' ) : '',
'wp_debug' => defined( 'WP_DEBUG' ) && WP_DEBUG,

View file

@ -35,7 +35,6 @@ import { log } from './Helper/Debug';
script_attributes: {
...ppcpConfig.script_attributes,
'data-sdk-client-token': json.data.sdk_client_token,
'data-client-metadata-id': json.data.client_metadata_id,
},
} )
.then( () => {

View file

@ -44,7 +44,6 @@ class AxoScriptAttributes implements EndpointInterface {
wp_send_json_success(
array(
'sdk_client_token' => $token,
'client_metadata_id' => str_replace('-', '', wp_generate_uuid4()),
)
);