mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-01 07:02:48 +08:00
Add filter to on and off the toggle
This commit is contained in:
parent
e593e1799d
commit
4ab2c0ff48
2 changed files with 27 additions and 3 deletions
|
@ -239,6 +239,7 @@ return array(
|
||||||
$final_review_enabled = $container->get( 'blocks.settings.final_review_enabled' );
|
$final_review_enabled = $container->get( 'blocks.settings.final_review_enabled' );
|
||||||
$wc_order_creator = $container->get( 'button.helper.wc-order-creator' );
|
$wc_order_creator = $container->get( 'button.helper.wc-order-creator' );
|
||||||
$gateway = $container->get( 'wcgateway.paypal-gateway' );
|
$gateway = $container->get( 'wcgateway.paypal-gateway' );
|
||||||
|
$subscription_helper = $container->get( 'wc-subscriptions.helper' );
|
||||||
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
||||||
return new ApproveOrderEndpoint(
|
return new ApproveOrderEndpoint(
|
||||||
$request_data,
|
$request_data,
|
||||||
|
@ -251,6 +252,7 @@ return array(
|
||||||
$final_review_enabled,
|
$final_review_enabled,
|
||||||
$gateway,
|
$gateway,
|
||||||
$wc_order_creator,
|
$wc_order_creator,
|
||||||
|
$subscription_helper,
|
||||||
$logger
|
$logger
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -24,6 +24,7 @@ use WooCommerce\PayPalCommerce\Button\Helper\WooCommerceOrderCreator;
|
||||||
use WooCommerce\PayPalCommerce\Session\SessionHandler;
|
use WooCommerce\PayPalCommerce\Session\SessionHandler;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
||||||
|
use WooCommerce\PayPalCommerce\WcSubscriptions\Helper\SubscriptionHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ApproveOrderEndpoint
|
* Class ApproveOrderEndpoint
|
||||||
|
@ -104,6 +105,13 @@ class ApproveOrderEndpoint implements EndpointInterface {
|
||||||
*/
|
*/
|
||||||
protected $wc_order_creator;
|
protected $wc_order_creator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Subscription Helper.
|
||||||
|
*
|
||||||
|
* @var SubscriptionHelper
|
||||||
|
*/
|
||||||
|
protected $subscription_helper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The logger.
|
* The logger.
|
||||||
*
|
*
|
||||||
|
@ -124,6 +132,7 @@ class ApproveOrderEndpoint implements EndpointInterface {
|
||||||
* @param bool $final_review_enabled Whether the final review is enabled.
|
* @param bool $final_review_enabled Whether the final review is enabled.
|
||||||
* @param PayPalGateway $gateway The WC gateway.
|
* @param PayPalGateway $gateway The WC gateway.
|
||||||
* @param WooCommerceOrderCreator $wc_order_creator The WooCommerce order creator.
|
* @param WooCommerceOrderCreator $wc_order_creator The WooCommerce order creator.
|
||||||
|
* @param SubscriptionHelper $subscription_helper The subscription helper.
|
||||||
* @param LoggerInterface $logger The logger.
|
* @param LoggerInterface $logger The logger.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
|
@ -137,6 +146,7 @@ class ApproveOrderEndpoint implements EndpointInterface {
|
||||||
bool $final_review_enabled,
|
bool $final_review_enabled,
|
||||||
PayPalGateway $gateway,
|
PayPalGateway $gateway,
|
||||||
WooCommerceOrderCreator $wc_order_creator,
|
WooCommerceOrderCreator $wc_order_creator,
|
||||||
|
SubscriptionHelper $subscription_helper,
|
||||||
LoggerInterface $logger
|
LoggerInterface $logger
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
@ -150,6 +160,7 @@ class ApproveOrderEndpoint implements EndpointInterface {
|
||||||
$this->final_review_enabled = $final_review_enabled;
|
$this->final_review_enabled = $final_review_enabled;
|
||||||
$this->gateway = $gateway;
|
$this->gateway = $gateway;
|
||||||
$this->wc_order_creator = $wc_order_creator;
|
$this->wc_order_creator = $wc_order_creator;
|
||||||
|
$this->subscription_helper = $subscription_helper;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,9 +247,9 @@ class ApproveOrderEndpoint implements EndpointInterface {
|
||||||
|
|
||||||
$this->session_handler->replace_order( $order );
|
$this->session_handler->replace_order( $order );
|
||||||
|
|
||||||
$final_review_enabled_setting = $this->settings->has( 'blocks_final_review_enabled' ) && $this->settings->get( 'blocks_final_review_enabled' );
|
if ( ! $this->subscription_helper->plugin_is_active() && apply_filters( 'woocommerce_paypal_payments_toggle_final_review_checkbox', false ) ) {
|
||||||
$final_review_enabled_setting ? $this->settings->set( 'blocks_final_review_enabled', false ) : $this->settings->set( 'blocks_final_review_enabled', true );
|
$this->toggle_final_review_enabled_setting();
|
||||||
$this->settings->persist();
|
}
|
||||||
|
|
||||||
$should_create_wc_order = $data['should_create_wc_order'] ?? false;
|
$should_create_wc_order = $data['should_create_wc_order'] ?? false;
|
||||||
if ( ! $this->final_review_enabled && ! $this->is_checkout() && $should_create_wc_order ) {
|
if ( ! $this->final_review_enabled && ! $this->is_checkout() && $should_create_wc_order ) {
|
||||||
|
@ -264,4 +275,15 @@ class ApproveOrderEndpoint implements EndpointInterface {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will toggle the "final confirmation" checkbox.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function toggle_final_review_enabled_setting(): void {
|
||||||
|
$final_review_enabled_setting = $this->settings->has( 'blocks_final_review_enabled' ) && $this->settings->get( 'blocks_final_review_enabled' );
|
||||||
|
$final_review_enabled_setting ? $this->settings->set( 'blocks_final_review_enabled', false ) : $this->settings->set( 'blocks_final_review_enabled', true );
|
||||||
|
$this->settings->persist();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue