mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-03 08:37:53 +08:00
add paypal credit card gateway
This commit is contained in:
parent
03d2ed9897
commit
087a532023
6 changed files with 141 additions and 45 deletions
|
@ -11,6 +11,7 @@ use Inpsyde\PayPalCommerce\WcGateway\Admin\OrderTablePaymentStatusColumn;
|
||||||
use Inpsyde\PayPalCommerce\WcGateway\Admin\PaymentStatusOrderDetail;
|
use Inpsyde\PayPalCommerce\WcGateway\Admin\PaymentStatusOrderDetail;
|
||||||
use Inpsyde\PayPalCommerce\WcGateway\Checkout\CheckoutPayPalAddressPreset;
|
use Inpsyde\PayPalCommerce\WcGateway\Checkout\CheckoutPayPalAddressPreset;
|
||||||
use Inpsyde\PayPalCommerce\WcGateway\Checkout\DisableGateways;
|
use Inpsyde\PayPalCommerce\WcGateway\Checkout\DisableGateways;
|
||||||
|
use Inpsyde\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
||||||
use Inpsyde\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
use Inpsyde\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
||||||
use Inpsyde\PayPalCommerce\WcGateway\Notice\AuthorizeOrderActionNotice;
|
use Inpsyde\PayPalCommerce\WcGateway\Notice\AuthorizeOrderActionNotice;
|
||||||
use Inpsyde\PayPalCommerce\WcGateway\Notice\ConnectAdminNotice;
|
use Inpsyde\PayPalCommerce\WcGateway\Notice\ConnectAdminNotice;
|
||||||
|
@ -37,6 +38,21 @@ return [
|
||||||
$settings
|
$settings
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
'wcgateway.credit-card-gateway' => static function (ContainerInterface $container): CreditCardGateway {
|
||||||
|
$orderProcessor = $container->get('wcgateway.order-processor');
|
||||||
|
$settingsRenderer = $container->get('wcgateway.settings.render');
|
||||||
|
$authorizedPayments = $container->get('wcgateway.processor.authorized-payments');
|
||||||
|
$notice = $container->get('wcgateway.notice.authorize-order-action');
|
||||||
|
$settings = $container->get('wcgateway.settings');
|
||||||
|
|
||||||
|
return new CreditCardGateway(
|
||||||
|
$settingsRenderer,
|
||||||
|
$orderProcessor,
|
||||||
|
$authorizedPayments,
|
||||||
|
$notice,
|
||||||
|
$settings
|
||||||
|
);
|
||||||
|
},
|
||||||
'wcgateway.disabler' => static function (ContainerInterface $container): DisableGateways {
|
'wcgateway.disabler' => static function (ContainerInterface $container): DisableGateways {
|
||||||
$sessionHandler = $container->get('session.handler');
|
$sessionHandler = $container->get('session.handler');
|
||||||
$settings = $container->get('wcgateway.settings');
|
$settings = $container->get('wcgateway.settings');
|
||||||
|
@ -136,6 +152,7 @@ return [
|
||||||
State::STATE_PROGRESSIVE,
|
State::STATE_PROGRESSIVE,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'sandbox_on' => [
|
'sandbox_on' => [
|
||||||
'title' => __('Sandbox', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Sandbox', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -146,6 +163,7 @@ return [
|
||||||
State::STATE_START,
|
State::STATE_START,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'sandbox_on_info' => [
|
'sandbox_on_info' => [
|
||||||
'title' => __('Sandbox', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Sandbox', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -157,6 +175,7 @@ return [
|
||||||
],
|
],
|
||||||
'hidden' => 'sandbox_on',
|
'hidden' => 'sandbox_on',
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'merchant_email' => [
|
'merchant_email' => [
|
||||||
'title' => __('Email address', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Email address', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -169,6 +188,7 @@ return [
|
||||||
State::STATE_START,
|
State::STATE_START,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'merchant_email_info' => [
|
'merchant_email_info' => [
|
||||||
'title' => __('Email address', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Email address', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -180,6 +200,7 @@ return [
|
||||||
],
|
],
|
||||||
'hidden' => 'merchant_email',
|
'hidden' => 'merchant_email',
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'toggle_manual_input' => [
|
'toggle_manual_input' => [
|
||||||
'type' => 'ppcp-text',
|
'type' => 'ppcp-text',
|
||||||
|
@ -191,6 +212,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'client_id' => [
|
'client_id' => [
|
||||||
'title' => __('Client Id', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Client Id', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -204,6 +226,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'client_secret' => [
|
'client_secret' => [
|
||||||
'title' => __('Secret Key', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Secret Key', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -217,6 +240,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'title' => [
|
'title' => [
|
||||||
'title' => __('Title', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Title', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -232,6 +256,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'description' => [
|
'description' => [
|
||||||
'title' => __('Description', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Description', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -250,6 +275,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'intent' => [
|
'intent' => [
|
||||||
'title' => __('Intent', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Intent', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -269,6 +295,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'button_single_product_enabled' => [
|
'button_single_product_enabled' => [
|
||||||
'title' => __('Buttons on Single Product', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Buttons on Single Product', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -280,6 +307,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'button_mini_cart_enabled' => [
|
'button_mini_cart_enabled' => [
|
||||||
'title' => __('Buttons on Mini Cart', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Buttons on Mini Cart', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -291,6 +319,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'button_cart_enabled' => [
|
'button_cart_enabled' => [
|
||||||
'title' => __('Buttons on Cart', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Buttons on Cart', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -302,6 +331,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'button_label' => [
|
'button_label' => [
|
||||||
'title' => __('Button Label', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Button Label', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -324,6 +354,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'brand_name' => [
|
'brand_name' => [
|
||||||
'title' => __('Brand Name', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Brand Name', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -339,6 +370,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'landing_page' => [
|
'landing_page' => [
|
||||||
'title' => __('Landing Page', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Landing Page', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -359,6 +391,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'button_color' => [
|
'button_color' => [
|
||||||
'title' => __('Color', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Color', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -381,6 +414,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'button_shape' => [
|
'button_shape' => [
|
||||||
'title' => __('Shape', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Shape', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -401,6 +435,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'disable_funding' => [
|
'disable_funding' => [
|
||||||
'title' => __('Disable funding sources', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Disable funding sources', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -429,6 +464,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'paypal',
|
||||||
],
|
],
|
||||||
'vault_enabled' => [
|
'vault_enabled' => [
|
||||||
'title' => __('Vaulting', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Vaulting', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -441,30 +477,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
],
|
'gateway' => 'paypal',
|
||||||
'dcc_cart_enabled' => [
|
|
||||||
'title' => __('Enable credit card on cart', 'woocommerce-paypal-commerce-gateway'),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __('Allow your customers to pay with credit card directly in your cart.', 'woocommerce-paypal-commerce-gateway'),
|
|
||||||
'default' => true,
|
|
||||||
'screens' => [
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
],
|
|
||||||
'requirements' => [
|
|
||||||
'dcc',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'dcc_mini_cart_enabled' => [
|
|
||||||
'title' => __('Enable credit card on mini cart', 'woocommerce-paypal-commerce-gateway'),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __('Allow your customers to pay with credit card directly in your mini cart.', 'woocommerce-paypal-commerce-gateway'),
|
|
||||||
'default' => true,
|
|
||||||
'screens' => [
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
],
|
|
||||||
'requirements' => [
|
|
||||||
'dcc',
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
'dcc_checkout_enabled' => [
|
'dcc_checkout_enabled' => [
|
||||||
'title' => __('Enable credit card on checkout', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Enable credit card on checkout', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -477,18 +490,7 @@ return [
|
||||||
'requirements' => [
|
'requirements' => [
|
||||||
'dcc',
|
'dcc',
|
||||||
],
|
],
|
||||||
],
|
'gateway' => 'dcc',
|
||||||
'dcc_single_product_enabled' => [
|
|
||||||
'title' => __('Enable credit card on products', 'woocommerce-paypal-commerce-gateway'),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __('Allow your customers to pay with credit card instantly on the product page.', 'woocommerce-paypal-commerce-gateway'),
|
|
||||||
'default' => true,
|
|
||||||
'screens' => [
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
],
|
|
||||||
'requirements' => [
|
|
||||||
'dcc',
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
'disable_cards' => [
|
'disable_cards' => [
|
||||||
'title' => __('Disable specific credit cards', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Disable specific credit cards', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -515,6 +517,7 @@ return [
|
||||||
'requirements' => [
|
'requirements' => [
|
||||||
'dcc',
|
'dcc',
|
||||||
],
|
],
|
||||||
|
'gateway' => 'dcc',
|
||||||
],
|
],
|
||||||
'logging_enabled' => [
|
'logging_enabled' => [
|
||||||
'title' => __('Logging', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Logging', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -529,6 +532,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
'prefix' => [
|
'prefix' => [
|
||||||
'title' => __('Installation prefix', 'woocommerce-paypal-commerce-gateway'),
|
'title' => __('Installation prefix', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
@ -542,6 +546,7 @@ return [
|
||||||
State::STATE_ONBOARDED,
|
State::STATE_ONBOARDED,
|
||||||
],
|
],
|
||||||
'requirements' => [],
|
'requirements' => [],
|
||||||
|
'gateway' => 'all',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Inpsyde\PayPalCommerce\WcGateway\Gateway;
|
||||||
|
|
||||||
|
|
||||||
|
use Inpsyde\PayPalCommerce\WcGateway\Notice\AuthorizeOrderActionNotice;
|
||||||
|
use Inpsyde\PayPalCommerce\WcGateway\Processor\AuthorizedPaymentsProcessor;
|
||||||
|
use Inpsyde\PayPalCommerce\WcGateway\Processor\OrderProcessor;
|
||||||
|
use Inpsyde\PayPalCommerce\WcGateway\Settings\SettingsRenderer;
|
||||||
|
use Psr\Container\ContainerInterface;
|
||||||
|
|
||||||
|
class CreditCardGateway extends PayPalGateway
|
||||||
|
{
|
||||||
|
public const ID = 'ppcp-credit-card-gateway';
|
||||||
|
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
SettingsRenderer $settingsRenderer,
|
||||||
|
OrderProcessor $orderProcessor,
|
||||||
|
AuthorizedPaymentsProcessor $authorizedPayments,
|
||||||
|
AuthorizeOrderActionNotice $notice,
|
||||||
|
ContainerInterface $config
|
||||||
|
) {
|
||||||
|
|
||||||
|
$this->id = self::ID;
|
||||||
|
$this->orderProcessor = $orderProcessor;
|
||||||
|
$this->authorizedPayments = $authorizedPayments;
|
||||||
|
$this->notice = $notice;
|
||||||
|
$this->settingsRenderer = $settingsRenderer;
|
||||||
|
$this->config = $config;
|
||||||
|
if ($this->config->has('vault_enabled') && $this->config->get('vault_enabled')) {
|
||||||
|
$this->supports = [
|
||||||
|
'products',
|
||||||
|
'subscriptions',
|
||||||
|
'subscription_cancellation',
|
||||||
|
'subscription_suspension',
|
||||||
|
'subscription_reactivation',
|
||||||
|
'subscription_amount_changes',
|
||||||
|
'subscription_date_changes',
|
||||||
|
'subscription_payment_method_change',
|
||||||
|
'subscription_payment_method_change_customer',
|
||||||
|
'subscription_payment_method_change_admin',
|
||||||
|
'multiple_subscriptions',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->method_title = __('Credit Card Payments', 'woocommerce-paypal-commerce-gateway');
|
||||||
|
$this->method_description = __(
|
||||||
|
'Provide your customers with the option to pay with credit card.',
|
||||||
|
'woocommerce-paypal-commerce-gateway'
|
||||||
|
);
|
||||||
|
$this->title = $this->config->has('title') ?
|
||||||
|
$this->config->get('title') : $this->method_title;
|
||||||
|
$this->description = $this->config->has('description') ?
|
||||||
|
$this->config->get('description') : $this->method_description;
|
||||||
|
|
||||||
|
$this->init_form_fields();
|
||||||
|
$this->init_settings();
|
||||||
|
|
||||||
|
add_action(
|
||||||
|
'woocommerce_update_options_payment_gateways_' . $this->id,
|
||||||
|
[
|
||||||
|
$this,
|
||||||
|
'process_admin_options',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
public function generate_ppcp_html(): string
|
||||||
|
{
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$this->settingsRenderer->render(true);
|
||||||
|
$content = ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -30,11 +30,11 @@ class PayPalGateway extends \WC_Payment_Gateway
|
||||||
public const INTENT_META_KEY = '_ppcp_paypal_intent';
|
public const INTENT_META_KEY = '_ppcp_paypal_intent';
|
||||||
public const ORDER_ID_META_KEY = '_ppcp_paypal_order_id';
|
public const ORDER_ID_META_KEY = '_ppcp_paypal_order_id';
|
||||||
|
|
||||||
private $settingsRenderer;
|
protected $settingsRenderer;
|
||||||
private $authorizedPayments;
|
protected $authorizedPayments;
|
||||||
private $notice;
|
protected $notice;
|
||||||
private $orderProcessor;
|
protected $orderProcessor;
|
||||||
private $config;
|
protected $config;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SettingsRenderer $settingsRenderer,
|
SettingsRenderer $settingsRenderer,
|
||||||
|
@ -178,7 +178,7 @@ class PayPalGateway extends \WC_Payment_Gateway
|
||||||
{
|
{
|
||||||
|
|
||||||
ob_start();
|
ob_start();
|
||||||
$this->settingsRenderer->render();
|
$this->settingsRenderer->render(false);
|
||||||
$content = ob_get_contents();
|
$content = ob_get_contents();
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
return $content;
|
return $content;
|
||||||
|
|
|
@ -60,8 +60,13 @@ class SettingsListener
|
||||||
*/
|
*/
|
||||||
$rawData = (isset($_POST['ppcp'])) ? (array) wp_unslash($_POST['ppcp']) : [];
|
$rawData = (isset($_POST['ppcp'])) ? (array) wp_unslash($_POST['ppcp']) : [];
|
||||||
$settings = $this->retrieveSettingsFromRawData($rawData);
|
$settings = $this->retrieveSettingsFromRawData($rawData);
|
||||||
$settings['enabled'] = isset($_POST['woocommerce_ppcp-gateway_enabled'])
|
$settings['enabled'] = (
|
||||||
&& absint($_POST['woocommerce_ppcp-gateway_enabled']) === 1;
|
isset($_POST['woocommerce_ppcp-gateway_enabled'])
|
||||||
|
&& absint($_POST['woocommerce_ppcp-gateway_enabled']) === 1
|
||||||
|
) || (
|
||||||
|
isset($_POST['woocommerce_ppcp-credit-card-gateway_enabled'])
|
||||||
|
&& absint($_POST['woocommerce_ppcp-credit-card-gateway_enabled']) === 1
|
||||||
|
);
|
||||||
foreach ($settings as $id => $value) {
|
foreach ($settings as $id => $value) {
|
||||||
$this->settings->set($id, $value);
|
$this->settings->set($id, $value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ class SettingsRenderer
|
||||||
}
|
}
|
||||||
//phpcs:enable Inpsyde.CodeQuality.ArgumentTypeDeclaration.NoArgumentType
|
//phpcs:enable Inpsyde.CodeQuality.ArgumentTypeDeclaration.NoArgumentType
|
||||||
|
|
||||||
public function render()
|
public function render(bool $isDcc)
|
||||||
{
|
{
|
||||||
|
|
||||||
$nonce = wp_create_nonce(SettingsListener::NONCE);
|
$nonce = wp_create_nonce(SettingsListener::NONCE);
|
||||||
|
@ -117,6 +117,12 @@ class SettingsRenderer
|
||||||
if (! in_array($this->state->currentState(), $config['screens'], true)) {
|
if (! in_array($this->state->currentState(), $config['screens'], true)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if ($isDcc && ! in_array($config['gateway'], ['all', 'dcc'],true)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (! $isDcc && ! in_array($config['gateway'], ['all', 'paypal'],true)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (in_array('dcc', $config['requirements'], true) && ! $this->dccApplies->forCountryCurrency()) {
|
if (in_array('dcc', $config['requirements'], true) && ! $this->dccApplies->forCountryCurrency()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,6 +99,7 @@ class WcGatewayModule implements ModuleInterface
|
||||||
'woocommerce_payment_gateways',
|
'woocommerce_payment_gateways',
|
||||||
static function ($methods) use ($container): array {
|
static function ($methods) use ($container): array {
|
||||||
$methods[] = $container->get('wcgateway.paypal-gateway');
|
$methods[] = $container->get('wcgateway.paypal-gateway');
|
||||||
|
$methods[] = $container->get('wcgateway.credit-card-gateway');
|
||||||
return (array)$methods;
|
return (array)$methods;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue