mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 18:16:38 +08:00
Add simulate cart endpoint
This commit is contained in:
parent
cc97f84acb
commit
76804c2582
5 changed files with 329 additions and 8 deletions
|
@ -11,6 +11,7 @@ namespace WooCommerce\PayPalCommerce\Button;
|
||||||
|
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\ApproveSubscriptionEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\ApproveSubscriptionEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\CartScriptParamsEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\CartScriptParamsEndpoint;
|
||||||
|
use WooCommerce\PayPalCommerce\Button\Endpoint\SimulateCartEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Helper\CheckoutFormSaver;
|
use WooCommerce\PayPalCommerce\Button\Helper\CheckoutFormSaver;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\SaveCheckoutFormEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\SaveCheckoutFormEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Validation\CheckoutFormValidator;
|
use WooCommerce\PayPalCommerce\Button\Validation\CheckoutFormValidator;
|
||||||
|
@ -124,6 +125,16 @@ return array(
|
||||||
'button.request-data' => static function ( ContainerInterface $container ): RequestData {
|
'button.request-data' => static function ( ContainerInterface $container ): RequestData {
|
||||||
return new RequestData();
|
return new RequestData();
|
||||||
},
|
},
|
||||||
|
'button.endpoint.simulate-cart' => static function ( ContainerInterface $container ): SimulateCartEndpoint {
|
||||||
|
if ( ! \WC()->cart ) {
|
||||||
|
throw new RuntimeException( 'cant initialize endpoint at this moment' );
|
||||||
|
}
|
||||||
|
$cart = WC()->cart;
|
||||||
|
$request_data = $container->get( 'button.request-data' );
|
||||||
|
$data_store = \WC_Data_Store::load( 'product' );
|
||||||
|
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
||||||
|
return new SimulateCartEndpoint( $cart, $request_data, $data_store, $logger );
|
||||||
|
},
|
||||||
'button.endpoint.change-cart' => static function ( ContainerInterface $container ): ChangeCartEndpoint {
|
'button.endpoint.change-cart' => static function ( ContainerInterface $container ): ChangeCartEndpoint {
|
||||||
if ( ! \WC()->cart ) {
|
if ( ! \WC()->cart ) {
|
||||||
throw new RuntimeException( 'cant initialize endpoint at this moment' );
|
throw new RuntimeException( 'cant initialize endpoint at this moment' );
|
||||||
|
|
|
@ -25,6 +25,7 @@ use WooCommerce\PayPalCommerce\Button\Endpoint\CreateOrderEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\DataClientIdEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\DataClientIdEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\RequestData;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\RequestData;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\SaveCheckoutFormEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\SaveCheckoutFormEndpoint;
|
||||||
|
use WooCommerce\PayPalCommerce\Button\Endpoint\SimulateCartEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\StartPayPalVaultingEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\StartPayPalVaultingEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\ValidateCheckoutEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\ValidateCheckoutEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Helper\ContextTrait;
|
use WooCommerce\PayPalCommerce\Button\Helper\ContextTrait;
|
||||||
|
@ -827,6 +828,10 @@ class SmartButton implements SmartButtonInterface {
|
||||||
'redirect' => wc_get_checkout_url(),
|
'redirect' => wc_get_checkout_url(),
|
||||||
'context' => $this->context(),
|
'context' => $this->context(),
|
||||||
'ajax' => array(
|
'ajax' => array(
|
||||||
|
'simulate_cart' => array(
|
||||||
|
'endpoint' => \WC_AJAX::get_endpoint( SimulateCartEndpoint::ENDPOINT ),
|
||||||
|
'nonce' => wp_create_nonce( SimulateCartEndpoint::nonce() ),
|
||||||
|
),
|
||||||
'change_cart' => array(
|
'change_cart' => array(
|
||||||
'endpoint' => \WC_AJAX::get_endpoint( ChangeCartEndpoint::ENDPOINT ),
|
'endpoint' => \WC_AJAX::get_endpoint( ChangeCartEndpoint::ENDPOINT ),
|
||||||
'nonce' => wp_create_nonce( ChangeCartEndpoint::nonce() ),
|
'nonce' => wp_create_nonce( ChangeCartEndpoint::nonce() ),
|
||||||
|
@ -1329,6 +1334,18 @@ class SmartButton implements SmartButtonInterface {
|
||||||
return WC()->cart && WC()->cart->get_total( 'numeric' ) == 0;
|
return WC()->cart && WC()->cart->get_total( 'numeric' ) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the cart total.
|
||||||
|
*
|
||||||
|
* @return ?float
|
||||||
|
*/
|
||||||
|
protected function get_cart_price_total(): ?float {
|
||||||
|
if ( ! WC()->cart ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return (float) WC()->cart->get_total( 'numeric' );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if PayPal buttons/messages can be rendered for the given product.
|
* Checks if PayPal buttons/messages can be rendered for the given product.
|
||||||
*
|
*
|
||||||
|
@ -1419,13 +1436,18 @@ class SmartButton implements SmartButtonInterface {
|
||||||
if ( 'product' === $location ) {
|
if ( 'product' === $location ) {
|
||||||
$product = wc_get_product();
|
$product = wc_get_product();
|
||||||
|
|
||||||
|
if ( ! $product ) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows to decide if the button should be disabled for a given product
|
* Allows to decide if the button should be disabled for a given product
|
||||||
*/
|
*/
|
||||||
$is_disabled = apply_filters(
|
$is_disabled = apply_filters(
|
||||||
'woocommerce_paypal_payments_product_buttons_paylater_disabled',
|
'woocommerce_paypal_payments_product_buttons_paylater_disabled',
|
||||||
null,
|
null,
|
||||||
$product
|
$product,
|
||||||
|
$product->get_price( 'numeric' )
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( $is_disabled !== null ) {
|
if ( $is_disabled !== null ) {
|
||||||
|
@ -1439,7 +1461,8 @@ class SmartButton implements SmartButtonInterface {
|
||||||
$is_disabled = apply_filters(
|
$is_disabled = apply_filters(
|
||||||
'woocommerce_paypal_payments_buttons_paylater_disabled',
|
'woocommerce_paypal_payments_buttons_paylater_disabled',
|
||||||
null,
|
null,
|
||||||
$location
|
$location,
|
||||||
|
$this->get_cart_price_total()
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( $is_disabled !== null ) {
|
if ( $is_disabled !== null ) {
|
||||||
|
@ -1455,7 +1478,7 @@ class SmartButton implements SmartButtonInterface {
|
||||||
* @param string $location The location.
|
* @param string $location The location.
|
||||||
* @return bool true if is enabled, otherwise false.
|
* @return bool true if is enabled, otherwise false.
|
||||||
*/
|
*/
|
||||||
private function is_pay_later_button_enabled_for_location( string $location ) {
|
private function is_pay_later_button_enabled_for_location( string $location ): bool {
|
||||||
return $this->is_pay_later_filter_enabled_for_location( $location )
|
return $this->is_pay_later_filter_enabled_for_location( $location )
|
||||||
&& $this->settings_status->is_pay_later_button_enabled_for_location( $location );
|
&& $this->settings_status->is_pay_later_button_enabled_for_location( $location );
|
||||||
|
|
||||||
|
@ -1467,7 +1490,7 @@ class SmartButton implements SmartButtonInterface {
|
||||||
* @param string $location The location setting name.
|
* @param string $location The location setting name.
|
||||||
* @return bool true if is enabled, otherwise false.
|
* @return bool true if is enabled, otherwise false.
|
||||||
*/
|
*/
|
||||||
private function is_pay_later_messaging_enabled_for_location( string $location ) {
|
private function is_pay_later_messaging_enabled_for_location( string $location ): bool {
|
||||||
return $this->is_pay_later_filter_enabled_for_location( $location )
|
return $this->is_pay_later_filter_enabled_for_location( $location )
|
||||||
&& $this->settings_status->is_pay_later_messaging_enabled_for_location( $location );
|
&& $this->settings_status->is_pay_later_messaging_enabled_for_location( $location );
|
||||||
}
|
}
|
||||||
|
@ -1477,7 +1500,7 @@ class SmartButton implements SmartButtonInterface {
|
||||||
*
|
*
|
||||||
* @return bool true if is enabled, otherwise false.
|
* @return bool true if is enabled, otherwise false.
|
||||||
*/
|
*/
|
||||||
private function is_pay_later_messaging_enabled() {
|
private function is_pay_later_messaging_enabled(): bool {
|
||||||
return $this->is_pay_later_filter_enabled_for_location( $this->context() )
|
return $this->is_pay_later_filter_enabled_for_location( $this->context() )
|
||||||
&& $this->settings_status->is_pay_later_messaging_enabled();
|
&& $this->settings_status->is_pay_later_messaging_enabled();
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ namespace WooCommerce\PayPalCommerce\Button;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\ApproveSubscriptionEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\ApproveSubscriptionEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\CartScriptParamsEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\CartScriptParamsEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\SaveCheckoutFormEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\SaveCheckoutFormEndpoint;
|
||||||
|
use WooCommerce\PayPalCommerce\Button\Endpoint\SimulateCartEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\ValidateCheckoutEndpoint;
|
use WooCommerce\PayPalCommerce\Button\Endpoint\ValidateCheckoutEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider;
|
use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider;
|
||||||
use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface;
|
use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface;
|
||||||
|
@ -120,6 +121,19 @@ class ButtonModule implements ModuleInterface {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
add_action(
|
||||||
|
'wc_ajax_' . SimulateCartEndpoint::ENDPOINT,
|
||||||
|
static function () use ( $container ) {
|
||||||
|
$endpoint = $container->get( 'button.endpoint.simulate-cart' );
|
||||||
|
/**
|
||||||
|
* The Simulate Cart Endpoint.
|
||||||
|
*
|
||||||
|
* @var SimulateCartEndpoint $endpoint
|
||||||
|
*/
|
||||||
|
$endpoint->handle_request();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
add_action(
|
add_action(
|
||||||
'wc_ajax_' . ChangeCartEndpoint::ENDPOINT,
|
'wc_ajax_' . ChangeCartEndpoint::ENDPOINT,
|
||||||
static function () use ( $container ) {
|
static function () use ( $container ) {
|
||||||
|
|
274
modules/ppcp-button/src/Endpoint/SimulateCartEndpoint.php
Normal file
274
modules/ppcp-button/src/Endpoint/SimulateCartEndpoint.php
Normal file
|
@ -0,0 +1,274 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Endpoint to simulate adding products to the cart.
|
||||||
|
*
|
||||||
|
* @package WooCommerce\PayPalCommerce\Button\Endpoint
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
use WooCommerce\PayPalCommerce\ApiClient\Exception\PayPalApiException;
|
||||||
|
use WooCommerce\PayPalCommerce\ApiClient\Factory\PurchaseUnitFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class SimulateCartEndpoint
|
||||||
|
*/
|
||||||
|
class SimulateCartEndpoint implements EndpointInterface {
|
||||||
|
|
||||||
|
const ENDPOINT = 'ppc-simulate-cart';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The cart object.
|
||||||
|
*
|
||||||
|
* @var \WC_Cart
|
||||||
|
*/
|
||||||
|
private $cart;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The request data helper.
|
||||||
|
*
|
||||||
|
* @var RequestData
|
||||||
|
*/
|
||||||
|
private $request_data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The product data store.
|
||||||
|
*
|
||||||
|
* @var \WC_Data_Store
|
||||||
|
*/
|
||||||
|
private $product_data_store;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The logger.
|
||||||
|
*
|
||||||
|
* @var LoggerInterface
|
||||||
|
*/
|
||||||
|
protected $logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ChangeCartEndpoint constructor.
|
||||||
|
*
|
||||||
|
* @param \WC_Cart $cart The current WC cart object.
|
||||||
|
* @param RequestData $request_data The request data helper.
|
||||||
|
* @param \WC_Data_Store $product_data_store The data store for products.
|
||||||
|
* @param LoggerInterface $logger The logger.
|
||||||
|
*/
|
||||||
|
public function __construct(
|
||||||
|
\WC_Cart $cart,
|
||||||
|
RequestData $request_data,
|
||||||
|
\WC_Data_Store $product_data_store,
|
||||||
|
LoggerInterface $logger
|
||||||
|
) {
|
||||||
|
|
||||||
|
$this->cart = clone $cart;
|
||||||
|
$this->request_data = $request_data;
|
||||||
|
$this->product_data_store = $product_data_store;
|
||||||
|
$this->logger = $logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The nonce.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function nonce(): string {
|
||||||
|
return self::ENDPOINT;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles the request.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function handle_request(): bool {
|
||||||
|
try {
|
||||||
|
return $this->handle_data();
|
||||||
|
} catch ( Exception $error ) {
|
||||||
|
$this->logger->error( 'Cart simulation failed: ' . $error->getMessage() );
|
||||||
|
|
||||||
|
wp_send_json_error(
|
||||||
|
array(
|
||||||
|
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
||||||
|
'message' => $error->getMessage(),
|
||||||
|
'code' => $error->getCode(),
|
||||||
|
'details' => is_a( $error, PayPalApiException::class ) ? $error->details() : array(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles the request data.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
* @throws Exception On error.
|
||||||
|
*/
|
||||||
|
private function handle_data(): bool {
|
||||||
|
$data = $this->request_data->read_request( $this->nonce() );
|
||||||
|
$products = $this->products_from_data( $data );
|
||||||
|
if ( ! $products ) {
|
||||||
|
wp_send_json_error(
|
||||||
|
array(
|
||||||
|
'name' => '',
|
||||||
|
'message' => __(
|
||||||
|
'Necessary fields not defined. Action aborted.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'code' => 0,
|
||||||
|
'details' => array(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->cart->empty_cart( false );
|
||||||
|
$success = true;
|
||||||
|
foreach ( $products as $product ) {
|
||||||
|
$success = $success && ( ! $product['product']->is_type( 'variable' ) ) ?
|
||||||
|
$this->add_product( $product['product'], $product['quantity'] )
|
||||||
|
: $this->add_variable_product(
|
||||||
|
$product['product'],
|
||||||
|
$product['quantity'],
|
||||||
|
$product['variations']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if ( ! $success ) {
|
||||||
|
$this->handle_error();
|
||||||
|
return $success;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->cart->calculate_totals();
|
||||||
|
|
||||||
|
$total = $this->cart->get_total( 'numeric' );
|
||||||
|
|
||||||
|
unset( $this->cart );
|
||||||
|
|
||||||
|
wp_send_json_success(
|
||||||
|
array(
|
||||||
|
'total' => $total,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return $success;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles errors.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
private function handle_error(): bool {
|
||||||
|
|
||||||
|
$message = __(
|
||||||
|
'Something went wrong. Action aborted',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
);
|
||||||
|
$errors = wc_get_notices( 'error' );
|
||||||
|
if ( count( $errors ) ) {
|
||||||
|
$message = array_reduce(
|
||||||
|
$errors,
|
||||||
|
static function ( string $add, array $error ): string {
|
||||||
|
return $add . $error['notice'] . ' ';
|
||||||
|
},
|
||||||
|
''
|
||||||
|
);
|
||||||
|
wc_clear_notices();
|
||||||
|
}
|
||||||
|
|
||||||
|
wp_send_json_error(
|
||||||
|
array(
|
||||||
|
'name' => '',
|
||||||
|
'message' => $message,
|
||||||
|
'code' => 0,
|
||||||
|
'details' => array(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns product information from an data array.
|
||||||
|
*
|
||||||
|
* @param array $data The data array.
|
||||||
|
*
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
private function products_from_data( array $data ) {
|
||||||
|
|
||||||
|
$products = array();
|
||||||
|
|
||||||
|
if (
|
||||||
|
! isset( $data['products'] )
|
||||||
|
|| ! is_array( $data['products'] )
|
||||||
|
) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
foreach ( $data['products'] as $product ) {
|
||||||
|
if ( ! isset( $product['quantity'] ) || ! isset( $product['id'] ) ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$wc_product = wc_get_product( (int) $product['id'] );
|
||||||
|
|
||||||
|
if ( ! $wc_product ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$products[] = array(
|
||||||
|
'product' => $wc_product,
|
||||||
|
'quantity' => (int) $product['quantity'],
|
||||||
|
'variations' => isset( $product['variations'] ) ? $product['variations'] : null,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $products;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a product to the cart.
|
||||||
|
*
|
||||||
|
* @param \WC_Product $product The Product.
|
||||||
|
* @param int $quantity The Quantity.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
* @throws Exception When product could not be added.
|
||||||
|
*/
|
||||||
|
private function add_product( \WC_Product $product, int $quantity ): bool {
|
||||||
|
return false !== $this->cart->add_to_cart( $product->get_id(), $quantity );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds variations to the cart.
|
||||||
|
*
|
||||||
|
* @param \WC_Product $product The Product.
|
||||||
|
* @param int $quantity The Quantity.
|
||||||
|
* @param array $post_variations The variations.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
* @throws Exception When product could not be added.
|
||||||
|
*/
|
||||||
|
private function add_variable_product(
|
||||||
|
\WC_Product $product,
|
||||||
|
int $quantity,
|
||||||
|
array $post_variations
|
||||||
|
): bool {
|
||||||
|
|
||||||
|
$variations = array();
|
||||||
|
foreach ( $post_variations as $key => $value ) {
|
||||||
|
$variations[ $value['name'] ] = $value['value'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$variation_id = $this->product_data_store->find_matching_product_variation( $product, $variations );
|
||||||
|
|
||||||
|
// ToDo: Check stock status for variation.
|
||||||
|
return false !== $this->cart->add_to_cart(
|
||||||
|
$product->get_id(),
|
||||||
|
$quantity,
|
||||||
|
$variation_id,
|
||||||
|
$variations
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -11,7 +11,6 @@ namespace WooCommerce\PayPalCommerce\Onboarding;
|
||||||
|
|
||||||
use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider;
|
use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider;
|
||||||
use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface;
|
use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface;
|
||||||
use WooCommerce\PayPalCommerce\Button\Endpoint\ChangeCartEndpoint;
|
|
||||||
use WooCommerce\PayPalCommerce\Onboarding\Assets\OnboardingAssets;
|
use WooCommerce\PayPalCommerce\Onboarding\Assets\OnboardingAssets;
|
||||||
use WooCommerce\PayPalCommerce\Onboarding\Endpoint\LoginSellerEndpoint;
|
use WooCommerce\PayPalCommerce\Onboarding\Endpoint\LoginSellerEndpoint;
|
||||||
use WooCommerce\PayPalCommerce\Onboarding\Render\OnboardingRenderer;
|
use WooCommerce\PayPalCommerce\Onboarding\Render\OnboardingRenderer;
|
||||||
|
@ -88,9 +87,9 @@ class OnboardingModule implements ModuleInterface {
|
||||||
$endpoint = $c->get( 'onboarding.endpoint.login-seller' );
|
$endpoint = $c->get( 'onboarding.endpoint.login-seller' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ChangeCartEndpoint.
|
* The LoginSellerEndpoint.
|
||||||
*
|
*
|
||||||
* @var ChangeCartEndpoint $endpoint
|
* @var LoginSellerEndpoint $endpoint
|
||||||
*/
|
*/
|
||||||
$endpoint->handle_request();
|
$endpoint->handle_request();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue