Log delete payment failure and parse url when checking payments page

This commit is contained in:
dinamiko 2021-09-23 17:12:17 +02:00
parent 28b12af089
commit 773b784a53
3 changed files with 15 additions and 3 deletions

View file

@ -35,7 +35,8 @@ return array(
'vaulting.endpoint.delete' => function( $container ) : DeletePaymentTokenEndpoint {
return new DeletePaymentTokenEndpoint(
$container->get( 'vaulting.repository.payment-token' ),
$container->get( 'button.request-data' )
$container->get( 'button.request-data' ),
$container->get( 'woocommerce.logger.woocommerce' )
);
},
);

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace WooCommerce\PayPalCommerce\Vaulting\Endpoint;
use Exception;
use Psr\Log\LoggerInterface;
use WooCommerce\PayPalCommerce\Button\Endpoint\RequestData;
use WooCommerce\PayPalCommerce\Vaulting\PaymentTokenRepository;
@ -34,15 +35,24 @@ class DeletePaymentTokenEndpoint {
*/
protected $request_data;
/**
* The logger.
*
* @var LoggerInterface
*/
protected $logger;
/**
* DeletePaymentTokenEndpoint constructor.
*
* @param PaymentTokenRepository $repository The repository.
* @param RequestData $request_data The request data.
* @param LoggerInterface $logger The logger.
*/
public function __construct( PaymentTokenRepository $repository, RequestData $request_data ) {
public function __construct( PaymentTokenRepository $repository, RequestData $request_data, LoggerInterface $logger ) {
$this->repository = $repository;
$this->request_data = $request_data;
$this->logger = $logger;
}
/**
@ -76,6 +86,7 @@ class DeletePaymentTokenEndpoint {
}
}
} catch ( Exception $error ) {
$this->logger->error( 'Failed to delete payment: ' . $error->getMessage() );
wp_send_json_error( $error->getMessage(), 403 );
return false;
}

View file

@ -106,7 +106,7 @@ class VaultingModule implements ModuleInterface {
*/
private function is_payments_page(): bool {
global $wp;
$request = explode( '/', $wp->request );
$request = explode( '/', wp_parse_url( $wp->request, PHP_URL_PATH ) );
if ( end( $request ) === 'ppcp-paypal-payment-tokens' ) {
return true;
}