mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 10:55:00 +08:00
Add cardholder name field
This commit is contained in:
parent
4d56994901
commit
adbb799be4
2 changed files with 36 additions and 2 deletions
|
@ -184,6 +184,11 @@ class CreditCardRenderer {
|
|||
});
|
||||
|
||||
if (cardField.isEligible()) {
|
||||
const nameFieldContainer = document.getElementById('ppcp-credit-card-gateway-card-name').parentNode;
|
||||
const nameField = cardField.NameField();
|
||||
nameField.render(nameFieldContainer);
|
||||
document.getElementById("ppcp-credit-card-gateway-card-name").remove();
|
||||
|
||||
const numberFieldContainer = document.getElementById('ppcp-credit-card-gateway-card-number').parentNode;
|
||||
const numberField = cardField.NumberField();
|
||||
numberField.render(numberFieldContainer);
|
||||
|
|
|
@ -13,9 +13,16 @@ use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider;
|
|||
use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface;
|
||||
use WooCommerce\PayPalCommerce\Vendor\Interop\Container\ServiceProviderInterface;
|
||||
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
||||
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
||||
|
||||
/**
|
||||
* Class CardFieldsModule
|
||||
*/
|
||||
class CardFieldsModule implements ModuleInterface {
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function setup(): ServiceProviderInterface {
|
||||
return new ServiceProvider(
|
||||
require __DIR__ . '/../services.php',
|
||||
|
@ -23,6 +30,9 @@ class CardFieldsModule implements ModuleInterface {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function run( ContainerInterface $c ): void {
|
||||
if ( ! $c->get( 'card-fields.eligible' ) ) {
|
||||
return;
|
||||
|
@ -36,8 +46,9 @@ class CardFieldsModule implements ModuleInterface {
|
|||
add_filter(
|
||||
'woocommerce_paypal_payments_sdk_components_hook',
|
||||
function( $components ) {
|
||||
if ( in_array( 'hosted-fields', $components ) ) {
|
||||
if ( ( $key = array_search( 'hosted-fields', $components ) ) !== false ) {
|
||||
if ( in_array( 'hosted-fields', $components, true ) ) {
|
||||
$key = array_search( 'hosted-fields', $components, true );
|
||||
if ( $key !== false ) {
|
||||
unset( $components[ $key ] );
|
||||
}
|
||||
}
|
||||
|
@ -46,5 +57,23 @@ class CardFieldsModule implements ModuleInterface {
|
|||
return $components;
|
||||
}
|
||||
);
|
||||
|
||||
add_filter(
|
||||
'woocommerce_credit_card_form_fields',
|
||||
function( $default_fields, $id ) {
|
||||
if ( CreditCardGateway::ID === $id ) {
|
||||
$default_fields['card-name-field'] = '<p class="form-row form-row-wide"><label for="ppcp-credit-card-gateway-card-name"><input class="ppcp-credit-card-gateway-card-name" type="text" id="ppcp-credit-card-gateway-card-name" name="ppcp-credit-card-gateway-card-name"/></p>';
|
||||
|
||||
// Moves new item to first position.
|
||||
$new_field = $default_fields['card-name-field'];
|
||||
unset( $default_fields['card-name-field'] );
|
||||
array_unshift( $default_fields, $new_field );
|
||||
}
|
||||
|
||||
return $default_fields;
|
||||
},
|
||||
10,
|
||||
2
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue