check_upgrade();
if (PayplugWoocommerceHelper::is_pre_30()) {
require_once PAYPLUG_GATEWAY_PLUGIN_DIR . '/woocommerce-compat.php';
}
$this->notices = new Notices();
$this->metabox = new Metabox();
$this->actions = new WoocommerceActions();
$this->requests = new PayplugWoocommerceRequest();
new Front\ApplePay();
$this->ajax = new Ajax();
$this->setup_callback = new SetupCallback();
if (PayplugWoocommerceHelper::show_oney_popup()) {
$this->animationHandlers();
}
add_action('woocommerce_payment_gateways', [$this, 'register_payplug_gateway']);
// Registers WooCommerce Blocks integration.
add_action('woocommerce_blocks_loaded', [$this, 'woocommerce_gateways_block_support']);
add_filter('plugin_action_links_' . PAYPLUG_GATEWAY_PLUGIN_BASENAME, [$this, 'plugin_action_links']);
}
/**
* Register PayPlug gateway.
*
* @param $methods
*
* @return array
*/
public function register_payplug_gateway($methods)
{
$methods[] = __NAMESPACE__ . '\\Gateway\\PayplugCreditCard';
$methods[] = __NAMESPACE__ . '\\Gateway\\PayplugGatewayOney3x';
$methods[] = __NAMESPACE__ . '\\Gateway\\PayplugGatewayOney4x';
$methods[] = __NAMESPACE__ . '\\Gateway\\PayplugGatewayOney3xWithoutFees';
$methods[] = __NAMESPACE__ . '\\Gateway\\PayplugGatewayOney4xWithoutFees';
$methods[] = __NAMESPACE__ . '\\Gateway\\Bancontact';
$methods[] = __NAMESPACE__ . '\\Gateway\\AmericanExpress';
$methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Mybank';
$methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Ideal';
$methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Satispay';
$methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Wero';
$methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Bizum';
$methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Scalapay';
$methods[] = __NAMESPACE__ . '\\Controller\\ApplePay';
return $methods;
}
/**
* Add additional action links.
*
* @param array $links
*
* @return array
*/
public function plugin_action_links($links = [])
{
$plugin_links = [
'' . esc_html__('Settings', 'payplug') . '',
];
return array_merge($plugin_links, $links);
}
public function animationHandlers(): void
{
new OneyDisplay();
}
/**
* Registers WooCommerce Blocks integration.
*/
public function woocommerce_gateways_block_support(): void
{
if (class_exists('Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType')) {
add_action(
'woocommerce_blocks_payment_method_type_registration',
function (\Automattic\WooCommerce\Blocks\Payments\PaymentMethodRegistry $payment_method_registry): void {
$payment_method_registry->register(new PayplugCreditCard());
$payment_method_registry->register(new PayplugBancontact());
$payment_method_registry->register(new PayplugSatispay());
$payment_method_registry->register(new PayplugAmex());
$payment_method_registry->register(new PayplugIdeal());
$payment_method_registry->register(new PayplugMybank());
$payment_method_registry->register(new PayplugWero());
$payment_method_registry->register(new PayplugBizum());
$payment_method_registry->register(new PayplugScalapay());
$payment_method_registry->register(new PayplugApplePay());
$payment_method_registry->register(new PayplugOney3x());
$payment_method_registry->register(new PayplugOney4x());
$payment_method_registry->register(new PayplugOney3xWithoutFees());
$payment_method_registry->register(new PayplugOney4xWithoutFees());
}
);
}
}
private function check_upgrade()
{
return $this->get_service('upgrade')->run_upgrade();
}
}