mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 14:57:26 +08:00
Merge trunk
This commit is contained in:
commit
b7060d9540
53 changed files with 2414 additions and 2108 deletions
|
@ -133,6 +133,11 @@ $background-ident-color: #fbfbfb;
|
|||
}
|
||||
}
|
||||
|
||||
.ppcp-notice-list {
|
||||
list-style-type: disc;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
|
|
58
modules/ppcp-wc-gateway/resources/js/helper/ConsoleLogger.js
Normal file
58
modules/ppcp-wc-gateway/resources/js/helper/ConsoleLogger.js
Normal file
|
@ -0,0 +1,58 @@
|
|||
/**
|
||||
* Helper component to log debug details to the browser console.
|
||||
*
|
||||
* A utility class that is used by payment buttons on the front-end, like the GooglePayButton.
|
||||
*/
|
||||
export default class ConsoleLogger {
|
||||
/**
|
||||
* The prefix to display before every log output.
|
||||
*
|
||||
* @type {string}
|
||||
*/
|
||||
#prefix = '';
|
||||
|
||||
/**
|
||||
* Whether logging is enabled, disabled by default.
|
||||
*
|
||||
* @type {boolean}
|
||||
*/
|
||||
#enabled = false;
|
||||
|
||||
constructor( ...prefixes ) {
|
||||
if ( prefixes.length ) {
|
||||
this.#prefix = `[${ prefixes.join( ' | ' ) }]`;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable or disable logging. Only impacts `log()` output.
|
||||
*
|
||||
* @param {boolean} state True to enable log output.
|
||||
*/
|
||||
set enabled( state ) {
|
||||
this.#enabled = state;
|
||||
}
|
||||
|
||||
/**
|
||||
* Output log-level details to the browser console, if logging is enabled.
|
||||
*
|
||||
* @param {...any} args - All provided values are output to the browser console.
|
||||
*/
|
||||
log( ...args ) {
|
||||
if ( this.#enabled ) {
|
||||
// eslint-disable-next-line
|
||||
console.log( this.#prefix, ...args );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate an error message in the browser's console.
|
||||
*
|
||||
* Error messages are always output, even when logging is disabled.
|
||||
*
|
||||
* @param {...any} args - All provided values are output to the browser console.
|
||||
*/
|
||||
error( ...args ) {
|
||||
console.error( this.#prefix, ...args );
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
/* global jQuery */
|
||||
|
||||
/**
|
||||
* Returns a Map with all input fields that are relevant to render the preview of the
|
||||
* given payment button.
|
||||
*
|
||||
* @param {string} apmName - Value of the custom attribute `data-ppcp-apm-name`.
|
||||
* @return {Map<string, {val:Function, el:HTMLInputElement}>}
|
||||
* @return {Map<string, {val:Function, el:HTMLInputElement}>} List of input elements found on the current admin page.
|
||||
*/
|
||||
export function getButtonFormFields( apmName ) {
|
||||
const inputFields = document.querySelectorAll(
|
||||
|
@ -28,9 +30,9 @@ export function getButtonFormFields( apmName ) {
|
|||
|
||||
/**
|
||||
* Returns a function that triggers an update of the specified preview button, when invoked.
|
||||
|
||||
*
|
||||
* @param {string} apmName
|
||||
* @return {((object) => void)}
|
||||
* @return {((object) => void)} Trigger-function; updates preview buttons when invoked.
|
||||
*/
|
||||
export function buttonRefreshTriggerFactory( apmName ) {
|
||||
const eventName = `ppcp_paypal_render_preview_${ apmName }`;
|
||||
|
@ -44,7 +46,7 @@ export function buttonRefreshTriggerFactory( apmName ) {
|
|||
* Returns a function that gets the current form values of the specified preview button.
|
||||
*
|
||||
* @param {string} apmName
|
||||
* @return {() => {button: {wrapper:string, is_enabled:boolean, style:{}}}}
|
||||
* @return {() => {button: {wrapper:string, is_enabled:boolean, style:{}}}} Getter-function; returns preview config details when invoked.
|
||||
*/
|
||||
export function buttonSettingsGetterFactory( apmName ) {
|
||||
const fields = getButtonFormFields( apmName );
|
||||
|
|
|
@ -366,7 +366,8 @@ return array(
|
|||
$container->get( 'api.partner_merchant_id-production' ),
|
||||
$container->get( 'api.partner_merchant_id-sandbox' ),
|
||||
$container->get( 'api.endpoint.billing-agreements' ),
|
||||
$logger
|
||||
$logger,
|
||||
new Cache( 'ppcp-client-credentials-cache' )
|
||||
);
|
||||
},
|
||||
'wcgateway.order-processor' => static function ( ContainerInterface $container ): OrderProcessor {
|
||||
|
@ -1410,10 +1411,10 @@ return array(
|
|||
return $label;
|
||||
},
|
||||
'wcgateway.enable-dcc-url-sandbox' => static function ( ContainerInterface $container ): string {
|
||||
return 'https://www.sandbox.paypal.com/bizsignup/entry/product/ppcp';
|
||||
return 'https://www.sandbox.paypal.com/bizsignup/entry?product=ppcp';
|
||||
},
|
||||
'wcgateway.enable-dcc-url-live' => static function ( ContainerInterface $container ): string {
|
||||
return 'https://www.paypal.com/bizsignup/entry/product/ppcp';
|
||||
return 'https://www.paypal.com/bizsignup/entry?product=ppcp';
|
||||
},
|
||||
'wcgateway.enable-pui-url-sandbox' => static function ( ContainerInterface $container ): string {
|
||||
return 'https://www.sandbox.paypal.com/bizsignup/entry?country.x=DE&product=payment_methods&capabilities=PAY_UPON_INVOICE';
|
||||
|
|
|
@ -12,6 +12,8 @@ namespace WooCommerce\PayPalCommerce\WcGateway\Settings;
|
|||
use Psr\Log\LoggerInterface;
|
||||
use WooCommerce\PayPalCommerce\ApiClient\Authentication\Bearer;
|
||||
use WooCommerce\PayPalCommerce\ApiClient\Authentication\PayPalBearer;
|
||||
use WooCommerce\PayPalCommerce\ApiClient\Authentication\SdkClientToken;
|
||||
use WooCommerce\PayPalCommerce\ApiClient\Authentication\UserIdToken;
|
||||
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\BillingAgreementsEndpoint;
|
||||
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
||||
use WooCommerce\PayPalCommerce\ApiClient\Helper\Cache;
|
||||
|
@ -164,6 +166,13 @@ class SettingsListener {
|
|||
*/
|
||||
private $logger;
|
||||
|
||||
/**
|
||||
* The client credentials cache.
|
||||
*
|
||||
* @var Cache
|
||||
*/
|
||||
private $client_credentials_cache;
|
||||
|
||||
/**
|
||||
* SettingsListener constructor.
|
||||
*
|
||||
|
@ -183,6 +192,7 @@ class SettingsListener {
|
|||
* @param string $partner_merchant_id_sandbox Partner merchant ID sandbox.
|
||||
* @param BillingAgreementsEndpoint $billing_agreements_endpoint Billing Agreements endpoint.
|
||||
* @param ?LoggerInterface $logger The logger.
|
||||
* @param Cache $client_credentials_cache The client credentials cache.
|
||||
*/
|
||||
public function __construct(
|
||||
Settings $settings,
|
||||
|
@ -200,7 +210,8 @@ class SettingsListener {
|
|||
string $partner_merchant_id_production,
|
||||
string $partner_merchant_id_sandbox,
|
||||
BillingAgreementsEndpoint $billing_agreements_endpoint,
|
||||
LoggerInterface $logger = null
|
||||
LoggerInterface $logger = null,
|
||||
Cache $client_credentials_cache
|
||||
) {
|
||||
|
||||
$this->settings = $settings;
|
||||
|
@ -219,6 +230,7 @@ class SettingsListener {
|
|||
$this->partner_merchant_id_sandbox = $partner_merchant_id_sandbox;
|
||||
$this->billing_agreements_endpoint = $billing_agreements_endpoint;
|
||||
$this->logger = $logger ?: new NullLogger();
|
||||
$this->client_credentials_cache = $client_credentials_cache;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -490,6 +502,9 @@ class SettingsListener {
|
|||
if ( $this->cache->has( PayPalBearer::CACHE_KEY ) ) {
|
||||
$this->cache->delete( PayPalBearer::CACHE_KEY );
|
||||
}
|
||||
if ( $this->client_credentials_cache->has( SdkClientToken::CACHE_KEY ) ) {
|
||||
$this->client_credentials_cache->delete( SdkClientToken::CACHE_KEY );
|
||||
}
|
||||
|
||||
if ( $this->pui_status_cache->has( PayUponInvoiceProductStatus::PUI_STATUS_CACHE_KEY ) ) {
|
||||
$this->pui_status_cache->delete( PayUponInvoiceProductStatus::PUI_STATUS_CACHE_KEY );
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue