Add filter to unset payment method items

This commit is contained in:
Emili Castells Guasch 2025-01-23 15:43:19 +01:00
parent 449a4a3e50
commit d44fafe415
2 changed files with 16 additions and 1 deletions

View file

@ -299,7 +299,7 @@ class PaymentRestEndpoint extends RestEndpoint {
);
}
return $this->return_success( $gateway_settings );
return $this->return_success( apply_filters( 'woocommerce_paypal_payments_payment_methods', $gateway_settings ) );
}
/**

View file

@ -17,6 +17,7 @@ use WooCommerce\PayPalCommerce\Vendor\Inpsyde\Modularity\Module\ExecutableModule
use WooCommerce\PayPalCommerce\Vendor\Inpsyde\Modularity\Module\ModuleClassNameIdTrait;
use WooCommerce\PayPalCommerce\Vendor\Inpsyde\Modularity\Module\ServiceModule;
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
use WooCommerce\PayPalCommerce\WcGateway\Helper\DCCProductStatus;
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
/**
@ -263,6 +264,20 @@ class SettingsModule implements ServiceModule, ExecutableModule {
}
);
add_filter(
'woocommerce_paypal_payments_payment_methods',
function( array $payment_methods ) use ( $container ) : array {
$dcc_product_status = $container->get( 'wcgateway.helper.dcc-product-status' );
assert( $dcc_product_status instanceof DCCProductStatus );
if ( $dcc_product_status->dcc_is_active() ) {
unset( $payment_methods['ppcp-card-button-gateway'] );
}
return $payment_methods;
}
);
return true;
}