mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-08-31 06:52:50 +08:00
Merge branch 'PCP-905-tracking-integration-hooks' into PCP-905-tracking-integration-compatibility-with-third-party-plugins
This commit is contained in:
commit
1aa1cebba9
23 changed files with 430 additions and 136 deletions
|
@ -5,3 +5,6 @@ if (!defined('EP_PAGES')) {
|
||||||
if (!defined('MONTH_IN_SECONDS')) {
|
if (!defined('MONTH_IN_SECONDS')) {
|
||||||
define('MONTH_IN_SECONDS', 30 * DAY_IN_SECONDS);
|
define('MONTH_IN_SECONDS', 30 * DAY_IN_SECONDS);
|
||||||
}
|
}
|
||||||
|
if (!defined('HOUR_IN_SECONDS')) {
|
||||||
|
define('HOUR_IN_SECONDS', 60 * MINUTE_IN_SECONDS);
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,17 @@
|
||||||
*** Changelog ***
|
*** Changelog ***
|
||||||
|
|
||||||
|
= 1.9.4 - TBD =
|
||||||
|
* Add - Create new connection tab #801
|
||||||
|
* Add - Functionality to choose subscription failure behavior #728
|
||||||
|
* Fix - Virtual-only orders always move order status to completed #868
|
||||||
|
* Fix - PayPal order created twice when context is checkout #832
|
||||||
|
* Enhancement - Handle unsupported browsers better #843
|
||||||
|
* Enhancement - Combine the Webhooks Status page into a new Connection tab (891) #827
|
||||||
|
* Enhancement - Hide PayPal Card Processing tab if not available in country or for merchant #870
|
||||||
|
* Enhancement - Resubscribe webhooks on plugin upgrades #838
|
||||||
|
* Enhancement - PUI-relevant webhook not subscribed to #842
|
||||||
|
* Enhancement - Remove WC logo during onboarding #881
|
||||||
|
|
||||||
= 1.9.3 - 2022-08-31 =
|
= 1.9.3 - 2022-08-31 =
|
||||||
* Add - Tracking API #792
|
* Add - Tracking API #792
|
||||||
* Fix - Improve compatibility with Siteground Optimizer plugin #797
|
* Fix - Improve compatibility with Siteground Optimizer plugin #797
|
||||||
|
|
|
@ -79,7 +79,6 @@ class PartnerReferralsData {
|
||||||
'ppcp_partner_referrals_data',
|
'ppcp_partner_referrals_data',
|
||||||
array(
|
array(
|
||||||
'partner_config_override' => array(
|
'partner_config_override' => array(
|
||||||
'partner_logo_url' => 'https://connect.woocommerce.com/images/woocommerce_logo.png',
|
|
||||||
/**
|
/**
|
||||||
* Returns the URL which will be opened at the end of onboarding.
|
* Returns the URL which will be opened at the end of onboarding.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -311,6 +311,13 @@ document.addEventListener(
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
groupToggle(
|
||||||
|
'#ppcp-vault_enabled',
|
||||||
|
[
|
||||||
|
'#field-subscription_behavior_when_vault_fails',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
groupToggleSelect(
|
groupToggleSelect(
|
||||||
'#ppcp-intent',
|
'#ppcp-intent',
|
||||||
|
|
2
modules/ppcp-order-tracking/.gitignore
vendored
2
modules/ppcp-order-tracking/.gitignore
vendored
|
@ -1,2 +1,2 @@
|
||||||
node_modules
|
node_modules
|
||||||
/assets
|
assets
|
||||||
|
|
|
@ -117,14 +117,17 @@ class OrderTrackingEndpoint {
|
||||||
$url = trailingslashit( $this->host ) . 'v1/shipping/trackers-batch';
|
$url = trailingslashit( $this->host ) . 'v1/shipping/trackers-batch';
|
||||||
|
|
||||||
$body = array(
|
$body = array(
|
||||||
'trackers' => array( $data ),
|
'trackers' => array( (array) apply_filters( 'woocommerce_paypal_payments_tracking_data_before_sending', $data, $order_id ) ),
|
||||||
);
|
);
|
||||||
|
|
||||||
$args = array(
|
$args = array(
|
||||||
'method' => 'POST',
|
'method' => 'POST',
|
||||||
'headers' => $this->request_headers(),
|
'headers' => $this->request_headers(),
|
||||||
'body' => wp_json_encode( $body ),
|
'body' => wp_json_encode( $body ),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
do_action( 'woocommerce_paypal_payments_before_tracking_is_added', $order_id, $data );
|
||||||
|
|
||||||
$response = $this->request( $url, $args );
|
$response = $this->request( $url, $args );
|
||||||
|
|
||||||
if ( is_wp_error( $response ) ) {
|
if ( is_wp_error( $response ) ) {
|
||||||
|
@ -169,6 +172,8 @@ class OrderTrackingEndpoint {
|
||||||
}
|
}
|
||||||
|
|
||||||
update_post_meta( $order_id, '_ppcp_paypal_tracking_number', $data['tracking_number'] ?? '' );
|
update_post_meta( $order_id, '_ppcp_paypal_tracking_number', $data['tracking_number'] ?? '' );
|
||||||
|
|
||||||
|
do_action( 'woocommerce_paypal_payments_after_tracking_is_added', $order_id, $response );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -243,9 +248,11 @@ class OrderTrackingEndpoint {
|
||||||
$args = array(
|
$args = array(
|
||||||
'method' => 'PUT',
|
'method' => 'PUT',
|
||||||
'headers' => $this->request_headers(),
|
'headers' => $this->request_headers(),
|
||||||
'body' => wp_json_encode( $data ),
|
'body' => wp_json_encode( (array) apply_filters( 'woocommerce_paypal_payments_tracking_data_before_update', $data, $order_id ) ),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
do_action( 'woocommerce_paypal_payments_before_tracking_is_updated', $order_id, $data );
|
||||||
|
|
||||||
$response = $this->request( $url, $args );
|
$response = $this->request( $url, $args );
|
||||||
|
|
||||||
if ( is_wp_error( $response ) ) {
|
if ( is_wp_error( $response ) ) {
|
||||||
|
@ -290,6 +297,8 @@ class OrderTrackingEndpoint {
|
||||||
}
|
}
|
||||||
|
|
||||||
update_post_meta( $order_id, '_ppcp_paypal_tracking_number', $data['tracking_number'] ?? '' );
|
update_post_meta( $order_id, '_ppcp_paypal_tracking_number', $data['tracking_number'] ?? '' );
|
||||||
|
|
||||||
|
do_action( 'woocommerce_paypal_payments_after_tracking_is_updated', $order_id, $response );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -203,12 +203,8 @@ class RenewalHandler {
|
||||||
|
|
||||||
$this->handle_new_order_status( $order, $wc_order );
|
$this->handle_new_order_status( $order, $wc_order );
|
||||||
|
|
||||||
if ( $this->capture_authorized_downloads( $order ) && AuthorizedPaymentsProcessor::SUCCESSFUL === $this->authorized_payments_processor->process( $wc_order ) ) {
|
if ( $this->capture_authorized_downloads( $order ) ) {
|
||||||
$wc_order->add_order_note(
|
$this->authorized_payments_processor->capture_authorized_payment( $wc_order );
|
||||||
__( 'Payment successfully captured.', 'woocommerce-paypal-payments' )
|
|
||||||
);
|
|
||||||
$wc_order->update_meta_data( AuthorizedPaymentsProcessor::CAPTURED_META_KEY, 'true' );
|
|
||||||
$wc_order->update_status( 'completed' );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ use WC_Order;
|
||||||
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\PaymentsEndpoint;
|
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\PaymentsEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\ApiClient\Repository\OrderRepository;
|
use WooCommerce\PayPalCommerce\ApiClient\Repository\OrderRepository;
|
||||||
use WooCommerce\PayPalCommerce\Subscription\FreeTrialHandlerTrait;
|
use WooCommerce\PayPalCommerce\Subscription\FreeTrialHandlerTrait;
|
||||||
|
use WooCommerce\PayPalCommerce\WcGateway\Exception\NotFoundException;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CardButtonGateway;
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CardButtonGateway;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
||||||
|
@ -29,6 +30,8 @@ class PaymentTokenChecker {
|
||||||
|
|
||||||
use FreeTrialHandlerTrait;
|
use FreeTrialHandlerTrait;
|
||||||
|
|
||||||
|
const VAULTING_FAILED_META_KEY = '_ppcp_vaulting_failed';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The payment token repository.
|
* The payment token repository.
|
||||||
*
|
*
|
||||||
|
@ -115,39 +118,74 @@ class PaymentTokenChecker {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$tokens = $this->payment_token_repository->all_for_user_id( $customer_id );
|
if ( $this->is_free_trial_order( $wc_order ) ) {
|
||||||
if ( $tokens ) {
|
if ( in_array( $wc_order->get_payment_method(), array( CreditCardGateway::ID, CardButtonGateway::ID ), true )
|
||||||
try {
|
|| ( PayPalGateway::ID === $wc_order->get_payment_method() && 'card' === $wc_order->get_meta( PayPalGateway::ORDER_PAYMENT_SOURCE_META_KEY ) )
|
||||||
if ( $this->is_free_trial_order( $wc_order ) ) {
|
) {
|
||||||
if ( in_array( $wc_order->get_payment_method(), array( CreditCardGateway::ID, CardButtonGateway::ID ), true )
|
$order = $this->order_repository->for_wc_order( $wc_order );
|
||||||
|| ( PayPalGateway::ID === $wc_order->get_payment_method() && 'card' === $wc_order->get_meta( PayPalGateway::ORDER_PAYMENT_SOURCE_META_KEY ) )
|
$this->authorized_payments_processor->void_authorizations( $order );
|
||||||
) {
|
$wc_order->payment_complete();
|
||||||
$order = $this->order_repository->for_wc_order( $wc_order );
|
|
||||||
$this->authorized_payments_processor->void_authorizations( $order );
|
|
||||||
$wc_order->payment_complete();
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->capture_authorized_payment( $wc_order );
|
|
||||||
} catch ( Exception $exception ) {
|
|
||||||
$this->logger->error( $exception->getMessage() );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->logger->error( "Payment for subscription parent order #{$order_id} was not saved on PayPal." );
|
$tokens = $this->payment_token_repository->all_for_user_id( $customer_id );
|
||||||
|
if ( $tokens ) {
|
||||||
|
try {
|
||||||
|
$this->capture_authorized_payment( $wc_order );
|
||||||
|
} catch ( Exception $exception ) {
|
||||||
|
$this->logger->warning( $exception->getMessage() );
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
return;
|
||||||
$order = $this->order_repository->for_wc_order( $wc_order );
|
|
||||||
$this->authorized_payments_processor->void_authorizations( $order );
|
|
||||||
} catch ( RuntimeException $exception ) {
|
|
||||||
$this->logger->warning( $exception->getMessage() );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->update_failed_status( $wc_order );
|
try {
|
||||||
|
$subscription_behavior_when_fails = $this->settings->get( 'subscription_behavior_when_vault_fails' );
|
||||||
|
} catch ( NotFoundException $exception ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ( $subscription_behavior_when_fails ) {
|
||||||
|
case 'void_auth':
|
||||||
|
$order = $this->order_repository->for_wc_order( $wc_order );
|
||||||
|
$this->authorized_payments_processor->void_authorizations( $order );
|
||||||
|
$this->logger->warning( "Payment for subscription parent order #{$order_id} was not saved at PayPal." );
|
||||||
|
$this->update_failed_status( $wc_order );
|
||||||
|
break;
|
||||||
|
case 'capture_auth':
|
||||||
|
try {
|
||||||
|
$this->capture_authorized_payment( $wc_order );
|
||||||
|
} catch ( Exception $exception ) {
|
||||||
|
$this->logger->warning( $exception->getMessage() );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$subscriptions = function_exists( 'wcs_get_subscriptions_for_order' ) ? wcs_get_subscriptions_for_order( $wc_order ) : array();
|
||||||
|
foreach ( $subscriptions as $subscription ) {
|
||||||
|
try {
|
||||||
|
$subscription->set_requires_manual_renewal( true );
|
||||||
|
$subscription->save();
|
||||||
|
|
||||||
|
$message = __( 'Subscription set to Manual Renewal because payment method was not saved at PayPal.', 'woocommerce-paypal-payments' );
|
||||||
|
$wc_order->add_order_note( $message );
|
||||||
|
|
||||||
|
} catch ( Exception $exception ) {
|
||||||
|
$this->logger->warning( "Could not update payment method on subscription #{$subscription->get_id()} " . $exception->getMessage() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'capture_auth_ignore':
|
||||||
|
try {
|
||||||
|
$this->capture_authorized_payment( $wc_order );
|
||||||
|
} catch ( Exception $exception ) {
|
||||||
|
$this->logger->warning( $exception->getMessage() );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -170,7 +208,7 @@ class PaymentTokenChecker {
|
||||||
* @param WC_Order $wc_order The WC order.
|
* @param WC_Order $wc_order The WC order.
|
||||||
*/
|
*/
|
||||||
private function update_failed_status( WC_Order $wc_order ): void {
|
private function update_failed_status( WC_Order $wc_order ): void {
|
||||||
$error_message = __( 'Could not process order because it was not possible to save the payment on PayPal.', 'woocommerce-paypal-payments' );
|
$error_message = __( 'Subscription payment failed. Payment method was not saved at PayPal.', 'woocommerce-paypal-payments' );
|
||||||
$wc_order->update_status( 'failed', $error_message );
|
$wc_order->update_status( 'failed', $error_message );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -13,7 +13,12 @@ use Dhii\Container\ServiceProvider;
|
||||||
use Dhii\Modular\Module\ModuleInterface;
|
use Dhii\Modular\Module\ModuleInterface;
|
||||||
use Interop\Container\ServiceProviderInterface;
|
use Interop\Container\ServiceProviderInterface;
|
||||||
use Psr\Container\ContainerInterface;
|
use Psr\Container\ContainerInterface;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
use WC_Order;
|
||||||
|
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
||||||
use WooCommerce\PayPalCommerce\Vaulting\Endpoint\DeletePaymentTokenEndpoint;
|
use WooCommerce\PayPalCommerce\Vaulting\Endpoint\DeletePaymentTokenEndpoint;
|
||||||
|
use WooCommerce\PayPalCommerce\WcGateway\Exception\NotFoundException;
|
||||||
|
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class StatusReportModule
|
* Class StatusReportModule
|
||||||
|
@ -35,6 +40,7 @@ class VaultingModule implements ModuleInterface {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*
|
*
|
||||||
* @param ContainerInterface $container A services container instance.
|
* @param ContainerInterface $container A services container instance.
|
||||||
|
* @throws NotFoundException When service could not be found.
|
||||||
*/
|
*/
|
||||||
public function run( ContainerInterface $container ): void {
|
public function run( ContainerInterface $container ): void {
|
||||||
|
|
||||||
|
@ -144,6 +150,100 @@ class VaultingModule implements ModuleInterface {
|
||||||
10,
|
10,
|
||||||
3
|
3
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->filterFailedVaultingEmailsForSubscriptionOrders( $container );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filters the emails when vaulting is failed for subscription orders.
|
||||||
|
*
|
||||||
|
* @param ContainerInterface $container A services container instance.
|
||||||
|
* @throws NotFoundException When service could not be found.
|
||||||
|
*/
|
||||||
|
protected function filterFailedVaultingEmailsForSubscriptionOrders( ContainerInterface $container ):void {
|
||||||
|
add_action(
|
||||||
|
'woocommerce_email_before_order_table',
|
||||||
|
function( WC_Order $order ) use ( $container ) {
|
||||||
|
/**
|
||||||
|
* The SubscriptionHelper.
|
||||||
|
*
|
||||||
|
* @var SubscriptionHelper $subscription_helper
|
||||||
|
*/
|
||||||
|
$subscription_helper = $container->get( 'subscription.helper' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The logger.
|
||||||
|
*
|
||||||
|
* @var LoggerInterface $logger
|
||||||
|
*/
|
||||||
|
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Gateway settings.
|
||||||
|
*
|
||||||
|
* @var Settings $settings
|
||||||
|
*/
|
||||||
|
$settings = $container->get( 'wcgateway.settings' );
|
||||||
|
|
||||||
|
$vault_failed = get_post_meta( $order->get_id(), PaymentTokenChecker::VAULTING_FAILED_META_KEY );
|
||||||
|
if ( $subscription_helper->has_subscription( $order->get_id() ) && ! empty( $vault_failed ) ) {
|
||||||
|
$subscription_behavior_when_vault_fails_setting_name = 'subscription_behavior_when_vault_fails';
|
||||||
|
$subscription_behavior_when_vault_fails = $settings->get( $subscription_behavior_when_vault_fails_setting_name );
|
||||||
|
|
||||||
|
$logger->info( "Adding vaulting failure info to email for order #{$order->get_id()}." );
|
||||||
|
|
||||||
|
if ( $subscription_behavior_when_vault_fails === 'void_auth' ) {
|
||||||
|
echo wp_kses_post( '<p>' . __( 'The subscription payment failed because the payment method could not be saved. Please try again with a different payment method.', 'woocommerce-paypal-payments' ) . '</p>' );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $subscription_behavior_when_vault_fails === 'capture_auth' ) {
|
||||||
|
echo wp_kses_post( '<p>' . __( 'The subscription has been activated, but the payment method could not be saved. Please contact the merchant to save a payment method for automatic subscription renewal payments.', 'woocommerce-paypal-payments' ) . '</p>' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
add_action(
|
||||||
|
'woocommerce_email_after_order_table',
|
||||||
|
function( WC_Order $order ) use ( $container ) {
|
||||||
|
/**
|
||||||
|
* The SubscriptionHelper.
|
||||||
|
*
|
||||||
|
* @var SubscriptionHelper $subscription_helper
|
||||||
|
*/
|
||||||
|
$subscription_helper = $container->get( 'subscription.helper' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The logger.
|
||||||
|
*
|
||||||
|
* @var LoggerInterface $logger
|
||||||
|
*/
|
||||||
|
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Gateway settings.
|
||||||
|
*
|
||||||
|
* @var Settings $settings
|
||||||
|
*/
|
||||||
|
$settings = $container->get( 'wcgateway.settings' );
|
||||||
|
|
||||||
|
$vault_failed = get_post_meta( $order->get_id(), PaymentTokenChecker::VAULTING_FAILED_META_KEY );
|
||||||
|
if ( $subscription_helper->has_subscription( $order->get_id() ) && ! empty( $vault_failed ) ) {
|
||||||
|
$subscription_behavior_when_vault_fails_setting_name = 'subscription_behavior_when_vault_fails';
|
||||||
|
$subscription_behavior_when_vault_fails = $settings->get( $subscription_behavior_when_vault_fails_setting_name );
|
||||||
|
|
||||||
|
$logger->info( "Changing subscription auto-renewal status for order #{$order->get_id()}." );
|
||||||
|
|
||||||
|
if ( $subscription_behavior_when_vault_fails === 'capture_auth' ) {
|
||||||
|
$subscriptions = function_exists( 'wcs_get_subscriptions_for_order' ) ? wcs_get_subscriptions_for_order( $order->get_id() ) : array();
|
||||||
|
foreach ( $subscriptions as $subscription ) {
|
||||||
|
$subscription->set_requires_manual_renewal( true );
|
||||||
|
$subscription->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -69,5 +69,9 @@
|
||||||
togglePayLater()
|
togglePayLater()
|
||||||
|
|
||||||
vaultingCheckboxes.forEach(node => node.addEventListener('change', togglePayLater));
|
vaultingCheckboxes.forEach(node => node.addEventListener('change', togglePayLater));
|
||||||
|
|
||||||
|
if(PayPalCommerceGatewaySettings.is_subscriptions_plugin_active !== '1') {
|
||||||
|
document.getElementById('field-subscription_behavior_when_vault_fails').style.display = 'none';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -243,6 +243,14 @@ return array(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$dcc_product_status = $container->get( 'wcgateway.helper.dcc-product-status' );
|
||||||
|
assert( $dcc_product_status instanceof DCCProductStatus );
|
||||||
|
$dcc_applies = $container->get( 'api.helpers.dccapplies' );
|
||||||
|
assert( $dcc_applies instanceof DccApplies );
|
||||||
|
if ( ! $dcc_product_status->dcc_is_active() || ! $dcc_applies->for_country_currency() ) {
|
||||||
|
unset( $sections['ppcp-credit-card-gateway'] );
|
||||||
|
}
|
||||||
|
|
||||||
return $sections;
|
return $sections;
|
||||||
},
|
},
|
||||||
'wcgateway.settings.status' => static function ( ContainerInterface $container ): SettingsStatus {
|
'wcgateway.settings.status' => static function ( ContainerInterface $container ): SettingsStatus {
|
||||||
|
@ -394,7 +402,7 @@ return array(
|
||||||
assert( $onboarding_options_renderer instanceof OnboardingOptionsRenderer );
|
assert( $onboarding_options_renderer instanceof OnboardingOptionsRenderer );
|
||||||
|
|
||||||
$fields = array(
|
$fields = array(
|
||||||
'checkout_settings_heading' => array(
|
'checkout_settings_heading' => array(
|
||||||
'heading' => __( 'PayPal Checkout Settings', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'PayPal Checkout Settings', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'screens' => array(
|
'screens' => array(
|
||||||
|
@ -404,7 +412,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'title' => array(
|
'title' => array(
|
||||||
'title' => __( 'Title', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Title', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'description' => __(
|
'description' => __(
|
||||||
|
@ -420,7 +428,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'dcc_enabled' => array(
|
'dcc_enabled' => array(
|
||||||
'title' => __( 'Enable/Disable', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Enable/Disable', 'woocommerce-paypal-payments' ),
|
||||||
'desc_tip' => true,
|
'desc_tip' => true,
|
||||||
'description' => __( 'Once enabled, the Credit Card option will show up in the checkout.', 'woocommerce-paypal-payments' ),
|
'description' => __( 'Once enabled, the Credit Card option will show up in the checkout.', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -435,7 +443,7 @@ return array(
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'dcc_gateway_title' => array(
|
'dcc_gateway_title' => array(
|
||||||
'title' => __( 'Title', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Title', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'description' => __(
|
'description' => __(
|
||||||
|
@ -452,7 +460,7 @@ return array(
|
||||||
),
|
),
|
||||||
'gateway' => 'dcc',
|
'gateway' => 'dcc',
|
||||||
),
|
),
|
||||||
'description' => array(
|
'description' => array(
|
||||||
'title' => __( 'Description', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Description', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'desc_tip' => true,
|
'desc_tip' => true,
|
||||||
|
@ -471,7 +479,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'intent' => array(
|
'intent' => array(
|
||||||
'title' => __( 'Intent', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Intent', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -493,7 +501,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'capture_for_virtual_only' => array(
|
'capture_for_virtual_only' => array(
|
||||||
'title' => __( 'Capture Virtual-Only Orders ', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Capture Virtual-Only Orders ', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'default' => false,
|
'default' => false,
|
||||||
|
@ -510,7 +518,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'payee_preferred' => array(
|
'payee_preferred' => array(
|
||||||
'title' => __( 'Instant Payments ', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Instant Payments ', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'default' => false,
|
'default' => false,
|
||||||
|
@ -527,7 +535,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'brand_name' => array(
|
'brand_name' => array(
|
||||||
'title' => __( 'Brand Name', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Brand Name', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'default' => get_bloginfo( 'name' ),
|
'default' => get_bloginfo( 'name' ),
|
||||||
|
@ -543,7 +551,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'landing_page' => array(
|
'landing_page' => array(
|
||||||
'title' => __( 'Landing Page', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Landing Page', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -565,7 +573,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'disable_funding' => array(
|
'disable_funding' => array(
|
||||||
'title' => __( 'Hide Funding Source(s)', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Hide Funding Source(s)', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-multiselect',
|
'type' => 'ppcp-multiselect',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -589,7 +597,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'vault_enabled' => array(
|
'vault_enabled' => array(
|
||||||
'title' => __( 'Vaulting', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Vaulting', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'desc_tip' => true,
|
'desc_tip' => true,
|
||||||
|
@ -603,7 +611,27 @@ return array(
|
||||||
'gateway' => array( 'paypal', 'dcc' ),
|
'gateway' => array( 'paypal', 'dcc' ),
|
||||||
'input_class' => $container->get( 'wcgateway.helper.vaulting-scope' ) ? array() : array( 'ppcp-disabled-checkbox' ),
|
'input_class' => $container->get( 'wcgateway.helper.vaulting-scope' ) ? array() : array( 'ppcp-disabled-checkbox' ),
|
||||||
),
|
),
|
||||||
'card_billing_data_mode' => array(
|
'subscription_behavior_when_vault_fails' => array(
|
||||||
|
'title' => __( 'Subscription capture behavior if Vault fails', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'void_auth',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __( 'By default, subscription payments are captured only when saving the payment method was successful. Without a saved payment method, automatic renewal payments are not possible.', 'woocommerce-paypal-payments' ),
|
||||||
|
'description_with_tip' => __( 'Determines whether authorized payments for subscription orders are captured or voided if there is no saved payment method. This only applies when the intent Capture is used for the subscription order.', 'woocommerce-paypal-payments' ),
|
||||||
|
'options' => array(
|
||||||
|
'void_auth' => __( 'Void authorization & fail the order/subscription', 'woocommerce-paypal-payments' ),
|
||||||
|
'capture_auth' => __( 'Capture authorized payment & set subscription to Manual Renewal', 'woocommerce-paypal-payments' ),
|
||||||
|
'capture_auth_ignore' => __( 'Capture authorized payment & disregard missing payment method', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => array( 'paypal', 'dcc' ),
|
||||||
|
),
|
||||||
|
'card_billing_data_mode' => array(
|
||||||
'title' => __( 'Card billing data handling', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Card billing data handling', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -623,7 +651,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => array( 'paypal', CardButtonGateway::ID ),
|
'gateway' => array( 'paypal', CardButtonGateway::ID ),
|
||||||
),
|
),
|
||||||
'allow_card_button_gateway' => array(
|
'allow_card_button_gateway' => array(
|
||||||
'title' => __( 'Separate Card Button from PayPal gateway', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Separate Card Button from PayPal gateway', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'desc_tip' => true,
|
'desc_tip' => true,
|
||||||
|
@ -639,7 +667,7 @@ return array(
|
||||||
),
|
),
|
||||||
|
|
||||||
// General button styles.
|
// General button styles.
|
||||||
'button_style_heading' => array(
|
'button_style_heading' => array(
|
||||||
'heading' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'screens' => array(
|
'screens' => array(
|
||||||
|
@ -650,7 +678,7 @@ return array(
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
'description' => __( 'Customize the appearance of PayPal Checkout on the checkout page.', 'woocommerce-paypal-payments' ),
|
'description' => __( 'Customize the appearance of PayPal Checkout on the checkout page.', 'woocommerce-paypal-payments' ),
|
||||||
),
|
),
|
||||||
'button_enabled' => array(
|
'button_enabled' => array(
|
||||||
'title' => __( 'Enable buttons on Checkout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Enable buttons on Checkout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => __( 'Enable on Checkout', 'woocommerce-paypal-payments' ),
|
'label' => __( 'Enable on Checkout', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -662,7 +690,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_layout' => array(
|
'button_layout' => array(
|
||||||
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -684,7 +712,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_tagline' => array(
|
'button_tagline' => array(
|
||||||
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'default' => true,
|
'default' => true,
|
||||||
|
@ -701,7 +729,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_label' => array(
|
'button_label' => array(
|
||||||
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -728,7 +756,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_color' => array(
|
'button_color' => array(
|
||||||
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -752,7 +780,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_shape' => array(
|
'button_shape' => array(
|
||||||
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -774,7 +802,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_heading' => array(
|
'message_heading' => array(
|
||||||
'heading' => __( 'Pay Later on Checkout', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'Pay Later on Checkout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'screens' => array(
|
'screens' => array(
|
||||||
|
@ -786,7 +814,7 @@ return array(
|
||||||
'description' => str_replace( '<a>', '<a href="' . $messages_disclaimers->link_for_country() . '" target="_blank">', __( 'Displays Pay Later messaging for available offers. Restrictions apply. <a>Click here to learn more</a>. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
|
'description' => str_replace( '<a>', '<a href="' . $messages_disclaimers->link_for_country() . '" target="_blank">', __( 'Displays Pay Later messaging for available offers. Restrictions apply. <a>Click here to learn more</a>. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
|
||||||
'class' => array( 'ppcp-subheading' ),
|
'class' => array( 'ppcp-subheading' ),
|
||||||
),
|
),
|
||||||
'message_enabled' => array(
|
'message_enabled' => array(
|
||||||
'title' => __( 'Enable message on Checkout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Enable message on Checkout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => sprintf( $container->get( 'wcgateway.settings.fields.pay-later-label' ), __( 'Enable on Checkout', 'woocommerce-paypal-payments' ) ),
|
'label' => sprintf( $container->get( 'wcgateway.settings.fields.pay-later-label' ), __( 'Enable on Checkout', 'woocommerce-paypal-payments' ) ),
|
||||||
|
@ -798,7 +826,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_layout' => array(
|
'message_layout' => array(
|
||||||
'title' => __( 'Pay Later Messaging layout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging layout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -820,7 +848,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_logo' => array(
|
'message_logo' => array(
|
||||||
'title' => __( 'Pay Later Messaging logo', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging logo', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -844,7 +872,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_position' => array(
|
'message_position' => array(
|
||||||
'title' => __( 'Pay Later Messaging logo position', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging logo position', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -867,7 +895,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_color' => array(
|
'message_color' => array(
|
||||||
'title' => __( 'Pay Later Messaging text color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging text color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -891,7 +919,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_flex_color' => array(
|
'message_flex_color' => array(
|
||||||
'title' => __( 'Pay Later Messaging color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -918,7 +946,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_flex_ratio' => array(
|
'message_flex_ratio' => array(
|
||||||
'title' => __( 'Pay Later Messaging ratio', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging ratio', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -944,7 +972,7 @@ return array(
|
||||||
),
|
),
|
||||||
|
|
||||||
// Single product page.
|
// Single product page.
|
||||||
'button_product_heading' => array(
|
'button_product_heading' => array(
|
||||||
'heading' => __( 'Single Product Page', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'Single Product Page', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'screens' => array(
|
'screens' => array(
|
||||||
|
@ -955,7 +983,7 @@ return array(
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
'description' => __( 'Customize the appearance of PayPal Checkout on the single product page.', 'woocommerce-paypal-payments' ),
|
'description' => __( 'Customize the appearance of PayPal Checkout on the single product page.', 'woocommerce-paypal-payments' ),
|
||||||
),
|
),
|
||||||
'button_product_enabled' => array(
|
'button_product_enabled' => array(
|
||||||
'title' => __( 'Enable buttons on Single Product', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Enable buttons on Single Product', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => __( 'Enable on Single Product', 'woocommerce-paypal-payments' ),
|
'label' => __( 'Enable on Single Product', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -967,7 +995,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_product_layout' => array(
|
'button_product_layout' => array(
|
||||||
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -989,7 +1017,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_product_tagline' => array(
|
'button_product_tagline' => array(
|
||||||
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -1006,7 +1034,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_product_label' => array(
|
'button_product_label' => array(
|
||||||
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1033,7 +1061,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_product_color' => array(
|
'button_product_color' => array(
|
||||||
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1057,7 +1085,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_product_shape' => array(
|
'button_product_shape' => array(
|
||||||
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1080,7 +1108,7 @@ return array(
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
|
|
||||||
'message_product_heading' => array(
|
'message_product_heading' => array(
|
||||||
'heading' => __( 'Pay Later on Single Product Page', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'Pay Later on Single Product Page', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'screens' => array(
|
'screens' => array(
|
||||||
|
@ -1092,7 +1120,7 @@ return array(
|
||||||
'description' => str_replace( '<a>', '<a href="' . $messages_disclaimers->link_for_country() . '" target="_blank">', __( 'Displays Pay Later messaging for available offers. Restrictions apply. <a>Click here to learn more</a>. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
|
'description' => str_replace( '<a>', '<a href="' . $messages_disclaimers->link_for_country() . '" target="_blank">', __( 'Displays Pay Later messaging for available offers. Restrictions apply. <a>Click here to learn more</a>. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
|
||||||
'class' => array( 'ppcp-subheading' ),
|
'class' => array( 'ppcp-subheading' ),
|
||||||
),
|
),
|
||||||
'message_product_enabled' => array(
|
'message_product_enabled' => array(
|
||||||
'title' => __( 'Enable message on Single Product', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Enable message on Single Product', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => sprintf( $container->get( 'wcgateway.settings.fields.pay-later-label' ), __( 'Enable on Single Product', 'woocommerce-paypal-payments' ) ),
|
'label' => sprintf( $container->get( 'wcgateway.settings.fields.pay-later-label' ), __( 'Enable on Single Product', 'woocommerce-paypal-payments' ) ),
|
||||||
|
@ -1104,7 +1132,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_product_layout' => array(
|
'message_product_layout' => array(
|
||||||
'title' => __( 'Pay Later Messaging layout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging layout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1126,7 +1154,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_product_logo' => array(
|
'message_product_logo' => array(
|
||||||
'title' => __( 'Pay Later Messaging logo', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging logo', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1150,7 +1178,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_product_position' => array(
|
'message_product_position' => array(
|
||||||
'title' => __( 'Pay Later Messaging logo position', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging logo position', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1173,7 +1201,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_product_color' => array(
|
'message_product_color' => array(
|
||||||
'title' => __( 'Pay Later Messaging text color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging text color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1197,7 +1225,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_product_flex_color' => array(
|
'message_product_flex_color' => array(
|
||||||
'title' => __( 'Pay Later Messaging color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1224,7 +1252,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_product_flex_ratio' => array(
|
'message_product_flex_ratio' => array(
|
||||||
'title' => __( 'Pay Later Messaging ratio', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging ratio', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1250,7 +1278,7 @@ return array(
|
||||||
),
|
),
|
||||||
|
|
||||||
// Cart settings.
|
// Cart settings.
|
||||||
'button_cart_heading' => array(
|
'button_cart_heading' => array(
|
||||||
'heading' => __( 'Cart', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'Cart', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'screens' => array(
|
'screens' => array(
|
||||||
|
@ -1261,7 +1289,7 @@ return array(
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
'description' => __( 'Customize the appearance of PayPal Checkout on the cart page.', 'woocommerce-paypal-payments' ),
|
'description' => __( 'Customize the appearance of PayPal Checkout on the cart page.', 'woocommerce-paypal-payments' ),
|
||||||
),
|
),
|
||||||
'button_cart_enabled' => array(
|
'button_cart_enabled' => array(
|
||||||
'title' => __( 'Buttons on Cart', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Buttons on Cart', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => __( 'Enable on Cart', 'woocommerce-paypal-payments' ),
|
'label' => __( 'Enable on Cart', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -1273,7 +1301,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_cart_layout' => array(
|
'button_cart_layout' => array(
|
||||||
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1295,7 +1323,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_cart_tagline' => array(
|
'button_cart_tagline' => array(
|
||||||
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -1312,7 +1340,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_cart_label' => array(
|
'button_cart_label' => array(
|
||||||
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1339,7 +1367,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_cart_color' => array(
|
'button_cart_color' => array(
|
||||||
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1363,7 +1391,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_cart_shape' => array(
|
'button_cart_shape' => array(
|
||||||
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1386,7 +1414,7 @@ return array(
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
|
|
||||||
'message_cart_heading' => array(
|
'message_cart_heading' => array(
|
||||||
'heading' => __( 'Pay Later on Cart', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'Pay Later on Cart', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'screens' => array(
|
'screens' => array(
|
||||||
|
@ -1398,7 +1426,7 @@ return array(
|
||||||
'description' => str_replace( '<a>', '<a href="' . $messages_disclaimers->link_for_country() . '" target="_blank">', __( 'Displays Pay Later messaging for available offers. Restrictions apply. <a>Click here to learn more</a>. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
|
'description' => str_replace( '<a>', '<a href="' . $messages_disclaimers->link_for_country() . '" target="_blank">', __( 'Displays Pay Later messaging for available offers. Restrictions apply. <a>Click here to learn more</a>. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
|
||||||
'class' => array( 'ppcp-subheading' ),
|
'class' => array( 'ppcp-subheading' ),
|
||||||
),
|
),
|
||||||
'message_cart_enabled' => array(
|
'message_cart_enabled' => array(
|
||||||
'title' => __( 'Enable message on Cart', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Enable message on Cart', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => sprintf( $container->get( 'wcgateway.settings.fields.pay-later-label' ), __( 'Enable on Cart', 'woocommerce-paypal-payments' ) ),
|
'label' => sprintf( $container->get( 'wcgateway.settings.fields.pay-later-label' ), __( 'Enable on Cart', 'woocommerce-paypal-payments' ) ),
|
||||||
|
@ -1410,7 +1438,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_cart_layout' => array(
|
'message_cart_layout' => array(
|
||||||
'title' => __( 'Pay Later Messaging layout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging layout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1432,7 +1460,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_cart_logo' => array(
|
'message_cart_logo' => array(
|
||||||
'title' => __( 'Pay Later Messaging logo', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging logo', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1456,7 +1484,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_cart_position' => array(
|
'message_cart_position' => array(
|
||||||
'title' => __( 'Pay Later Messaging logo position', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging logo position', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1479,7 +1507,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_cart_color' => array(
|
'message_cart_color' => array(
|
||||||
'title' => __( 'Pay Later Messaging text color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging text color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1503,7 +1531,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_cart_flex_color' => array(
|
'message_cart_flex_color' => array(
|
||||||
'title' => __( 'Pay Later Messaging color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1530,7 +1558,7 @@ return array(
|
||||||
'requirements' => array( 'messages' ),
|
'requirements' => array( 'messages' ),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'message_cart_flex_ratio' => array(
|
'message_cart_flex_ratio' => array(
|
||||||
'title' => __( 'Pay Later Messaging ratio', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Pay Later Messaging ratio', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1556,7 +1584,7 @@ return array(
|
||||||
),
|
),
|
||||||
|
|
||||||
// Mini cart settings.
|
// Mini cart settings.
|
||||||
'button_mini-cart_heading' => array(
|
'button_mini-cart_heading' => array(
|
||||||
'heading' => __( 'Mini Cart', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'Mini Cart', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'screens' => array(
|
'screens' => array(
|
||||||
|
@ -1567,7 +1595,7 @@ return array(
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
'description' => __( 'Customize the appearance of PayPal Checkout on the Mini Cart.', 'woocommerce-paypal-payments' ),
|
'description' => __( 'Customize the appearance of PayPal Checkout on the Mini Cart.', 'woocommerce-paypal-payments' ),
|
||||||
),
|
),
|
||||||
'button_mini-cart_enabled' => array(
|
'button_mini-cart_enabled' => array(
|
||||||
'title' => __( 'Buttons on Mini Cart', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Buttons on Mini Cart', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => __( 'Enable on Mini Cart', 'woocommerce-paypal-payments' ),
|
'label' => __( 'Enable on Mini Cart', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -1579,7 +1607,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_mini-cart_layout' => array(
|
'button_mini-cart_layout' => array(
|
||||||
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1601,7 +1629,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_mini-cart_tagline' => array(
|
'button_mini-cart_tagline' => array(
|
||||||
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -1618,7 +1646,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_mini-cart_label' => array(
|
'button_mini-cart_label' => array(
|
||||||
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1645,7 +1673,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_mini-cart_color' => array(
|
'button_mini-cart_color' => array(
|
||||||
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1669,7 +1697,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_mini-cart_shape' => array(
|
'button_mini-cart_shape' => array(
|
||||||
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1691,7 +1719,7 @@ return array(
|
||||||
'requirements' => array(),
|
'requirements' => array(),
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
'button_mini-cart_height' => array(
|
'button_mini-cart_height' => array(
|
||||||
'title' => __( 'Button Height', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Button Height', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'default' => '35',
|
'default' => '35',
|
||||||
|
@ -1705,7 +1733,7 @@ return array(
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
|
|
||||||
'disable_cards' => array(
|
'disable_cards' => array(
|
||||||
'title' => __( 'Disable specific credit cards', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Disable specific credit cards', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-multiselect',
|
'type' => 'ppcp-multiselect',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1733,7 +1761,7 @@ return array(
|
||||||
),
|
),
|
||||||
'gateway' => 'dcc',
|
'gateway' => 'dcc',
|
||||||
),
|
),
|
||||||
'card_icons' => array(
|
'card_icons' => array(
|
||||||
'title' => __( 'Show logo of the following credit cards', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Show logo of the following credit cards', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-multiselect',
|
'type' => 'ppcp-multiselect',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
|
@ -1763,7 +1791,7 @@ return array(
|
||||||
),
|
),
|
||||||
'gateway' => 'dcc',
|
'gateway' => 'dcc',
|
||||||
),
|
),
|
||||||
'3d_secure_heading' => array(
|
'3d_secure_heading' => array(
|
||||||
'heading' => __( '3D Secure', 'woocommerce-paypal-payments' ),
|
'heading' => __( '3D Secure', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-heading',
|
'type' => 'ppcp-heading',
|
||||||
'description' => wp_kses_post(
|
'description' => wp_kses_post(
|
||||||
|
@ -1791,7 +1819,7 @@ return array(
|
||||||
),
|
),
|
||||||
'gateway' => 'dcc',
|
'gateway' => 'dcc',
|
||||||
),
|
),
|
||||||
'3d_secure_contingency' => array(
|
'3d_secure_contingency' => array(
|
||||||
'title' => __( 'Contingency for 3D Secure', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Contingency for 3D Secure', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'description' => sprintf(
|
'description' => sprintf(
|
||||||
|
@ -1923,7 +1951,12 @@ return array(
|
||||||
|
|
||||||
$settings = $container->get( 'wcgateway.settings' );
|
$settings = $container->get( 'wcgateway.settings' );
|
||||||
$partner_endpoint = $container->get( 'api.endpoint.partners' );
|
$partner_endpoint = $container->get( 'api.endpoint.partners' );
|
||||||
return new DCCProductStatus( $settings, $partner_endpoint, $container->get( 'dcc.status-cache' ) );
|
return new DCCProductStatus(
|
||||||
|
$settings,
|
||||||
|
$partner_endpoint,
|
||||||
|
$container->get( 'dcc.status-cache' ),
|
||||||
|
$container->get( 'api.helpers.dccapplies' )
|
||||||
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
'button.helper.messages-disclaimers' => static function ( ContainerInterface $container ): MessagesDisclaimers {
|
'button.helper.messages-disclaimers' => static function ( ContainerInterface $container ): MessagesDisclaimers {
|
||||||
|
@ -2056,7 +2089,12 @@ return array(
|
||||||
},
|
},
|
||||||
|
|
||||||
'button.helper.vaulting-label' => static function ( ContainerInterface $container ): string {
|
'button.helper.vaulting-label' => static function ( ContainerInterface $container ): string {
|
||||||
$vaulting_label = __( 'Enable saved cards and subscription features on your store.', 'woocommerce-paypal-payments' );
|
$vaulting_label = sprintf(
|
||||||
|
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
||||||
|
__( 'Enable saved cards, PayPal accounts, and subscription features on your store. Payment methods are saved in the secure %1$sPayPal Vault%2$s.', 'woocommerce-paypal-payments' ),
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#vaulting-saving-a-payment-method" target="_blank">',
|
||||||
|
'</a>'
|
||||||
|
);
|
||||||
|
|
||||||
if ( ! $container->get( 'wcgateway.helper.vaulting-scope' ) ) {
|
if ( ! $container->get( 'wcgateway.helper.vaulting-scope' ) ) {
|
||||||
$vaulting_label .= sprintf(
|
$vaulting_label .= sprintf(
|
||||||
|
@ -2071,7 +2109,20 @@ return array(
|
||||||
}
|
}
|
||||||
|
|
||||||
$vaulting_label .= '<p class="description">';
|
$vaulting_label .= '<p class="description">';
|
||||||
$vaulting_label .= __( 'This will disable all Pay Later messaging on your site.', 'woocommerce-paypal-payments' );
|
$vaulting_label .= sprintf(
|
||||||
|
// translators: %1$s, %2$s, %3$s and %4$s are the opening and closing of HTML <a> tag.
|
||||||
|
__( 'This will disable all %1$sPay Later%2$s features and %3$sAlternative Payment Methods%4$s on your site.', 'woocommerce-paypal-payments' ),
|
||||||
|
'<a
|
||||||
|
href="https://woocommerce.com/document/woocommerce-paypal-payments/#pay-later"
|
||||||
|
target="_blank"
|
||||||
|
>',
|
||||||
|
'</a>',
|
||||||
|
'<a
|
||||||
|
href="https://woocommerce.com/document/woocommerce-paypal-payments/#alternative-payment-methods"
|
||||||
|
target="_blank"
|
||||||
|
>',
|
||||||
|
'</a>'
|
||||||
|
);
|
||||||
$vaulting_label .= '</p>';
|
$vaulting_label .= '</p>';
|
||||||
|
|
||||||
return $vaulting_label;
|
return $vaulting_label;
|
||||||
|
|
|
@ -9,7 +9,7 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace WooCommerce\PayPalCommerce\WcGateway\Assets;
|
namespace WooCommerce\PayPalCommerce\WcGateway\Assets;
|
||||||
|
|
||||||
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class SettingsPageAssets
|
* Class SettingsPageAssets
|
||||||
|
@ -30,15 +30,24 @@ class SettingsPageAssets {
|
||||||
*/
|
*/
|
||||||
private $version;
|
private $version;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The subscription helper.
|
||||||
|
*
|
||||||
|
* @var SubscriptionHelper
|
||||||
|
*/
|
||||||
|
protected $subscription_helper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assets constructor.
|
* Assets constructor.
|
||||||
*
|
*
|
||||||
* @param string $module_url The url of this module.
|
* @param string $module_url The url of this module.
|
||||||
* @param string $version The assets version.
|
* @param string $version The assets version.
|
||||||
|
* @param SubscriptionHelper $subscription_helper The subscription helper.
|
||||||
*/
|
*/
|
||||||
public function __construct( string $module_url, string $version ) {
|
public function __construct( string $module_url, string $version, SubscriptionHelper $subscription_helper ) {
|
||||||
$this->module_url = $module_url;
|
$this->module_url = $module_url;
|
||||||
$this->version = $version;
|
$this->version = $version;
|
||||||
|
$this->subscription_helper = $subscription_helper;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -96,5 +105,14 @@ class SettingsPageAssets {
|
||||||
$this->version,
|
$this->version,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Intent is configured with Authorize and Capture Virtual-Only Orders is not set.
|
||||||
|
wp_localize_script(
|
||||||
|
'ppcp-gateway-settings',
|
||||||
|
'PayPalCommerceGatewaySettings',
|
||||||
|
array(
|
||||||
|
'is_subscriptions_plugin_active' => $this->subscription_helper->plugin_is_active(),
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,8 +53,16 @@ trait ProcessPaymentTrait {
|
||||||
* @param int $customer_id The customer ID.
|
* @param int $customer_id The customer ID.
|
||||||
*/
|
*/
|
||||||
protected function schedule_saved_payment_check( int $wc_order_id, int $customer_id ): void {
|
protected function schedule_saved_payment_check( int $wc_order_id, int $customer_id ): void {
|
||||||
|
$timestamp = 1 * MINUTE_IN_SECONDS;
|
||||||
|
if (
|
||||||
|
$this->config->has( 'subscription_behavior_when_vault_fails' )
|
||||||
|
&& $this->config->get( 'subscription_behavior_when_vault_fails' ) === 'capture_auth'
|
||||||
|
) {
|
||||||
|
$timestamp = 0;
|
||||||
|
}
|
||||||
|
|
||||||
as_schedule_single_action(
|
as_schedule_single_action(
|
||||||
time() + ( 1 * MINUTE_IN_SECONDS ),
|
time() + $timestamp,
|
||||||
'woocommerce_paypal_payments_check_saved_payment',
|
'woocommerce_paypal_payments_check_saved_payment',
|
||||||
array(
|
array(
|
||||||
'order_id' => $wc_order_id,
|
'order_id' => $wc_order_id,
|
||||||
|
|
|
@ -13,6 +13,7 @@ use Throwable;
|
||||||
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\PartnersEndpoint;
|
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\PartnersEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\ApiClient\Entity\SellerStatusProduct;
|
use WooCommerce\PayPalCommerce\ApiClient\Entity\SellerStatusProduct;
|
||||||
use WooCommerce\PayPalCommerce\ApiClient\Helper\Cache;
|
use WooCommerce\PayPalCommerce\ApiClient\Helper\Cache;
|
||||||
|
use WooCommerce\PayPalCommerce\ApiClient\Helper\DccApplies;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49,21 +50,31 @@ class DCCProductStatus {
|
||||||
*/
|
*/
|
||||||
private $partners_endpoint;
|
private $partners_endpoint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The dcc applies helper.
|
||||||
|
*
|
||||||
|
* @var DccApplies
|
||||||
|
*/
|
||||||
|
protected $dcc_applies;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DccProductStatus constructor.
|
* DccProductStatus constructor.
|
||||||
*
|
*
|
||||||
* @param Settings $settings The Settings.
|
* @param Settings $settings The Settings.
|
||||||
* @param PartnersEndpoint $partners_endpoint The Partner Endpoint.
|
* @param PartnersEndpoint $partners_endpoint The Partner Endpoint.
|
||||||
* @param Cache $cache The cache.
|
* @param Cache $cache The cache.
|
||||||
|
* @param DccApplies $dcc_applies The dcc applies helper.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
Settings $settings,
|
Settings $settings,
|
||||||
PartnersEndpoint $partners_endpoint,
|
PartnersEndpoint $partners_endpoint,
|
||||||
Cache $cache
|
Cache $cache,
|
||||||
|
DccApplies $dcc_applies
|
||||||
) {
|
) {
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
$this->partners_endpoint = $partners_endpoint;
|
$this->partners_endpoint = $partners_endpoint;
|
||||||
$this->cache = $cache;
|
$this->cache = $cache;
|
||||||
|
$this->dcc_applies = $dcc_applies;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -113,7 +124,12 @@ class DCCProductStatus {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->cache->set( self::DCC_STATUS_CACHE_KEY, false, 3 * MONTH_IN_SECONDS );
|
|
||||||
|
$expiration = 3 * MONTH_IN_SECONDS;
|
||||||
|
if ( $this->dcc_applies->for_country_currency() ) {
|
||||||
|
$expiration = 3 * HOUR_IN_SECONDS;
|
||||||
|
}
|
||||||
|
$this->cache->set( self::DCC_STATUS_CACHE_KEY, false, $expiration );
|
||||||
|
|
||||||
$this->current_status_cache = false;
|
$this->current_status_cache = false;
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -210,12 +210,8 @@ class OrderProcessor {
|
||||||
|
|
||||||
$this->handle_new_order_status( $order, $wc_order );
|
$this->handle_new_order_status( $order, $wc_order );
|
||||||
|
|
||||||
if ( $this->capture_authorized_downloads( $order ) && AuthorizedPaymentsProcessor::SUCCESSFUL === $this->authorized_payments_processor->process( $wc_order ) ) {
|
if ( $this->capture_authorized_downloads( $order ) ) {
|
||||||
$wc_order->add_order_note(
|
$this->authorized_payments_processor->capture_authorized_payment( $wc_order );
|
||||||
__( 'Payment successfully captured.', 'woocommerce-paypal-payments' )
|
|
||||||
);
|
|
||||||
$wc_order->update_meta_data( AuthorizedPaymentsProcessor::CAPTURED_META_KEY, 'true' );
|
|
||||||
$wc_order->update_status( 'completed' );
|
|
||||||
}
|
}
|
||||||
$this->last_error = '';
|
$this->last_error = '';
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -281,12 +281,15 @@ class SettingsListener {
|
||||||
|
|
||||||
$credentials_change_status = null; // Cannot detect on Card Processing page.
|
$credentials_change_status = null; // Cannot detect on Card Processing page.
|
||||||
|
|
||||||
if ( PayPalGateway::ID === $this->page_id || Settings::CONNECTION_TAB_ID === $this->page_id ) {
|
if ( Settings::CONNECTION_TAB_ID === $this->page_id ) {
|
||||||
$settings['enabled'] = isset( $_POST['woocommerce_ppcp-gateway_enabled'] )
|
|
||||||
&& 1 === absint( $_POST['woocommerce_ppcp-gateway_enabled'] );
|
|
||||||
|
|
||||||
$credentials_change_status = $this->determine_credentials_change_status( $settings );
|
$credentials_change_status = $this->determine_credentials_change_status( $settings );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( PayPalGateway::ID === $this->page_id ) {
|
||||||
|
$settings['enabled'] = isset( $_POST['woocommerce_ppcp-gateway_enabled'] )
|
||||||
|
&& 1 === absint( $_POST['woocommerce_ppcp-gateway_enabled'] );
|
||||||
|
}
|
||||||
|
|
||||||
// phpcs:enable phpcs:disable WordPress.Security.NonceVerification.Missing
|
// phpcs:enable phpcs:disable WordPress.Security.NonceVerification.Missing
|
||||||
// phpcs:enable phpcs:disable WordPress.Security.NonceVerification.Missing
|
// phpcs:enable phpcs:disable WordPress.Security.NonceVerification.Missing
|
||||||
if ( $credentials_change_status ) {
|
if ( $credentials_change_status ) {
|
||||||
|
|
|
@ -443,6 +443,10 @@ $data_rows_html
|
||||||
<?php if ( $description ) : ?>
|
<?php if ( $description ) : ?>
|
||||||
<p class="<?php echo 'ppcp-heading' === $config['type'] ? '' : 'description'; ?>"><?php echo wp_kses_post( $description ); ?></p>
|
<p class="<?php echo 'ppcp-heading' === $config['type'] ? '' : 'description'; ?>"><?php echo wp_kses_post( $description ); ?></p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ( isset( $config['description_with_tip'] ) && $config['description_with_tip'] ) : ?>
|
||||||
|
<p class="<?php echo 'description'; ?>"><?php echo wp_kses_post( $config['description_with_tip'] ); ?></p>
|
||||||
|
<?php endif; ?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
|
|
|
@ -155,7 +155,8 @@ class WCGatewayModule implements ModuleInterface {
|
||||||
if ( $c->has( 'wcgateway.url' ) ) {
|
if ( $c->has( 'wcgateway.url' ) ) {
|
||||||
$assets = new SettingsPageAssets(
|
$assets = new SettingsPageAssets(
|
||||||
$c->get( 'wcgateway.url' ),
|
$c->get( 'wcgateway.url' ),
|
||||||
$c->get( 'ppcp.asset-version' )
|
$c->get( 'ppcp.asset-version' ),
|
||||||
|
$c->get( 'subscription.helper' )
|
||||||
);
|
);
|
||||||
$assets->register_assets();
|
$assets->register_assets();
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,6 +143,21 @@ class WebhookModule implements ModuleInterface {
|
||||||
$logger->error( 'Failed to load webhooks list: ' . $exception->getMessage() );
|
$logger->error( 'Failed to load webhooks list: ' . $exception->getMessage() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_action(
|
||||||
|
'woocommerce_paypal_payments_gateway_migrate',
|
||||||
|
static function () use ( $container ) {
|
||||||
|
$registrar = $container->get( 'webhook.registrar' );
|
||||||
|
assert( $registrar instanceof WebhookRegistrar );
|
||||||
|
add_action(
|
||||||
|
'init',
|
||||||
|
function () use ( $registrar ) {
|
||||||
|
$registrar->unregister();
|
||||||
|
$registrar->register();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "woocommerce-paypal-payments",
|
"name": "woocommerce-paypal-payments",
|
||||||
"version": "1.9.3",
|
"version": "1.9.4",
|
||||||
"description": "WooCommerce PayPal Payments",
|
"description": "WooCommerce PayPal Payments",
|
||||||
"repository": "https://github.com/woocommerce/woocommerce-paypal-payments",
|
"repository": "https://github.com/woocommerce/woocommerce-paypal-payments",
|
||||||
"license": "GPL-2.0",
|
"license": "GPL-2.0",
|
||||||
|
|
14
readme.txt
14
readme.txt
|
@ -4,7 +4,7 @@ Tags: woocommerce, paypal, payments, ecommerce, e-commerce, store, sales, sell,
|
||||||
Requires at least: 5.3
|
Requires at least: 5.3
|
||||||
Tested up to: 6.0
|
Tested up to: 6.0
|
||||||
Requires PHP: 7.1
|
Requires PHP: 7.1
|
||||||
Stable tag: 1.9.3
|
Stable tag: 1.9.4
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
|
||||||
|
@ -81,6 +81,18 @@ Follow the steps below to connect the plugin to your PayPal account:
|
||||||
|
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
|
= 1.9.4 =
|
||||||
|
* Add - Create new connection tab #801
|
||||||
|
* Add - Functionality to choose subscription failure behavior #728
|
||||||
|
* Fix - Virtual-only orders always move order status to completed #868
|
||||||
|
* Fix - PayPal order created twice when context is checkout #832
|
||||||
|
* Enhancement - Handle unsupported browsers better #843
|
||||||
|
* Enhancement - Combine the Webhooks Status page into a new Connection tab (891) #827
|
||||||
|
* Enhancement - Hide PayPal Card Processing tab if not available in country or for merchant #870
|
||||||
|
* Enhancement - Resubscribe webhooks on plugin upgrades #838
|
||||||
|
* Enhancement - PUI-relevant webhook not subscribed to #842
|
||||||
|
* Enhancement - Remove WC logo during onboarding #881
|
||||||
|
|
||||||
= 1.9.3 =
|
= 1.9.3 =
|
||||||
* Add - Tracking API #792
|
* Add - Tracking API #792
|
||||||
* Fix - Improve compatibility with Siteground Optimizer plugin #797
|
* Fix - Improve compatibility with Siteground Optimizer plugin #797
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace WooCommerce\PayPalCommerce\WcGateway\Assets;
|
namespace WooCommerce\PayPalCommerce\WcGateway\Assets;
|
||||||
|
|
||||||
use WooCommerce\PayPalCommerce\ApiClient\Authentication\Bearer;
|
use WooCommerce\PayPalCommerce\ApiClient\Authentication\Bearer;
|
||||||
|
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
||||||
use WooCommerce\PayPalCommerce\TestCase;
|
use WooCommerce\PayPalCommerce\TestCase;
|
||||||
use function Brain\Monkey\Functions\when;
|
use function Brain\Monkey\Functions\when;
|
||||||
use Mockery;
|
use Mockery;
|
||||||
|
@ -13,8 +14,9 @@ class SettingsPagesAssetsTest extends TestCase
|
||||||
{
|
{
|
||||||
$moduleUrl = 'http://example.com/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-wc-gateway';
|
$moduleUrl = 'http://example.com/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-wc-gateway';
|
||||||
$modulePath = '/var/www/html/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-wc-gateway';
|
$modulePath = '/var/www/html/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-wc-gateway';
|
||||||
|
$subscriptionsHelper = Mockery::mock(SubscriptionHelper::class);
|
||||||
|
|
||||||
$testee = new SettingsPageAssets($moduleUrl, $modulePath);
|
$testee = new SettingsPageAssets($moduleUrl, $modulePath, $subscriptionsHelper);
|
||||||
|
|
||||||
when('is_admin')
|
when('is_admin')
|
||||||
->justReturn(true);
|
->justReturn(true);
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
* Plugin Name: WooCommerce PayPal Payments
|
* Plugin Name: WooCommerce PayPal Payments
|
||||||
* Plugin URI: https://woocommerce.com/products/woocommerce-paypal-payments/
|
* Plugin URI: https://woocommerce.com/products/woocommerce-paypal-payments/
|
||||||
* Description: PayPal's latest complete payments processing solution. Accept PayPal, Pay Later, credit/debit cards, alternative digital wallets local payment types and bank accounts. Turn on only PayPal options or process a full suite of payment methods. Enable global transaction with extensive currency and country coverage.
|
* Description: PayPal's latest complete payments processing solution. Accept PayPal, Pay Later, credit/debit cards, alternative digital wallets local payment types and bank accounts. Turn on only PayPal options or process a full suite of payment methods. Enable global transaction with extensive currency and country coverage.
|
||||||
* Version: 1.9.3
|
* Version: 1.9.4
|
||||||
* Author: WooCommerce
|
* Author: WooCommerce
|
||||||
* Author URI: https://woocommerce.com/
|
* Author URI: https://woocommerce.com/
|
||||||
* License: GPL-2.0
|
* License: GPL-2.0
|
||||||
* Requires PHP: 7.1
|
* Requires PHP: 7.1
|
||||||
* WC requires at least: 3.9
|
* WC requires at least: 3.9
|
||||||
* WC tested up to: 6.8
|
* WC tested up to: 6.9
|
||||||
* Text Domain: woocommerce-paypal-payments
|
* Text Domain: woocommerce-paypal-payments
|
||||||
*
|
*
|
||||||
* @package WooCommerce\PayPalCommerce
|
* @package WooCommerce\PayPalCommerce
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue